git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6483 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // --------------------------------------------------------------------------
 | |
| // Name: sndwin.h
 | |
| // Purpose:
 | |
| // Date: 08/11/1999
 | |
| // Author: Guilhem Lavaux <lavaux@easynet.fr> (C) 1999
 | |
| // CVSID: $Id$
 | |
| // --------------------------------------------------------------------------
 | |
| #ifndef _WX_SNDWIN_H
 | |
| #define _WX_SNDWIN_H
 | |
| 
 | |
| #include "wx/defs.h"
 | |
| #include "wx/mmedia/sndbase.h"
 | |
| 
 | |
| typedef struct _wxSoundInternal wxSoundInternal;
 | |
| typedef struct _wxSoundInfoHeader wxSoundInfoHeader;
 | |
| 
 | |
| // class WXDLLEXPORT wxSoundInternal;
 | |
| class WXDLLEXPORT wxSoundStreamWin : public wxSoundStream {
 | |
|  public:
 | |
|   wxSoundStreamWin();
 | |
|   ~wxSoundStreamWin();
 | |
| 
 | |
|   wxSoundStream& Write(const void *buffer, wxUint32 len);
 | |
|   wxSoundStream& Read(void *buffer, wxUint32 len); 
 | |
| 
 | |
|   bool SetSoundFormat(wxSoundFormatBase& base);
 | |
| 
 | |
|   bool StartProduction(int evt);
 | |
|   bool StopProduction();
 | |
| 
 | |
|   bool QueueFilled() const;
 | |
| 
 | |
|   // Internal but defined as public
 | |
|   void NotifyDoneBuffer(wxUint32 dev_handle, int flag);
 | |
| 
 | |
|   wxUint32 GetBestSize() const { return 4096; }
 | |
| 
 | |
|  protected:
 | |
|   wxSoundInternal *m_internal;
 | |
|   wxUint32 m_current_frag_in, m_current_frag_out;
 | |
|   wxUint32 m_input_frag_in, m_output_frag_out;
 | |
|   wxSoundInfoHeader **m_headers_play, **m_headers_rec;
 | |
| 
 | |
|   bool m_production_started, m_queue_filled, m_waiting_for;
 | |
| 
 | |
|  protected:
 | |
|   void CreateSndWindow();
 | |
|   void DestroySndWindow();
 | |
|   bool OpenDevice(int mode);
 | |
|   void CloseDevice();
 | |
| 
 | |
|   wxSoundInfoHeader *AllocHeader(int mode);
 | |
|   void FreeHeader(wxSoundInfoHeader *header, int mode);
 | |
|   bool AllocHeaders(int mode);
 | |
|   void FreeHeaders(int mode);
 | |
| 
 | |
|   void WaitFor(wxSoundInfoHeader *info);
 | |
|   bool AddToQueue(wxSoundInfoHeader *info);
 | |
|   void ClearHeader(wxSoundInfoHeader *info);
 | |
| 
 | |
|   wxSoundInfoHeader *NextFragmentOutput();
 | |
|   wxSoundInfoHeader *NextFragmentInput();
 | |
| };
 | |
| 
 | |
| #endif
 |