//WIN Audio Class //by mamo139 //dipendenze: windows.h #ifndef _WIN_AUDIO_H_ #define _WIN_AUDIO_H_ 1 #define WIN_AUDIO_CLASS_VERSION "0.01.01" #include #include #include #include #include #pragma comment(lib,"Winmm.lib") #define WA_CAMPIONI_PER_SECONDO 8000 #define WA_BIT_PER_CAMPIONE 8 class win_audio { private: int campioni_per_secondo; int bit_per_campione; int canali; int recording_event; int playing_event; HWAVEIN input_device; WAVEHDR wave_in_struct; HWAVEOUT output_device; WAVEHDR wave_out_struct; char *audio_buffer; long audio_buffer_size; int audio_buffer_setted; int err, err_size; char *err_buffer; public: win_audio(); ~win_audio(); //registrare da microfono a buffer int input_open_device(); //impostiamo dispositivo di registrazione int input_set_buffer(long lBuffer); //settiamo il buffer audio_buffer int input_record(); //iniziamo la registrazione int input_close_device(); //chiudiamo il dispositivo di registrazione //riproduzione di un buffer int output_open_device(); //impostiamo dispositivo di riproduzione int output_set_buffer(char *buffer, long lBuffer); //settiamo il buffer da riprodurre int output_play(); //iniziamo la riproduzione int output_close_device(); //chiudiamo dispositivo di riproduzione //altri metodi char * get_audio_buffer(); long get_audio_buffer_size(); //callbacks friend void CALLBACK waveOutProc(HWAVEOUT hwo, UINT uMsg, DWORD_PTR dwInstance, DWORD_PTR dwParam1, DWORD_PTR dwParam2); friend void CALLBACK waveInProc(HWAVEIN hwi, UINT uMsg, DWORD_PTR dwInstance, DWORD_PTR dwParam1, DWORD_PTR dwParam2); }; #endif