From: Mattia Barbon Date: Sat, 13 Sep 2003 16:06:17 +0000 (+0000) Subject: Allow wxSoundStreamESD to be compiled even when no esd.h is X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/a7b1654d9d1df37d98a542a8e720e91f9e83640b Allow wxSoundStreamESD to be compiled even when no esd.h is present and make it fail at runtime instead. As ugly as this is, there currently isn't any way for the application to know if the class is available. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23568 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/contrib/src/mmedia/sndesd.cpp b/contrib/src/mmedia/sndesd.cpp index e3d6860253..f149f43051 100644 --- a/contrib/src/mmedia/sndesd.cpp +++ b/contrib/src/mmedia/sndesd.cpp @@ -20,8 +20,6 @@ #pragma hdrstop #endif -#ifdef HAVE_ESD_H - // -------------------------------------------------------------------------- // MMedia headers // -------------------------------------------------------------------------- @@ -34,6 +32,7 @@ // System headers // -------------------------------------------------------------------------- +#ifdef HAVE_ESD_H #include #include #include @@ -41,6 +40,7 @@ #ifdef __WXGTK__ #include #endif +#endif // -------------------------------------------------------------------------- @@ -55,6 +55,10 @@ wxSoundStreamESD::wxSoundStreamESD(const wxString& hostname) { +#ifndef HAVE_ESD_H + m_snderror = wxSOUND_INVDEV; + return; +#else wxSoundFormatPcm pcm_default; // First, we make some basic test: is there ESD on this computer ? @@ -87,12 +91,15 @@ wxSoundStreamESD::wxSoundStreamESD(const wxString& hostname) m_esd_ok = TRUE; m_fd_output= -1; m_fd_input = -1; +#endif // defined HAVE_ESD_H } wxSoundStreamESD::~wxSoundStreamESD() { +#ifdef HAVE_ESD_H if (!m_esd_stop) StopProduction(); +#endif // defined HAVE_ESD_H } // -------------------------------------------------------------------------- @@ -101,6 +108,10 @@ wxSoundStreamESD::~wxSoundStreamESD() wxSoundStream& wxSoundStreamESD::Read(void *buffer, wxUint32 len) { +#ifndef HAVE_ESD_H + m_snderror = wxSOUND_INVDEV; + return *this; +#else int ret; if (m_esd_stop) { @@ -116,6 +127,7 @@ wxSoundStream& wxSoundStreamESD::Read(void *buffer, wxUint32 len) m_snderror = wxSOUND_NOERROR; return *this; +#endif // defined HAVE_ESD_H } // -------------------------------------------------------------------------- @@ -123,6 +135,10 @@ wxSoundStream& wxSoundStreamESD::Read(void *buffer, wxUint32 len) // -------------------------------------------------------------------------- wxSoundStream& wxSoundStreamESD::Write(const void *buffer, wxUint32 len) { +#ifndef HAVE_ESD_H + m_snderror = wxSOUND_INVDEV; + return *this; +#else int ret; if (m_esd_stop) { @@ -141,6 +157,7 @@ wxSoundStream& wxSoundStreamESD::Write(const void *buffer, wxUint32 len) m_q_filled = TRUE; return *this; +#endif // defined HAVE_ESD_H } // -------------------------------------------------------------------------- @@ -149,6 +166,10 @@ wxSoundStream& wxSoundStreamESD::Write(const void *buffer, wxUint32 len) // -------------------------------------------------------------------------- bool wxSoundStreamESD::SetSoundFormat(const wxSoundFormatBase& format) { +#ifndef HAVE_ESD_H + m_snderror = wxSOUND_INVDEV; + return FALSE; +#else wxSoundFormatPcm *pcm_format; if (format.GetType() != wxSOUND_PCM) { @@ -180,13 +201,14 @@ bool wxSoundStreamESD::SetSoundFormat(const wxSoundFormatBase& format) return FALSE; } return TRUE; +#endif // defined HAVE_ESD_H } // -------------------------------------------------------------------------- // _wxSound_OSS_CBack (internal): it is called when the driver (ESD) is // ready for a next buffer. // -------------------------------------------------------------------------- -#ifdef __WXGTK__ +#if defined(__WXGTK__) && defined(HAVE_ESD_H) static void _wxSound_OSS_CBack(gpointer data, int source, GdkInputCondition condition) { @@ -221,6 +243,10 @@ void wxSoundStreamESD::WakeUpEvt(int evt) // -------------------------------------------------------------------------- bool wxSoundStreamESD::StartProduction(int evt) { +#ifndef HAVE_ESD_H + m_snderror = wxSOUND_INVDEV; + return FALSE; +#else wxSoundFormatPcm *pcm; int flag = 0; @@ -264,6 +290,7 @@ bool wxSoundStreamESD::StartProduction(int evt) m_q_filled = FALSE; return TRUE; +#endif // defined HAVE_ESD_H } // -------------------------------------------------------------------------- @@ -271,6 +298,10 @@ bool wxSoundStreamESD::StartProduction(int evt) // -------------------------------------------------------------------------- bool wxSoundStreamESD::StopProduction() { +#ifndef HAVE_ESD_H + m_snderror = wxSOUND_INVDEV; + return FALSE; +#else if (m_esd_stop) return FALSE; @@ -292,6 +323,7 @@ bool wxSoundStreamESD::StopProduction() m_esd_stop = TRUE; m_q_filled = TRUE; return TRUE; +#endif // defined HAVE_ESD_H } // @@ -299,6 +331,10 @@ bool wxSoundStreamESD::StopProduction() // void wxSoundStreamESD::DetectBest(wxSoundFormatPcm *pcm) { +#ifndef HAVE_ESD_H + m_snderror = wxSOUND_INVDEV; + return; +#else wxSoundFormatPcm best_pcm; // We change neither the number of channels nor the sample rate @@ -318,6 +354,6 @@ void wxSoundStreamESD::DetectBest(wxSoundFormatPcm *pcm) // Finally recopy the new format *pcm = best_pcm; +#endif // defined HAVE_ESD_H } -#endif // HAVE_ESD_H