00001 /*********************************************************************** 00002 00003 FinalMix: Devices.h 00004 by Martin Decky 00005 00006 Redistribution of this file is permitted under the GNU Public License. 00007 00008 0.9.2 Initial 00009 0.9.5 Documentation 00010 00011 **********************************************************************/ 00012 00013 00014 #ifndef _FM_DEVICES_H_ 00015 #define _FM_DEVICES_H_ 00016 00017 00018 #include "generic.h" 00019 #include <wx/wx.h> 00020 00021 00029 class DeviceCallback { 00030 public: 00031 virtual samples_t OnBuffer(void * buf, const samples_t len, const samples_t pos, const format_ex_t & fmt) = 0; 00032 }; 00033 00034 00042 class Device { 00043 public: 00044 virtual const wxString & Name() const = 0; 00046 virtual bool Init(const format_ex_t & fmt, DeviceCallback & callback) = 0; 00047 virtual void Play() = 0; 00048 virtual void Pause() = 0; 00049 virtual void Done() = 0; 00051 virtual samples_t GetPosition() = 0; 00053 virtual void Configure(wxWindow * parent) = 0; 00054 }; 00055 00056 00057 void DevicesRegister(); 00059 #endif