]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxMMedia2/lib/sndoss.cpp
added support for several new events in wxCalendarCtrl: clicking on week
[wxWidgets.git] / utils / wxMMedia2 / lib / sndoss.cpp
index 8b890a02e8af56466aaf10c0dba77c7d224d08ae..60fb82a2bdb7ffc3cb5ff5ab098074d6d191bb7e 100644 (file)
@@ -46,6 +46,7 @@ wxSoundStreamOSS::wxSoundStreamOSS(const wxString& dev_name)
   close(m_fd);
 
   m_oss_stop = TRUE;
+  m_q_filled = TRUE;
 }
 
 wxSoundStreamOSS::~wxSoundStreamOSS()
@@ -59,11 +60,12 @@ wxUint32 wxSoundStreamOSS::GetBestSize() const
   return m_bufsize;
 }
 
-wxSoundStream& wxSoundStreamOSS::Read(void *buffer, size_t len)
+wxSoundStream& wxSoundStreamOSS::Read(void *buffer, wxUint32 len)
 {
   int ret;
 
-  m_lastcount = (size_t)ret = read(m_fd, buffer, len);
+  m_lastcount = (wxUint32)ret = read(m_fd, buffer, len);
+  m_q_filled  = TRUE;
 
   if (ret < 0)
     m_snderror = wxSOUND_IOERR;
@@ -73,11 +75,12 @@ wxSoundStream& wxSoundStreamOSS::Read(void *buffer, size_t len)
   return *this;
 }
 
-wxSoundStream& wxSoundStreamOSS::Write(const void *buffer, size_t len)
+wxSoundStream& wxSoundStreamOSS::Write(const void *buffer, wxUint32 len)
 {
   int ret;
 
-  m_lastcount = (size_t)ret = write(m_fd, buffer, len);
+  m_lastcount = (wxUint32)ret = write(m_fd, buffer, len);
+  m_q_filled  = TRUE;
 
   if (ret < 0)
     m_snderror = wxSOUND_IOERR;
@@ -220,6 +223,7 @@ static void _wxSound_OSS_CBack(gpointer data, int source,
 
 void wxSoundStreamOSS::WakeUpEvt(int evt)
 {
+  m_q_filled = FALSE;
   OnSoundEvent(evt);
 }
 
@@ -263,6 +267,7 @@ bool wxSoundStreamOSS::StartProduction(int evt)
   ioctl(m_fd, SNDCTL_DSP_SETTRIGGER, &trig);
 
   m_oss_stop = FALSE;
+  m_q_filled = FALSE;
 
   return TRUE;
 }
@@ -278,9 +283,15 @@ bool wxSoundStreamOSS::StopProduction()
 
   close(m_fd);
   m_oss_stop = TRUE;
+  m_q_filled = TRUE;
   return TRUE;
 }
 
+bool wxSoundStreamOSS::QueueFilled() const
+{
+  return m_q_filled;
+}
+
 //
 // Detect the closest format (The best).
 //