[FORMATTING] SndRec32 patch by Marco Pagliaricci, bug #4978.
[reactos.git] / reactos / base / applications / sndrec32 / audio_producer.hpp
1 #ifndef _AUDIOAUDBUF__H_
2 #define _AUDIOAUDBUF__H_
3
4
5
6 #include "audio_def.hpp"
7
8
9 _AUDIO_NAMESPACE_START_
10
11
12 class audio_producer
13 {
14
15
16 protected:
17
18
19 unsigned int bytes_played_;
20
21
22
23
24
25 public:
26
27
28 //
29 // Ctors
30 //
31
32 audio_producer ( ) : bytes_played_( 0 )
33 { }
34
35
36
37
38
39
40
41
42
43 //
44 // Dtor
45 //
46
47 virtual ~audio_producer( void )
48 { }
49
50
51
52
53 //
54 // Public Functions
55 //
56
57
58 //reads N bytes from the buffer
59 virtual unsigned int read( BYTE *, unsigned int ) = 0;
60
61 virtual bool finished ( void ) = 0;
62
63
64
65
66 unsigned int bytes_played( void ) const
67 {
68 return bytes_played_;
69 }
70
71
72 void set_position( unsigned int pos )
73 {
74 bytes_played_ = pos;
75 }
76
77 void set_position_start( void )
78 {
79 bytes_played_ = 0 ;
80 }
81
82
83
84 void forward( unsigned int bytes )
85 {
86 bytes_played_ += bytes ;
87 }
88
89
90 void backward( unsigned int bytes )
91 {
92 bytes_played_ += bytes ;
93 }
94
95 void ( * play_finished )( void );
96
97
98
99
100 };
101
102
103
104
105 _AUDIO_NAMESPACE_END_
106
107
108
109
110
111
112 #endif //ifdef _AUDIOAUDBUF__H_