/* PROJECT: ReactOS sndrec32 * LICENSE: GPL - See COPYING in the top level directory * FILE: base/applications/sndrec32/sndrec.h * PURPOSE: Sound recording * PROGRAMMERS: Marco Pagliaricci (irc: rendar) */ #pragma once #include "resource.h" #include "audio_api.hpp" #define MAX_LOADSTRING 100 #define MAINWINDOW_W 350 #define MAINWINDOW_H 190 #define CONTROLS_CX 10 #define INITIAL_BUFREC_SECONDS 30.0f #define BUTSTART_ID 0 #define BUTEND_ID 1 #define BUTPLAY_ID 2 #define BUTSTOP_ID 3 #define BUTREC_ID 4 #define SLIDER_ID 5 #define WAVEBAR_ID 6 #define BUTTONS_H 30 #define BUTTONS_W 60 #define BUTTONS_CY 100 #define BUTTONS_CX ( CONTROLS_CX ) #define BUTTONS_SPACE 5 #define SLIDER_CX CONTROLS_CX #define SLIDER_CY 65 #define SLIDER_H 30 #define SLIDER_W 320 #define STRPOS_X 240 #define STRPOS_Y 5 #define STRDUR_X ( STRPOS_X ) #define STRDUR_Y ( STRPOS_Y + 13 ) #define STRBUF_X ( STRDUR_X ) #define STRBUF_Y ( STRDUR_Y + 13 ) #define STRFMT_X 10 #define STRFMT_Y ( STRPOS_Y ) #define STRCHAN_X ( STRFMT_X ) #define STRCHAN_Y ( STRFMT_Y + 13 ) #define WAVEBAR_X ( CONTROLS_CX + 90 ) #define WAVEBAR_Y ( STRPOS_Y ) #define WAVEBAR_CX 130 #define WAVEBAR_CY 50 #define WAVEBAR_TIMERID 2 #define WAVEBAR_TIMERTIME 80 #define WAVEBAR_COLOR ( RGB( 0, 0, 255 )) #define REFRESHA_X ( STRPOS_X ) #define REFRESHA_Y ( STRPOS_Y ) #define REFRESHA_CX ( REFRESHA_X + 100 ) #define REFRESHA_CY ( REFRESHA_Y + 55 ) #define REFRESHB_X ( STRFMT_X ) #define REFRESHB_Y ( STRFMT_Y ) #define REFRESHB_CX ( REFRESHB_X + 85 ) #define REFRESHB_CY ( REFRESHB_Y + 55 ) struct riff_hdr { DWORD magic; DWORD chunksize; DWORD format; }; struct wave_hdr { DWORD Subchunkid; DWORD Subchunk1Size; WORD AudioFormat; WORD NumChannels; DWORD SampleRate; DWORD ByteRate; WORD BlockAlign; WORD BitsPerSample; }; struct data_chunk { DWORD subc; DWORD subc_size; //unsigned char data[]; }; // // Functions prototypes // LRESULT CALLBACK Buttons_proc(HWND, UINT, WPARAM, LPARAM); BOOL write_wav( TCHAR * ); BOOL open_wav( TCHAR * ); VOID enable_but( DWORD ); VOID disable_but( DWORD ); void l_play_finished ( void ); void l_audio_arrival ( unsigned int ); void l_buffer_resized ( unsigned int );