* Added wavebar
[reactos.git] / reactos / base / applications / sndrec32 / sndrec32.h
1 /* PROJECT: ReactOS sndrec32
2 * LICENSE: GPL - See COPYING in the top level directory
3 * FILE: base/applications/sndrec32/sndrec.h
4 * PURPOSE: Sound recording
5 * PROGRAMMERS: Marco Pagliaricci (irc: rendar)
6 */
7
8
9
10 #pragma once
11
12 #include "resource.h"
13 #include "audio_api.hpp"
14
15
16
17 #define MAX_LOADSTRING 100
18
19 #define MAINWINDOW_W 350
20 #define MAINWINDOW_H 190
21
22
23 #define CONTROLS_CX 10
24
25 #define INITIAL_BUFREC_SECONDS 30.0f
26
27
28 #define BUTSTART_ID 0
29 #define BUTEND_ID 1
30 #define BUTPLAY_ID 2
31 #define BUTSTOP_ID 3
32 #define BUTREC_ID 4
33 #define SLIDER_ID 5
34 #define WAVEBAR_ID 6
35
36 #define BUTTONS_H 30
37 #define BUTTONS_W 60
38 #define BUTTONS_CY 100
39 #define BUTTONS_CX ( CONTROLS_CX )
40 #define BUTTONS_SPACE 5
41
42
43
44 #define SLIDER_CX CONTROLS_CX
45 #define SLIDER_CY 65
46 #define SLIDER_H 30
47 #define SLIDER_W 320
48
49
50 #define STRPOS_X 240
51 #define STRPOS_Y 5
52
53 #define STRDUR_X ( STRPOS_X )
54 #define STRDUR_Y ( STRPOS_Y + 13 )
55
56 #define STRBUF_X ( STRDUR_X )
57 #define STRBUF_Y ( STRDUR_Y + 13 )
58
59
60 #define STRFMT_X 10
61 #define STRFMT_Y ( STRPOS_Y )
62
63 #define STRCHAN_X ( STRFMT_X )
64 #define STRCHAN_Y ( STRFMT_Y + 13 )
65
66
67 #define WAVEBAR_X ( CONTROLS_CX + 90 )
68 #define WAVEBAR_Y ( STRPOS_Y )
69 #define WAVEBAR_CX 130
70 #define WAVEBAR_CY 50
71
72 #define WAVEBAR_TIMERID 2
73 #define WAVEBAR_TIMERTIME 80
74
75 #define WAVEBAR_COLOR ( RGB( 0, 0, 255 ))
76
77 #define REFRESHA_X ( STRPOS_X )
78 #define REFRESHA_Y ( STRPOS_Y )
79 #define REFRESHA_CX ( REFRESHA_X + 100 )
80 #define REFRESHA_CY ( REFRESHA_Y + 55 )
81
82
83 #define REFRESHB_X ( STRFMT_X )
84 #define REFRESHB_Y ( STRFMT_Y )
85 #define REFRESHB_CX ( REFRESHB_X + 85 )
86 #define REFRESHB_CY ( REFRESHB_Y + 55 )
87
88
89 struct riff_hdr
90 {
91 DWORD magic;
92 DWORD chunksize;
93 DWORD format;
94 };
95
96
97 struct wave_hdr
98 {
99
100 DWORD Subchunkid;
101 DWORD Subchunk1Size;
102 WORD AudioFormat;
103 WORD NumChannels;
104 DWORD SampleRate;
105 DWORD ByteRate;
106 WORD BlockAlign;
107 WORD BitsPerSample;
108 };
109
110 struct data_chunk
111 {
112 DWORD subc;
113 DWORD subc_size;
114 //unsigned char data[];
115 };
116
117
118
119 //
120 // Functions prototypes
121 //
122 LRESULT CALLBACK
123 Buttons_proc(HWND, UINT, WPARAM, LPARAM);
124
125
126 BOOL
127 write_wav( TCHAR * );
128
129 BOOL
130 open_wav( TCHAR * );
131
132
133 VOID enable_but( DWORD );
134 VOID disable_but( DWORD );
135
136
137
138 void
139 l_play_finished ( void );
140
141 void
142 l_audio_arrival ( unsigned int );
143
144 void
145 l_buffer_resized ( unsigned int );