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