]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxMMedia/sndfrmt.cpp
Changes to allow Cygwin to compile in non-PCH mode
[wxWidgets.git] / utils / wxMMedia / sndfrmt.cpp
index a489109d1e2388db27ef61798341980b2e54f4e9..2c446375ea81dbb6c07cf016db3e0cdc0a59cfb2 100644 (file)
@@ -1,3 +1,12 @@
+////////////////////////////////////////////////////////////////////////////////
+// Name:       sndfrmt.cpp
+// Purpose:    wxMMedia
+// Author:     Guilhem Lavaux
+// Created:    1998
+// Updated:    December 1998
+// Copyright:  (C) 1997, 1998, Guilhem Lavaux
+// License:    wxWindows license
+////////////////////////////////////////////////////////////////////////////////
 #ifdef __GNUG__
 #pragma implementation "sndfrmt.h"
 #endif
@@ -81,6 +90,7 @@ wxSoundCodec *wxSoundDataFormat::GetCodec()
 
   m_codchange = FALSE;
   m_codec = wxSoundCodec::Get(m_codno);
+  CodecChange();
 
   return m_codec;
 }
@@ -165,6 +175,8 @@ wxSoundCodec::wxSoundCodec()
 
 wxSoundCodec::~wxSoundCodec()
 {
+  if (m_mode != WAITING)
+    ExitMode();
 }
 
 void wxSoundCodec::InitIO(const wxSoundDataFormat& format)
@@ -172,13 +184,13 @@ void wxSoundCodec::InitIO(const wxSoundDataFormat& format)
   m_io_format = format;
 }
 
-void wxSoundCodec::InitMode(int mode)
+void wxSoundCodec::InitMode(ModeType mode)
 {
   wxStreamBuffer *buf_snd;
 
-  m_mode = (mode == 0) ? ENCODING : DECODING;
+  m_mode = mode;
   if (!m_chain_codec) {
-    if (mode == ENCODING) {
+    if (m_mode == ENCODING) {
       m_out_sound = new wxStreamBuffer(*this, wxStreamBuffer::write);
       m_out_sound->SetBufferIO(1024);
     } else {
@@ -219,6 +231,7 @@ void wxSoundCodec::ExitMode()
       m_out_sound = m_chain_codec->GetOutStream();
     }
   }
+  m_mode = WAITING;
 }
 
 bool wxSoundCodec::ChainCodecBefore(wxSoundDataFormat& format)