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
This commit is contained in:
Mattia Barbon
2003-09-13 16:06:17 +00:00
parent 5abe54648f
commit a7b1654d9d

View File

@@ -20,8 +20,6 @@
#pragma hdrstop #pragma hdrstop
#endif #endif
#ifdef HAVE_ESD_H
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// MMedia headers // MMedia headers
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@@ -34,6 +32,7 @@
// System headers // System headers
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
#ifdef HAVE_ESD_H
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <unistd.h> #include <unistd.h>
@@ -41,6 +40,7 @@
#ifdef __WXGTK__ #ifdef __WXGTK__
#include <gdk/gdk.h> #include <gdk/gdk.h>
#endif #endif
#endif
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@@ -55,6 +55,10 @@
wxSoundStreamESD::wxSoundStreamESD(const wxString& hostname) wxSoundStreamESD::wxSoundStreamESD(const wxString& hostname)
{ {
#ifndef HAVE_ESD_H
m_snderror = wxSOUND_INVDEV;
return;
#else
wxSoundFormatPcm pcm_default; wxSoundFormatPcm pcm_default;
// First, we make some basic test: is there ESD on this computer ? // 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_esd_ok = TRUE;
m_fd_output= -1; m_fd_output= -1;
m_fd_input = -1; m_fd_input = -1;
#endif // defined HAVE_ESD_H
} }
wxSoundStreamESD::~wxSoundStreamESD() wxSoundStreamESD::~wxSoundStreamESD()
{ {
#ifdef HAVE_ESD_H
if (!m_esd_stop) if (!m_esd_stop)
StopProduction(); StopProduction();
#endif // defined HAVE_ESD_H
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@@ -101,6 +108,10 @@ wxSoundStreamESD::~wxSoundStreamESD()
wxSoundStream& wxSoundStreamESD::Read(void *buffer, wxUint32 len) wxSoundStream& wxSoundStreamESD::Read(void *buffer, wxUint32 len)
{ {
#ifndef HAVE_ESD_H
m_snderror = wxSOUND_INVDEV;
return *this;
#else
int ret; int ret;
if (m_esd_stop) { if (m_esd_stop) {
@@ -116,6 +127,7 @@ wxSoundStream& wxSoundStreamESD::Read(void *buffer, wxUint32 len)
m_snderror = wxSOUND_NOERROR; m_snderror = wxSOUND_NOERROR;
return *this; 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) wxSoundStream& wxSoundStreamESD::Write(const void *buffer, wxUint32 len)
{ {
#ifndef HAVE_ESD_H
m_snderror = wxSOUND_INVDEV;
return *this;
#else
int ret; int ret;
if (m_esd_stop) { if (m_esd_stop) {
@@ -141,6 +157,7 @@ wxSoundStream& wxSoundStreamESD::Write(const void *buffer, wxUint32 len)
m_q_filled = TRUE; m_q_filled = TRUE;
return *this; 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) bool wxSoundStreamESD::SetSoundFormat(const wxSoundFormatBase& format)
{ {
#ifndef HAVE_ESD_H
m_snderror = wxSOUND_INVDEV;
return FALSE;
#else
wxSoundFormatPcm *pcm_format; wxSoundFormatPcm *pcm_format;
if (format.GetType() != wxSOUND_PCM) { if (format.GetType() != wxSOUND_PCM) {
@@ -180,13 +201,14 @@ bool wxSoundStreamESD::SetSoundFormat(const wxSoundFormatBase& format)
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
#endif // defined HAVE_ESD_H
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// _wxSound_OSS_CBack (internal): it is called when the driver (ESD) is // _wxSound_OSS_CBack (internal): it is called when the driver (ESD) is
// ready for a next buffer. // ready for a next buffer.
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
#ifdef __WXGTK__ #if defined(__WXGTK__) && defined(HAVE_ESD_H)
static void _wxSound_OSS_CBack(gpointer data, int source, static void _wxSound_OSS_CBack(gpointer data, int source,
GdkInputCondition condition) GdkInputCondition condition)
{ {
@@ -221,6 +243,10 @@ void wxSoundStreamESD::WakeUpEvt(int evt)
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
bool wxSoundStreamESD::StartProduction(int evt) bool wxSoundStreamESD::StartProduction(int evt)
{ {
#ifndef HAVE_ESD_H
m_snderror = wxSOUND_INVDEV;
return FALSE;
#else
wxSoundFormatPcm *pcm; wxSoundFormatPcm *pcm;
int flag = 0; int flag = 0;
@@ -264,6 +290,7 @@ bool wxSoundStreamESD::StartProduction(int evt)
m_q_filled = FALSE; m_q_filled = FALSE;
return TRUE; return TRUE;
#endif // defined HAVE_ESD_H
} }
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
@@ -271,6 +298,10 @@ bool wxSoundStreamESD::StartProduction(int evt)
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
bool wxSoundStreamESD::StopProduction() bool wxSoundStreamESD::StopProduction()
{ {
#ifndef HAVE_ESD_H
m_snderror = wxSOUND_INVDEV;
return FALSE;
#else
if (m_esd_stop) if (m_esd_stop)
return FALSE; return FALSE;
@@ -292,6 +323,7 @@ bool wxSoundStreamESD::StopProduction()
m_esd_stop = TRUE; m_esd_stop = TRUE;
m_q_filled = TRUE; m_q_filled = TRUE;
return TRUE; return TRUE;
#endif // defined HAVE_ESD_H
} }
// //
@@ -299,6 +331,10 @@ bool wxSoundStreamESD::StopProduction()
// //
void wxSoundStreamESD::DetectBest(wxSoundFormatPcm *pcm) void wxSoundStreamESD::DetectBest(wxSoundFormatPcm *pcm)
{ {
#ifndef HAVE_ESD_H
m_snderror = wxSOUND_INVDEV;
return;
#else
wxSoundFormatPcm best_pcm; wxSoundFormatPcm best_pcm;
// We change neither the number of channels nor the sample rate // 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 // Finally recopy the new format
*pcm = best_pcm; *pcm = best_pcm;
#endif // defined HAVE_ESD_H
} }
#endif // HAVE_ESD_H