author | llornkcor <llornkcor> | 2002-02-25 04:59:47 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-02-25 04:59:47 (UTC) |
commit | d948361c1b475fab4660b28fbf5ec21fd34d923f (patch) (unidiff) | |
tree | 89bc57d755e37b27c396499c58369d595158b530 /core | |
parent | f180c1a5e8fc889ff1fb390d5cc94cdbc5085046 (diff) | |
download | opie-d948361c1b475fab4660b28fbf5ec21fd34d923f.zip opie-d948361c1b475fab4660b28fbf5ec21fd34d923f.tar.gz opie-d948361c1b475fab4660b28fbf5ec21fd34d923f.tar.bz2 |
fixed
-rw-r--r-- | core/multimedia/opieplayer/wavplugin/wavplugin.cpp | 216 | ||||
-rw-r--r-- | core/multimedia/opieplayer/wavplugin/wavplugin.h | 5 | ||||
-rw-r--r-- | core/multimedia/opieplayer/wavplugin/wavpluginimpl.h | 2 |
3 files changed, 36 insertions, 187 deletions
diff --git a/core/multimedia/opieplayer/wavplugin/wavplugin.cpp b/core/multimedia/opieplayer/wavplugin/wavplugin.cpp index 0be667f..7ac63c0 100644 --- a/core/multimedia/opieplayer/wavplugin/wavplugin.cpp +++ b/core/multimedia/opieplayer/wavplugin/wavplugin.cpp | |||
@@ -14,12 +14,14 @@ | |||
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | // L.J.Potter added changes Fri 02-15-2002 | ||
21 | |||
20 | #include <stdio.h> | 22 | #include <stdio.h> |
21 | #include <stdarg.h> | 23 | #include <stdarg.h> |
22 | #include <stdlib.h> | 24 | #include <stdlib.h> |
23 | #include <errno.h> | 25 | #include <errno.h> |
24 | #include <unistd.h> | 26 | #include <unistd.h> |
25 | #include <qfile.h> | 27 | #include <qfile.h> |
@@ -43,13 +45,13 @@ struct ChunkData { | |||
43 | Q_INT32 avgBytesPerSec; | 45 | Q_INT32 avgBytesPerSec; |
44 | Q_INT16 blockAlign; | 46 | Q_INT16 blockAlign; |
45 | Q_INT16 wBitsPerSample; | 47 | Q_INT16 wBitsPerSample; |
46 | }; | 48 | }; |
47 | 49 | ||
48 | 50 | ||
49 | const int sound_buffer_size = 4096; | 51 | const int sound_buffer_size = 512; // 4096; // you got to be kidding right? |
50 | 52 | ||
51 | 53 | ||
52 | class WavPluginData { | 54 | class WavPluginData { |
53 | public: | 55 | public: |
54 | QFile *input; | 56 | QFile *input; |
55 | 57 | ||
@@ -57,57 +59,51 @@ public: | |||
57 | ChunkData chunkdata; | 59 | ChunkData chunkdata; |
58 | RiffChunk chunk; | 60 | RiffChunk chunk; |
59 | uchar data[sound_buffer_size+32]; // +32 to handle badly aligned input data | 61 | uchar data[sound_buffer_size+32]; // +32 to handle badly aligned input data |
60 | int out,max; | 62 | int out,max; |
61 | int samples_due; | 63 | int samples_due; |
62 | int samples; | 64 | int samples; |
63 | int freq; | ||
64 | int chan; | ||
65 | int sampleRate; | ||
66 | int resolution; | ||
67 | 65 | ||
68 | WavPluginData() { | 66 | WavPluginData() { |
69 | max = out = sound_buffer_size; | 67 | max = out = sound_buffer_size; |
70 | wavedata_remaining = 0; | 68 | wavedata_remaining = 0; |
71 | samples_due = 0; | 69 | samples_due = 0; |
72 | samples = -1; | 70 | samples = -1; |
73 | } | 71 | } |
74 | 72 | ||
75 | // expands out samples to the frequency of 44kHz | 73 | // expands out samples to the frequency of 44kHz |
76 | bool add( short *output, long count, long& done, bool stereo ) | 74 | bool add( short *output, long count, long& done, bool stereo ) |
77 | { | 75 | { |
78 | qDebug("add"); | ||
79 | done = 0; | 76 | done = 0; |
77 | qApp->processEvents(); | ||
80 | 78 | ||
81 | if ( input == 0 ) { | 79 | if ( input == 0 ) { |
82 | qDebug("no input"); | 80 | qDebug("no input"); |
83 | return FALSE; | 81 | return FALSE; |
84 | } | 82 | } |
85 | 83 | ||
86 | while ( count ) { | 84 | while ( count ) { |
87 | int l,r; | 85 | int l,r; |
88 | if ( getSample(l, r) == FALSE ) { | 86 | if ( getSample(l, r) == FALSE ) { |
89 | qDebug("didn't get sample"); | 87 | qDebug("didn't get sample"); |
90 | return FALSE; | 88 | return FALSE; |
91 | } | 89 | } |
92 | samples_due += 44100; | 90 | samples_due += chunkdata.samplesPerSec; |
93 | while ( count && (samples_due > chunkdata.samplesPerSec) ) { | 91 | while ( count && (samples_due > chunkdata.samplesPerSec) ) { |
94 | *output++ = l; | 92 | *output++ = l; |
95 | if ( stereo ) | 93 | if ( stereo ) |
96 | *output++ = r; | 94 | *output++ = r; |
97 | samples_due -= chunkdata.samplesPerSec; | 95 | samples_due -= chunkdata.samplesPerSec; |
98 | count--; | 96 | count--; |
99 | done++; | 97 | done++; |
100 | } | 98 | } |
101 | } | 99 | } |
102 | |||
103 | return TRUE; | 100 | return TRUE; |
104 | } | 101 | } |
105 | 102 | ||
106 | bool initialise() { | 103 | bool initialise() { |
107 | qDebug("initialize"); | ||
108 | if ( input == 0 ) | 104 | if ( input == 0 ) |
109 | return FALSE; | 105 | return FALSE; |
110 | 106 | ||
111 | wavedata_remaining = -1; | 107 | wavedata_remaining = -1; |
112 | 108 | ||
113 | while ( wavedata_remaining == -1 ) { | 109 | while ( wavedata_remaining == -1 ) { |
@@ -138,25 +134,20 @@ public: | |||
138 | } | 134 | } |
139 | #define WAVE_FORMAT_PCM 1 | 135 | #define WAVE_FORMAT_PCM 1 |
140 | if ( chunkdata.formatTag != WAVE_FORMAT_PCM ) { | 136 | if ( chunkdata.formatTag != WAVE_FORMAT_PCM ) { |
141 | qDebug("WAV file: UNSUPPORTED FORMAT %d",chunkdata.formatTag); | 137 | qDebug("WAV file: UNSUPPORTED FORMAT %d",chunkdata.formatTag); |
142 | return FALSE; | 138 | return FALSE; |
143 | } | 139 | } |
144 | } | 140 | } else { |
145 | |||
146 | |||
147 | |||
148 | |||
149 | else { | ||
150 | // ignored chunk | 141 | // ignored chunk |
151 | if ( chunk.size > 1000000000 || !input->at(input->at()+chunk.size) ) { | 142 | if ( chunk.size > 1000000000 || !input->at(input->at()+chunk.size) ) { |
152 | return FALSE; | 143 | return FALSE; |
153 | } | 144 | } |
154 | } | 145 | } |
155 | } // while | 146 | } // while |
156 | 147 | qDebug("bits %d", chunkdata.wBitsPerSample); | |
157 | return TRUE; | 148 | return TRUE; |
158 | } | 149 | } |
159 | 150 | ||
160 | 151 | ||
161 | // gets a sample from the file | 152 | // gets a sample from the file |
162 | bool getSample(int& l, int& r) | 153 | bool getSample(int& l, int& r) |
@@ -177,179 +168,31 @@ public: | |||
177 | out = 0; | 168 | out = 0; |
178 | if ( max <= 0 ) { | 169 | if ( max <= 0 ) { |
179 | max = 0; | 170 | max = 0; |
180 | return TRUE; | 171 | return TRUE; |
181 | } | 172 | } |
182 | } | 173 | } |
183 | if ( resolution == 8 ) { | 174 | if ( chunkdata.wBitsPerSample == 8 ) { |
184 | l = (data[out++] - 128) * 128; | 175 | l = (data[out++] - 128) * 128; |
185 | } else { | 176 | } else { |
186 | l = ((short*)data)[out/2]; | 177 | l = ((short*)data)[out/2]; |
187 | out += 2; | 178 | out += 2; |
188 | } | 179 | } |
189 | if ( chan == 1 ) { | 180 | if ( chunkdata.channels == 1 ) { |
190 | r = l; | 181 | r = l; |
191 | } else { | 182 | } else { |
192 | if ( resolution == 8 ) { | 183 | if ( chunkdata.wBitsPerSample == 8 ) { |
193 | r = (data[out++] - 128) * 128; | 184 | r = (data[out++] - 128) * 128; |
194 | } else { | 185 | } else { |
195 | r = ((short*)data)[out/2]; | 186 | r = ((short*)data)[out/2]; |
196 | out += 2; | 187 | out += 2; |
197 | } | 188 | } |
198 | } | 189 | } |
199 | return TRUE; | 190 | return TRUE; |
200 | } // getSample | 191 | } // getSample |
201 | 192 | ||
202 | ////////////////////////////////////////////////////// | ||
203 | int getWavSettings(int fd) | ||
204 | { //this came from wmrecord | ||
205 | |||
206 | char t1[4]; | ||
207 | unsigned long l1; | ||
208 | int found; | ||
209 | short fmt; | ||
210 | unsigned short ch, brate; | ||
211 | unsigned long srate; | ||
212 | |||
213 | |||
214 | /* First read in the RIFF identifier. If this is missing then the | ||
215 | * file is not a valid WAVE file. | ||
216 | */ | ||
217 | if (read(fd, t1, 4)<4) { | ||
218 | qDebug(" Could not read from sound file.\n"); | ||
219 | return -1; | ||
220 | } | ||
221 | if (strncmp(t1, "RIFF", 4)) { | ||
222 | qDebug(" not a valid WAV file.\n"); | ||
223 | return -1; | ||
224 | } | ||
225 | /* Advance the file pointer to the next relevant field. */ | ||
226 | lseek(fd, 4, SEEK_CUR); | ||
227 | /* Read in the WAVE identifier. */ | ||
228 | if (read(fd, t1, 4)<4) { | ||
229 | qDebug("Could not read from sound file.\n"); | ||
230 | return -1; | ||
231 | } | ||
232 | if (strncmp(t1, "WAVE", 4)) { | ||
233 | qDebug("not a valid WAV file.\n"); | ||
234 | return -1; | ||
235 | } | ||
236 | |||
237 | /* Search through the file for the format chunk. If the end of the | ||
238 | * file is reached without finding the chunk, then the file is not a | ||
239 | * valid WAVE file. | ||
240 | */ | ||
241 | found = 0; | ||
242 | while (!found) { | ||
243 | if (read(fd, t1, 4)<4) { | ||
244 | qDebug("Could not read from sound file.\n"); | ||
245 | return -1; | ||
246 | } | ||
247 | if (strncmp(t1, "fmt ", 4)) { | ||
248 | /* Determine the length of the chunk found and skip to the next | ||
249 | * chunk. The chunk length is always stored in the four bytes | ||
250 | * following the chunk id. | ||
251 | */ | ||
252 | if (read(fd, &l1, 4)<4) { | ||
253 | qDebug("Could not read from sound file.\n"); | ||
254 | return -1; | ||
255 | } | ||
256 | lseek(fd, l1, SEEK_CUR); | ||
257 | } | ||
258 | else { | ||
259 | /* This is the format chunk, which stores the playback settings | ||
260 | * for the recording. | ||
261 | */ | ||
262 | /* Skip the length field, since we don't really need it. */ | ||
263 | lseek(fd, 4, SEEK_CUR); | ||
264 | /* Read in the format tag. If it has a value of 1, then there is | ||
265 | * no compression and we can attempt to play the file | ||
266 | * back. Otherwise, return. | ||
267 | */ | ||
268 | if (read(fd, &fmt, 2)<2) { | ||
269 | qDebug("Could not read from format chunk.\n"); | ||
270 | return -1; | ||
271 | } | ||
272 | if (fmt != 1) { | ||
273 | qDebug("Wave file contains compressed data." | ||
274 | " Unable to continue.\n"); | ||
275 | return -1; | ||
276 | } | ||
277 | /* Get the stereo mode. */ | ||
278 | if (read(fd, &ch, 2)<2) { | ||
279 | qDebug("Could not read from format chunk.\n"); | ||
280 | return -1; | ||
281 | } | ||
282 | else { | ||
283 | chan = ch; | ||
284 | qDebug("File has %d channels", chan); | ||
285 | } | ||
286 | /* Get the sample rate. */ | ||
287 | if (read(fd, &srate, 4)<4) { | ||
288 | qDebug("Could not read from format chunk.\n"); | ||
289 | return -1; | ||
290 | } | ||
291 | else { | ||
292 | sampleRate = srate; | ||
293 | qDebug("File has samplerate of %d", sampleRate); | ||
294 | } | ||
295 | /* Get the bit rate. This is at the end of the format chunk. */ | ||
296 | lseek(fd, 6, SEEK_CUR); | ||
297 | if (read(fd, &brate, 2)<2) { | ||
298 | qDebug("Could not read from format chunk.\n"); | ||
299 | return -1; | ||
300 | } | ||
301 | else { | ||
302 | resolution = brate; | ||
303 | qDebug("File has bitrate of %d", resolution); | ||
304 | } | ||
305 | |||
306 | found++; | ||
307 | } | ||
308 | } | ||
309 | |||
310 | /* Search through the file for the data chunk. If the end of the | ||
311 | * file is reached without finding the chunk, then the file is not a | ||
312 | * valid WAVE file. | ||
313 | */ | ||
314 | found = 0; | ||
315 | while (!found) { | ||
316 | if (read(fd, t1, 4)<4) { | ||
317 | qDebug("Could not read from sound file.\n"); | ||
318 | return -1; | ||
319 | } | ||
320 | if (strncmp(t1, "data", 4)) { | ||
321 | /* Determine the length of the chunk found and skip to the next | ||
322 | * chunk. The chunk length is always stored in the four bytes | ||
323 | * following the chunk id. | ||
324 | */ | ||
325 | if (read(fd, &l1, 4)<4) { | ||
326 | qDebug("Could not read from sound file.\n"); | ||
327 | return -1; | ||
328 | } | ||
329 | lseek(fd, l1, SEEK_CUR); | ||
330 | } | ||
331 | else { | ||
332 | /* This is the data chunk, which stores the recording. */ | ||
333 | /* Get the length field. */ | ||
334 | if (read(fd, &l1, 4)<4) { | ||
335 | qDebug("Could not read from sound file.\n"); | ||
336 | return -1; | ||
337 | } | ||
338 | else { | ||
339 | samples =l1; | ||
340 | qDebug("file has length of %d\nlasting %d seconds",l1, (( l1 / sampleRate) / chan) / 2 ); // ???? | ||
341 | return l1; | ||
342 | } | ||
343 | } | ||
344 | } | ||
345 | |||
346 | return 0; | ||
347 | } | ||
348 | |||
349 | ////////////////////////////////////////////////// | ||
350 | }; | 193 | }; |
351 | 194 | ||
352 | 195 | ||
353 | WavPlugin::WavPlugin() { | 196 | WavPlugin::WavPlugin() { |
354 | d = new WavPluginData; | 197 | d = new WavPluginData; |
355 | d->input = 0; | 198 | d->input = 0; |
@@ -360,13 +203,13 @@ WavPlugin::~WavPlugin() { | |||
360 | close(); | 203 | close(); |
361 | delete d; | 204 | delete d; |
362 | } | 205 | } |
363 | 206 | ||
364 | 207 | ||
365 | bool WavPlugin::isFileSupported( const QString& path ) { | 208 | bool WavPlugin::isFileSupported( const QString& path ) { |
366 | debugMsg( "WavPlugin::isFileSupported" ); | 209 | // qDebug( "WavPlugin::isFileSupported" ); |
367 | 210 | ||
368 | char *ext = strrchr( path.latin1(), '.' ); | 211 | char *ext = strrchr( path.latin1(), '.' ); |
369 | 212 | ||
370 | // Test file extension | 213 | // Test file extension |
371 | if ( ext ) { | 214 | if ( ext ) { |
372 | if ( strncasecmp(ext, ".raw", 4) == 0 ) | 215 | if ( strncasecmp(ext, ".raw", 4) == 0 ) |
@@ -379,13 +222,13 @@ bool WavPlugin::isFileSupported( const QString& path ) { | |||
379 | 222 | ||
380 | return FALSE; | 223 | return FALSE; |
381 | } | 224 | } |
382 | 225 | ||
383 | 226 | ||
384 | bool WavPlugin::open( const QString& path ) { | 227 | bool WavPlugin::open( const QString& path ) { |
385 | qDebug( "WavPlugin::open" ); | 228 | // qDebug( "WavPlugin::open" ); |
386 | 229 | ||
387 | d->max = d->out = sound_buffer_size; | 230 | d->max = d->out = sound_buffer_size; |
388 | d->wavedata_remaining = 0; | 231 | d->wavedata_remaining = 0; |
389 | d->samples_due = 0; | 232 | d->samples_due = 0; |
390 | 233 | ||
391 | d->input = new QFile( path ); | 234 | d->input = new QFile( path ); |
@@ -393,69 +236,67 @@ bool WavPlugin::open( const QString& path ) { | |||
393 | qDebug("couldn't open file"); | 236 | qDebug("couldn't open file"); |
394 | delete d->input; | 237 | delete d->input; |
395 | d->input = 0; | 238 | d->input = 0; |
396 | return FALSE; | 239 | return FALSE; |
397 | } | 240 | } |
398 | 241 | ||
399 | // d->getWavSettings( d->input.handle()); | ||
400 | d->initialise(); | 242 | d->initialise(); |
401 | 243 | ||
402 | return TRUE; | 244 | return TRUE; |
403 | } | 245 | } |
404 | 246 | ||
405 | 247 | ||
406 | bool WavPlugin::close() { | 248 | bool WavPlugin::close() { |
407 | qDebug( "WavPlugin::close" ); | 249 | // qDebug( "WavPlugin::close" ); |
408 | 250 | ||
409 | d->input->close(); | 251 | d->input->close(); |
410 | delete d->input; | 252 | delete d->input; |
411 | d->input = 0; | 253 | d->input = 0; |
412 | return TRUE; | 254 | return TRUE; |
413 | } | 255 | } |
414 | 256 | ||
415 | 257 | ||
416 | bool WavPlugin::isOpen() { | 258 | bool WavPlugin::isOpen() { |
417 | qDebug( "WavPlugin::isOpen" ); | 259 | // qDebug( "WavPlugin::isOpen" ); |
418 | return ( d->input != 0 ); | 260 | return ( d->input != 0 ); |
419 | } | 261 | } |
420 | 262 | ||
421 | 263 | ||
422 | int WavPlugin::audioStreams() { | 264 | int WavPlugin::audioStreams() { |
423 | qDebug( "WavPlugin::audioStreams" ); | 265 | // qDebug( "WavPlugin::audioStreams" ); |
424 | return 1; | 266 | return 1; |
425 | } | 267 | } |
426 | 268 | ||
427 | 269 | ||
428 | int WavPlugin::audioChannels( int ) { | 270 | int WavPlugin::audioChannels( int ) { |
429 | debugMsg( "WavPlugin::audioChannels" ); | 271 | // qDebug( "WavPlugin::audioChannels" ); |
430 | return d->chan; | 272 | return d->chunkdata.channels;// 2; // ### Always scale audio to stereo samples |
431 | } | 273 | } |
432 | 274 | ||
433 | 275 | ||
434 | int WavPlugin::audioFrequency( int ) { | 276 | int WavPlugin::audioFrequency( int ) { |
435 | qDebug( "WavPlugin::audioFrequency" ); | 277 | // qDebug( "WavPlugin::audioFrequency %d", d->chunkdata.samplesPerSec ); |
436 | return d->freq; | 278 | return d->chunkdata.samplesPerSec; //44100; // ### Always scale to frequency of 44100 |
437 | } | 279 | } |
438 | 280 | ||
439 | 281 | ||
440 | int WavPlugin::audioSamples( int ) { | 282 | int WavPlugin::audioSamples( int ) { |
441 | qDebug( "WavPlugin::audioSamples" ); | 283 | // qDebug( "WavPlugin::audioSamples" ); |
442 | return d->samples; | 284 | return d->samples / d->chunkdata.channels/2; // ### Scaled samples will be made stereo, |
443 | // return d->samples * 2 / d->chunkdata.channels; // ### Scaled samples will be made stereo, | 285 | // Therefore if source is mono we will double the number of samples |
444 | // // Therefore if source is mono we will double the number of samples | ||
445 | } | 286 | } |
446 | 287 | ||
447 | 288 | ||
448 | bool WavPlugin::audioSetSample( long, int ) { | 289 | bool WavPlugin::audioSetSample( long, int ) { |
449 | qDebug( "WavPlugin::audioSetSample" ); | 290 | // qDebug( "WavPlugin::audioSetSample" ); |
450 | return FALSE; | 291 | return FALSE; |
451 | } | 292 | } |
452 | 293 | ||
453 | 294 | ||
454 | long WavPlugin::audioGetSample( int ) { | 295 | long WavPlugin::audioGetSample( int ) { |
455 | qDebug( "WavPlugin::audioGetSample" ); | 296 | // qDebug( "WavPlugin::audioGetSample" ); |
456 | return 0; | 297 | return 0; |
457 | } | 298 | } |
458 | 299 | ||
459 | /* | 300 | /* |
460 | bool WavPlugin::audioReadSamples( short *, int, long, int ) { | 301 | bool WavPlugin::audioReadSamples( short *, int, long, int ) { |
461 | debugMsg( "WavPlugin::audioReadSamples" ); | 302 | debugMsg( "WavPlugin::audioReadSamples" ); |
@@ -479,16 +320,21 @@ bool WavPlugin::audioReadStereoSamples( short *output, long samples, long& sampl | |||
479 | debugMsg( "WavPlugin::audioReadStereoSamples" ); | 320 | debugMsg( "WavPlugin::audioReadStereoSamples" ); |
480 | return !d->add( output, samples, samplesMade, TRUE ); | 321 | return !d->add( output, samples, samplesMade, TRUE ); |
481 | } | 322 | } |
482 | */ | 323 | */ |
483 | 324 | ||
484 | bool WavPlugin::audioReadSamples( short *output, int channels, long samples, long& samplesMade, int ) { | 325 | bool WavPlugin::audioReadSamples( short *output, int channels, long samples, long& samplesMade, int ) { |
485 | qDebug( "WavPlugin::audioReadSamples" ); | 326 | // qDebug( "WavPlugin::audioReadSamples" ); |
486 | return d->add( output, samples, samplesMade, channels != 1 ); | 327 | return d->add( output, samples, samplesMade, channels != 1 ); |
487 | } | 328 | } |
488 | 329 | ||
489 | double WavPlugin::getTime() { | 330 | double WavPlugin::getTime() { |
490 | qDebug( "WavPlugin::getTime" ); | 331 | // qDebug( "WavPlugin::getTime" ); |
491 | return 0.0; | 332 | return 0.0; |
492 | } | 333 | } |
493 | 334 | ||
335 | int WavPlugin::audioBitsPerSample( int ) { | ||
336 | // qDebug( "WavPlugin::audioFormat %d", d->chunkdata.wBitsPerSample ); | ||
337 | return d->chunkdata.wBitsPerSample; // | ||
338 | } | ||
339 | |||
494 | 340 | ||
diff --git a/core/multimedia/opieplayer/wavplugin/wavplugin.h b/core/multimedia/opieplayer/wavplugin/wavplugin.h index 19d1a8e..6ae6e06 100644 --- a/core/multimedia/opieplayer/wavplugin/wavplugin.h +++ b/core/multimedia/opieplayer/wavplugin/wavplugin.h | |||
@@ -14,18 +14,20 @@ | |||
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | // L.J.Potter added changes Fri 02-15-2002 | ||
21 | |||
20 | #ifndef WAV_PLUGIN_H | 22 | #ifndef WAV_PLUGIN_H |
21 | #define WAV_PLUGIN_H | 23 | #define WAV_PLUGIN_H |
22 | 24 | ||
23 | #include <qstring.h> | 25 | #include <qstring.h> |
24 | #include <qapplication.h> | 26 | #include <qapplication.h> |
25 | #include <qpe/mediaplayerplugininterface.h> | 27 | #include "../mediaplayerplugininterface.h" |
26 | 28 | ||
27 | 29 | ||
28 | // #define OLD_MEDIAPLAYER_API | 30 | // #define OLD_MEDIAPLAYER_API |
29 | 31 | ||
30 | 32 | ||
31 | class WavPluginData; | 33 | class WavPluginData; |
@@ -48,12 +50,13 @@ public: | |||
48 | const QString &fileInfo() { return strInfo = ""; } | 50 | const QString &fileInfo() { return strInfo = ""; } |
49 | 51 | ||
50 | // If decoder doesn't support audio then return 0 here | 52 | // If decoder doesn't support audio then return 0 here |
51 | int audioStreams(); | 53 | int audioStreams(); |
52 | int audioChannels( int stream ); | 54 | int audioChannels( int stream ); |
53 | int audioFrequency( int stream ); | 55 | int audioFrequency( int stream ); |
56 | int audioBitsPerSample( int stream ); | ||
54 | int audioSamples( int stream ); | 57 | int audioSamples( int stream ); |
55 | bool audioSetSample( long sample, int stream ); | 58 | bool audioSetSample( long sample, int stream ); |
56 | long audioGetSample( int stream ); | 59 | long audioGetSample( int stream ); |
57 | #ifdef OLD_MEDIAPLAYER_API | 60 | #ifdef OLD_MEDIAPLAYER_API |
58 | bool audioReadMonoSamples( short *output, long samples, long& samplesRead, int stream ); | 61 | bool audioReadMonoSamples( short *output, long samples, long& samplesRead, int stream ); |
59 | bool audioReadStereoSamples( short *output, long samples, long& samplesRead, int stream ); | 62 | bool audioReadStereoSamples( short *output, long samples, long& samplesRead, int stream ); |
diff --git a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h index 71f5f20..10f9305 100644 --- a/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h +++ b/core/multimedia/opieplayer/wavplugin/wavpluginimpl.h | |||
@@ -17,13 +17,13 @@ | |||
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | #ifndef WAV_PLUGIN_IMPL_H | 20 | #ifndef WAV_PLUGIN_IMPL_H |
21 | #define WAV_PLUGIN_IMPL_H | 21 | #define WAV_PLUGIN_IMPL_H |
22 | 22 | ||
23 | #include <qpe/mediaplayerplugininterface.h> | 23 | #include "../mediaplayerplugininterface.h" |
24 | 24 | ||
25 | 25 | ||
26 | class WavPlugin; | 26 | class WavPlugin; |
27 | 27 | ||
28 | 28 | ||
29 | class WavPluginImpl : public MediaPlayerPluginInterface | 29 | class WavPluginImpl : public MediaPlayerPluginInterface |