From 64c6953516e10474497a96e0ba9957ef3528f15e Mon Sep 17 00:00:00 2001 From: Dmitry Gorbachev Date: Thu, 3 Dec 2009 18:44:27 +0000 Subject: [PATCH] SndRec32 patch by Marco Pagliaricci, bug #4978. svn path=/trunk/; revision=44384 --- .../base/applications/sndrec32/audio_api.hpp | 15 + .../base/applications/sndrec32/audio_def.hpp | 12 +- .../applications/sndrec32/audio_format.hpp | 7 + .../applications/sndrec32/audio_membuffer.cpp | 7 + .../applications/sndrec32/audio_producer.cpp | 3 +- .../sndrec32/audio_resampler_acm.cpp | 19 +- .../applications/sndrec32/audio_waveout.cpp | 4 +- reactos/base/applications/sndrec32/resource.h | 9 +- .../base/applications/sndrec32/sndrec32.cpp | 295 ++++++++++-------- reactos/base/applications/sndrec32/sndrec32.h | 1 + .../base/applications/sndrec32/sndrec32.rc | 10 +- reactos/base/applications/sndrec32/stdafx.h | 2 +- 12 files changed, 236 insertions(+), 148 deletions(-) create mode 100644 reactos/base/applications/sndrec32/audio_api.hpp diff --git a/reactos/base/applications/sndrec32/audio_api.hpp b/reactos/base/applications/sndrec32/audio_api.hpp new file mode 100644 index 00000000000..bb20f3651a7 --- /dev/null +++ b/reactos/base/applications/sndrec32/audio_api.hpp @@ -0,0 +1,15 @@ +#ifndef __AUDIO_API__ +#define __AUDIO_API__ + +#include "audio_def.hpp" + +#include "audio_format.hpp" +#include "audio_membuffer.hpp" +#include "audio_producer.hpp" +#include "audio_receiver.hpp" +#include "audio_resampler_acm.hpp" +#include "audio_wavein.hpp" +#include "audio_waveout.hpp" + + +#endif diff --git a/reactos/base/applications/sndrec32/audio_def.hpp b/reactos/base/applications/sndrec32/audio_def.hpp index da57f3f4b64..657b2d728c1 100644 --- a/reactos/base/applications/sndrec32/audio_def.hpp +++ b/reactos/base/applications/sndrec32/audio_def.hpp @@ -9,10 +9,13 @@ // #define _AUDIO_DEFAULT_FORMAT A44100_16BIT_STEREO + #define _AUDIO_DEFAULT_WAVEINBUFFERS 8 #define _AUDIO_DEFAULT_WAVEINBUFSECS 0.1f -#define _AUDIO_DEFAULT_WAVEOUTBUFFERS 8 -#define _AUDIO_DEFAULT_WAVEOUTBUFSECS 0.1f + +#define _AUDIO_DEFAULT_WAVEOUTBUFFERS 2 +#define _AUDIO_DEFAULT_WAVEOUTBUFSECS 1.0f + #define _AUDIO_DEFAULT_BUFSECS 1.0f @@ -29,6 +32,9 @@ #include #include //Windows MultiMedia (WINMM) audio apis #include //codecs stuff -#include //codecs stuff +#include //codecs stuff + +//#pragma comment(lib, "winmm.lib") +//#pragma comment(lib, "msacm32.lib") #endif //ifdef _AUDIO_DEF__H_ diff --git a/reactos/base/applications/sndrec32/audio_format.hpp b/reactos/base/applications/sndrec32/audio_format.hpp index 1f620b2e3f2..3438641bd66 100644 --- a/reactos/base/applications/sndrec32/audio_format.hpp +++ b/reactos/base/applications/sndrec32/audio_format.hpp @@ -122,6 +122,13 @@ class audio_format } + unsigned int bytes_in_samples( unsigned int samples ) const + { + + return (( samples * ( bits_psample / 8 )) * chan ); + + } + }; diff --git a/reactos/base/applications/sndrec32/audio_membuffer.cpp b/reactos/base/applications/sndrec32/audio_membuffer.cpp index 0f6580e27d3..23b4798e037 100644 --- a/reactos/base/applications/sndrec32/audio_membuffer.cpp +++ b/reactos/base/applications/sndrec32/audio_membuffer.cpp @@ -12,6 +12,13 @@ _AUDIO_NAMESPACE_START_ + + +////////////////////////////////////// +/////// Protected Functions ///////// +////////////////////////////////////// + + void audio_membuffer::alloc_mem_( unsigned int bytes ) { diff --git a/reactos/base/applications/sndrec32/audio_producer.cpp b/reactos/base/applications/sndrec32/audio_producer.cpp index 6afcbb4271b..2504c1be5e5 100644 --- a/reactos/base/applications/sndrec32/audio_producer.cpp +++ b/reactos/base/applications/sndrec32/audio_producer.cpp @@ -6,7 +6,6 @@ * PROGRAMMERS: Marco Pagliaricci */ - -#include "StdAfx.h" +#include "stdafx.h" #include "audio_producer.hpp" diff --git a/reactos/base/applications/sndrec32/audio_resampler_acm.cpp b/reactos/base/applications/sndrec32/audio_resampler_acm.cpp index fa2617ac177..c42a8aeef40 100644 --- a/reactos/base/applications/sndrec32/audio_resampler_acm.cpp +++ b/reactos/base/applications/sndrec32/audio_resampler_acm.cpp @@ -108,7 +108,7 @@ void if ( err != MMSYSERR_NOERROR ) { //TODO: throw error - printf("acmOpen error: %i\n", err); + MessageBox( 0, _T("acmOpen error: %i"), _T("ERROR"), MB_ICONERROR ); } @@ -138,7 +138,8 @@ void if ( err != MMSYSERR_NOERROR ) { //TODO: throw error - printf("acmSize error\n"); + MessageBox( 0, _T("acmStreamSize error"), _T("ERROR"), MB_ICONERROR ); + } @@ -178,7 +179,9 @@ void if ( err != MMSYSERR_NOERROR ) { //TODO: throw error - printf("prep. header error\n"); + MessageBox( 0, _T("acmStreamPrepareHeader error"), _T("ERROR"), MB_ICONERROR ); + + } @@ -243,6 +246,8 @@ void //TODO: throw error + MessageBox( 0, _T("acmStreamUnPrepareHeader error"), _T("ERROR"), MB_ICONERROR ); + } } @@ -281,6 +286,9 @@ void //TODO: throw error! + MessageBox( 0, _T("acmStreamClose error"), _T("ERROR"), MB_ICONERROR ); + + } @@ -357,7 +365,8 @@ void if ( err != MMSYSERR_NOERROR ) { //TODO: throw error - printf("acm convert error\n"); + MessageBox( 0, _T("acmStreamConvert error"), _T("ERROR"), MB_ICONERROR ); + } @@ -369,7 +378,7 @@ void while(( ACMSTREAMHEADER_STATUSF_DONE & acm_header.fdwStatus ) == 0 ); - printf("Processed successfully %lu bytes of audio.\n", acm_header.cbDstLengthUsed ); + //printf("Processed successfully %i bytes of audio.\n", acm_header.cbDstLengthUsed ); diff --git a/reactos/base/applications/sndrec32/audio_waveout.cpp b/reactos/base/applications/sndrec32/audio_waveout.cpp index 18405b3d0b3..96f89362fbd 100644 --- a/reactos/base/applications/sndrec32/audio_waveout.cpp +++ b/reactos/base/applications/sndrec32/audio_waveout.cpp @@ -531,7 +531,7 @@ audio_waveout::play( void ) // Reads the audio from the start. // - audio_buf.set_position_start(); + //audio_buf.set_position_start(); @@ -643,7 +643,7 @@ audio_waveout::stop( void ) if ( err != MMSYSERR_NOERROR ) { - MessageBox(0, _T("err waveout reset.\n"),_T("ERROR"), 0); + MessageBox(0, _T("err WaveOutReset.\n"),_T("ERROR"), 0); //TODO: throw error } diff --git a/reactos/base/applications/sndrec32/resource.h b/reactos/base/applications/sndrec32/resource.h index d73e5580fe7..6e7b73e449e 100644 --- a/reactos/base/applications/sndrec32/resource.h +++ b/reactos/base/applications/sndrec32/resource.h @@ -3,12 +3,14 @@ // Used by reactOS_sndrec32.rc // #define IDC_MYICON 2 +#define IDB_BITMAP2_STOP_DIS 8 #define IDD_REACTOS_SNDREC32_DIALOG 102 #define IDS_APP_TITLE 103 #define IDD_ABOUTBOX 103 #define IDM_ABOUT 104 #define IDI_REACTOS_SNDREC32 107 #define IDI_REACTOS_SNDREC32LL 107 +#define IDI_SNDREC32 107 #define IDI_SMALL 108 #define IDC_REACTOS_SNDREC32 109 #define IDR_MAINFRAME 128 @@ -21,6 +23,11 @@ #define IDB_BITMAP2_REC 137 #define IDI_ICON1 138 #define IDR_MENU1 139 +#define IDI_ICON2 140 +#define IDB_BITMAP2_END_DIS 141 +#define IDB_BITMAP2_PLAY_DIS 142 +#define IDB_BITMAP2_REC_DIS 143 +#define IDB_BITMAP2_START_DIS 144 #define ID_FILE_NEW 32771 #define ID_FILE_OPEN 32772 #define ID_FILE_SAVE 32773 @@ -36,7 +43,7 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NO_MFC 1 -#define _APS_NEXT_RESOURCE_VALUE 140 +#define _APS_NEXT_RESOURCE_VALUE 145 #define _APS_NEXT_COMMAND_VALUE 32779 #define _APS_NEXT_CONTROL_VALUE 1000 #define _APS_NEXT_SYMED_VALUE 110 diff --git a/reactos/base/applications/sndrec32/sndrec32.cpp b/reactos/base/applications/sndrec32/sndrec32.cpp index b1b6a30a214..3184e512622 100644 --- a/reactos/base/applications/sndrec32/sndrec32.cpp +++ b/reactos/base/applications/sndrec32/sndrec32.cpp @@ -11,10 +11,12 @@ #include "stdafx.h" #include "sndrec32.h" -#include "kkaudio.hpp" +//#pragma comment(lib, "comctl32.lib") + + HINSTANCE hInst; TCHAR szTitle[MAX_LOADSTRING]; TCHAR szWindowClass[MAX_LOADSTRING]; @@ -31,6 +33,7 @@ HWND main_win; HWND slider; HWND buttons[5]; HBITMAP butbmps[5]; +HBITMAP butbmps_dis[5]; WNDPROC buttons_std_proc; BOOL butdisabled[5]; @@ -42,19 +45,15 @@ DWORD slider_pos; WORD slider_min; WORD slider_max; -long long samples_max; +DWORD samples_max; OPENFILENAME ofn; TCHAR file_path[MAX_PATH]; BOOL path_set; -using snd::audio_membuffer; -using snd::audio_wavein; -using snd::audio_waveout; - -audio_membuffer * AUD_BUF; -audio_waveout * AUD_OUT; -audio_wavein * AUD_IN; +snd::audio_membuffer * AUD_BUF; +snd::audio_waveout * AUD_OUT; +snd::audio_wavein * AUD_IN; BOOL s_recording; @@ -88,9 +87,11 @@ int APIENTRY _tWinMain(HINSTANCE hInstance, butbmps[3] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_STOP )); butbmps[4] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_REC )); - - - + butbmps_dis[0] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_START_DIS )); + butbmps_dis[1] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_END_DIS )); + butbmps_dis[2] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_PLAY_DIS )); + butbmps_dis[3] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_STOP_DIS )); + butbmps_dis[4] = LoadBitmap( hInstance, MAKEINTRESOURCE( IDB_BITMAP2_REC_DIS )); snd::audio_membuffer AUD_buffer( snd::A44100_16BIT_STEREO ); @@ -123,10 +124,16 @@ int APIENTRY _tWinMain(HINSTANCE hInstance, samples_max = AUD_buffer.total_samples(); + LoadString(hInstance, + IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + + + + LoadString(hInstance, + IDC_REACTOS_SNDREC32, szWindowClass, MAX_LOADSTRING); + - LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); - LoadString(hInstance, IDC_REACTOS_SNDREC32, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); @@ -136,7 +143,8 @@ int APIENTRY _tWinMain(HINSTANCE hInstance, return FALSE; } - hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_REACTOS_SNDREC32)); + hAccelTable = LoadAccelerators(hInstance, + MAKEINTRESOURCE( IDC_REACTOS_SNDREC32 )); @@ -188,12 +196,12 @@ ATOM MyRegisterClass(HINSTANCE hInstance) wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; - wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_REACTOS_SNDREC32LL)); + wcex.hIcon = LoadIcon( hInstance, MAKEINTRESOURCE( IDI_SNDREC32 )); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(16); wcex.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); wcex.lpszClassName = szWindowClass; - wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_REACTOS_SNDREC32LL)); + wcex.hIconSm = LoadIcon( wcex.hInstance, MAKEINTRESOURCE( IDI_SNDREC32 )); return RegisterClassEx(&wcex); @@ -284,9 +292,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) } - butdisabled[ i ] = TRUE; - - // // Realize the button bmp image @@ -294,9 +299,10 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) SendMessage(buttons[i], BM_SETIMAGE, ( WPARAM )IMAGE_BITMAP, ( LPARAM )butbmps[i]); - UpdateWindow( buttons[i] ); + disable_but( i ); + } @@ -325,8 +331,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) // Sets slider limits // - //slider_min = 0; - //slider_max = 100; SendMessage( slider, @@ -338,12 +342,9 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) UpdateWindow( slider ); + enable_but( BUTREC_ID ); - // - // Enables REC button. - // - - butdisabled[ BUTREC_ID ] = FALSE; + EnableWindow( slider, FALSE ); @@ -367,7 +368,24 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) case SB_PAGERIGHT: case SB_PAGELEFT: case TB_THUMBTRACK: + + + // + // If the user touch the slider bar, + // set the audio start position properly + // + + slider_pos = SendMessage(slider, TBM_GETPOS, 0, 0); + + + AUD_BUF->set_position( + AUD_BUF->audinfo().bytes_in_samples( + (( slider_pos * samples_max ) / slider_max ) + ) + ); + + break; } @@ -407,17 +425,27 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) AUD_BUF->reset(); - butdisabled[ BUTREC_ID ] = FALSE; - butdisabled[ BUTSTART_ID ] = TRUE; - butdisabled[ BUTEND_ID ] = TRUE; - butdisabled[ BUTSTOP_ID ] = TRUE; - butdisabled[ BUTPLAY_ID ] = TRUE; + enable_but( BUTREC_ID ); + disable_but( BUTSTART_ID ); + disable_but( BUTEND_ID ); + disable_but( BUTSTOP_ID ); + disable_but( BUTPLAY_ID ); + samples_max = AUD_BUF->total_samples(); slider_pos = 0; SendMessage(slider, TBM_SETPOS, (WPARAM) TRUE, (LPARAM) slider_pos); + EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVEAS, MF_GRAYED ); + EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVE, MF_GRAYED ); + + isnew = TRUE; + + ZeroMemory( file_path, MAX_PATH ); + + EnableWindow( slider, FALSE ); + } @@ -442,6 +470,11 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) if( GetOpenFileName( &ofn )) { open_wav( file_path ); + EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVE, MF_ENABLED ); + EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVEAS, MF_ENABLED ); + + EnableWindow( slider, TRUE ); + } break; @@ -471,9 +504,9 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) if ( GetSaveFileName ( &ofn )) { - write_wav( file_path ); + EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVE, MF_ENABLED ); } break; @@ -488,22 +521,29 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) // case BUTSTART_ID: - Beep(200,200); + + AUD_BUF->set_position_start(); + + slider_pos = 0; + + SendMessage( slider, TBM_SETPOS, (WPARAM) TRUE, (LPARAM) slider_pos ); + break; case BUTEND_ID: - Beep(300,200); + //Beep(300,200); break; case BUTPLAY_ID: AUD_OUT->play(); - butdisabled[ BUTSTART_ID ] = TRUE; - butdisabled[ BUTEND_ID ] = TRUE; - butdisabled[ BUTREC_ID ] = TRUE; - butdisabled[ BUTPLAY_ID ] = TRUE; + disable_but( BUTSTART_ID ); + disable_but( BUTEND_ID ); + disable_but( BUTREC_ID ); + disable_but( BUTPLAY_ID ); + SetTimer( hWnd, 1, 250, 0 ); @@ -516,11 +556,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) AUD_IN->stop_recording(); - butdisabled[ BUTSTART_ID ] = FALSE; - butdisabled[ BUTEND_ID ] = FALSE; - butdisabled[ BUTREC_ID ] = FALSE; - butdisabled[ BUTPLAY_ID ] = FALSE; - // @@ -535,14 +570,25 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) EnableMenuItem((HMENU)IDR_MENU1, ID_FILE_SAVEAS, MF_ENABLED ); + + enable_but( BUTSTART_ID ); + enable_but( BUTEND_ID ); + enable_but( BUTREC_ID ); + enable_but( BUTPLAY_ID ); + + EnableMenuItem( GetMenu( hWnd ), ID_FILE_SAVEAS, MF_ENABLED ); + EnableWindow( slider, TRUE ); + + + } else { AUD_OUT->pause(); - butdisabled[ BUTSTART_ID ] = FALSE; - butdisabled[ BUTEND_ID ] = FALSE; - butdisabled[ BUTREC_ID ] = FALSE; - butdisabled[ BUTPLAY_ID ] = FALSE; + enable_but( BUTSTART_ID ); + enable_but( BUTEND_ID ); + enable_but( BUTREC_ID ); + enable_but( BUTPLAY_ID ); } @@ -558,15 +604,16 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) AUD_IN->start_recording(); - butdisabled[ BUTSTOP_ID ] = FALSE; - butdisabled[ BUTSTART_ID ] = TRUE; - butdisabled[ BUTEND_ID ] = TRUE; - butdisabled[ BUTREC_ID ] = TRUE; - butdisabled[ BUTPLAY_ID ] = TRUE; + enable_but( BUTSTOP_ID ); - isnew = FALSE; + disable_but( BUTSTART_ID ); + disable_but( BUTEND_ID ); + disable_but( BUTREC_ID ); + disable_but( BUTPLAY_ID ); + isnew = FALSE; + EnableWindow( slider, FALSE ); SetTimer( hWnd, 1, 150, 0 ); @@ -586,7 +633,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) KillTimer(hWnd, 1); slider_pos = 0; - butdisabled[ BUTPLAY_ID ] = FALSE; + enable_but( BUTPLAY_ID ); stopped_flag = FALSE; } @@ -616,6 +663,61 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) } + + + +void l_play_finished ( void ) +{ + + stopped_flag = true; + + + enable_but( BUTSTART_ID ); + enable_but( BUTEND_ID ); + enable_but( BUTREC_ID ); + enable_but( BUTPLAY_ID ); + + + +} + +void l_audio_arrival ( unsigned int samples_arrival ) +{ + + + slider_pos += (DWORD) (( slider_max * samples_arrival ) / samples_max ); + + +} + +void l_buffer_resized ( unsigned int new_size ) +{ + + + + + +} + +VOID enable_but( DWORD id ) +{ + + butdisabled[ id ] = FALSE; + + SendMessage(buttons[ id ], BM_SETIMAGE, ( WPARAM )IMAGE_BITMAP, ( LPARAM )butbmps[ id ]); + + +} +VOID disable_but( DWORD id ) +{ + + butdisabled[ id ] = TRUE; + + SendMessage(buttons[ id ], BM_SETIMAGE, ( WPARAM )IMAGE_BITMAP, ( LPARAM )butbmps_dis[ id ]); + +} + + BOOL open_wav( TCHAR * f ) { @@ -663,14 +765,9 @@ BOOL open_wav( TCHAR * f ) if ( !b ) { - DWORD t = GetLastError(); - TCHAR p[100]; - wsprintf(p,TEXT("Errore n: %i"),t); - MessageBox( main_win, - //TEXT("Cannot read RIFF header."), - p, + TEXT("Cannot read RIFF header."), TEXT("ERROR"), MB_OK|MB_ICONERROR ); @@ -721,25 +818,8 @@ BOOL open_wav( TCHAR * f ) bytes_recorded_in_wav = r.chunksize - 36; - /* - unsigned char * gg = (unsigned char*)&bytes_recorded_in_wav; - - gg[0] = gg[3]; - gg[1] = gg[2]; - - bytes_recorded_in_wav = (DWORD) *gg; - - - - TCHAR p [100]; - wsprintf(p,TEXT("bytes: %i"),bytes_recorded_in_wav); - MessageBox(0,p,0,0); - - */ - if ( bytes_recorded_in_wav == 0 ) { - MessageBox( main_win, TEXT("Cannot read file. No audio data."), @@ -795,12 +875,11 @@ BOOL open_wav( TCHAR * f ) CloseHandle( file ); - butdisabled[ BUTPLAY_ID ] = FALSE; - butdisabled[ BUTSTOP_ID ] = FALSE; - butdisabled[ BUTEND_ID ] = FALSE; - butdisabled[ BUTSTART_ID ] = FALSE; - butdisabled[ BUTREC_ID ] = FALSE; - + enable_but( BUTPLAY_ID ); + enable_but( BUTSTOP_ID ); + enable_but( BUTSTART_ID ); + enable_but( BUTEND_ID ); + enable_but( BUTREC_ID ); samples_max = AUD_BUF->samples_received(); @@ -994,49 +1073,3 @@ BOOL return TRUE; } - - - -void l_play_finished ( void ) -{ - - stopped_flag = true; - - - -} - -void l_audio_arrival ( unsigned int samples_arrival ) -{ - - - slider_pos += (DWORD) (( slider_max * samples_arrival ) / samples_max ); - - -} - -void l_buffer_resized ( unsigned int new_size ) -{ - - - - - -} - -VOID enable_but( DWORD id ) -{ - - - - - -} -VOID disable_but( DWORD id ) -{ - - - -} - - diff --git a/reactos/base/applications/sndrec32/sndrec32.h b/reactos/base/applications/sndrec32/sndrec32.h index 530e53e93a6..4786a8db1ae 100644 --- a/reactos/base/applications/sndrec32/sndrec32.h +++ b/reactos/base/applications/sndrec32/sndrec32.h @@ -1,6 +1,7 @@ #pragma once #include "resource.h" +#include "audio_api.hpp" diff --git a/reactos/base/applications/sndrec32/sndrec32.rc b/reactos/base/applications/sndrec32/sndrec32.rc index e4de736ec11..a7ae78d06a5 100644 --- a/reactos/base/applications/sndrec32/sndrec32.rc +++ b/reactos/base/applications/sndrec32/sndrec32.rc @@ -33,8 +33,7 @@ LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDI_REACTOS_SNDREC32LL ICON "reactOS_sndrec32.ico" -IDI_SMALL ICON "small.ico" +IDI_SNDREC32 ICON "reactOS_sndrec32.ico" ///////////////////////////////////////////////////////////////////////////// // @@ -125,6 +124,11 @@ IDB_BITMAP2_END BITMAP "but_end.bmp" IDB_BITMAP2_PLAY BITMAP "but_play.bmp" IDB_BITMAP2_STOP BITMAP "but_stop.bmp" IDB_BITMAP2_REC BITMAP "but_rec.bmp" +IDB_BITMAP2_END_DIS BITMAP "but_end_dis.bmp" +IDB_BITMAP2_PLAY_DIS BITMAP "but_play_dis.bmp" +IDB_BITMAP2_REC_DIS BITMAP "but_rec_dis.bmp" +IDB_BITMAP2_START_DIS BITMAP "but_start_dis.bmp" +IDB_BITMAP2_STOP_DIS BITMAP "but_stop_dis.bmp" ///////////////////////////////////////////////////////////////////////////// // @@ -138,7 +142,7 @@ BEGIN MENUITEM "New", ID_NEW MENUITEM "Open...", ID_FILE_OPEN MENUITEM "Save", ID_FILE_SAVE, GRAYED - MENUITEM "Save As...", ID_FILE_SAVEAS + MENUITEM "Save As...", ID_FILE_SAVEAS, GRAYED MENUITEM SEPARATOR MENUITEM "Exit", ID_EXIT END diff --git a/reactos/base/applications/sndrec32/stdafx.h b/reactos/base/applications/sndrec32/stdafx.h index 69ca28669ec..f81c55e9685 100644 --- a/reactos/base/applications/sndrec32/stdafx.h +++ b/reactos/base/applications/sndrec32/stdafx.h @@ -11,7 +11,7 @@ // File di intestazione di Windows: #include #include -#include +#include // File di intestazione Runtime C #include