]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxMMedia2/lib/sndoss.cpp
Major changes in wxVidXANIM (support for output filtering)
[wxWidgets.git] / utils / wxMMedia2 / lib / sndoss.cpp
index 60fb82a2bdb7ffc3cb5ff5ab098074d6d191bb7e..77e8ec47b9f645b2867d1d3aae4666493b564c7d 100644 (file)
@@ -2,7 +2,7 @@
 // Name: sndoss.cpp
 // Purpose:
 // Date: 08/11/1999
-// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
+// Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999, 2000
 // CVSID: $Id$
 // --------------------------------------------------------------------------
 #ifdef __GNUG__
@@ -28,7 +28,7 @@ wxSoundStreamOSS::wxSoundStreamOSS(const wxString& dev_name)
 {
   wxSoundFormatPcm pcm_default;
 
-  m_fd = open(dev_name.mb_str(), O_RDWR);
+  m_fd = open(dev_name.mb_str(), O_WRONLY);
 
   if (m_fd == -1) {
     m_snderror = wxSOUND_INVDEV;
@@ -131,7 +131,7 @@ bool wxSoundStreamOSS::SetSoundFormat(const wxSoundFormatBase& format)
 
   m_snderror = wxSOUND_NOERR;
   if (*pcm_format != format) {
-    m_snderror = wxSOUND_NOTEXACT;
+    m_snderror = wxSOUND_NOEXACT;
     return FALSE;
   }
   return TRUE;
@@ -235,6 +235,10 @@ bool wxSoundStreamOSS::StartProduction(int evt)
     StopProduction();
 
   old_frmt = m_sndformat->Clone();
+  if (!old_frmt) {
+    m_snderror = wxSOUND_MEMERR;
+    return FALSE;
+  }
 
   if (evt == wxSOUND_OUTPUT)
     m_fd = open(m_devname.mb_str(), O_WRONLY);