Mercurial > mplayer.hg
comparison libao2/ao_alsa1x.c @ 1129:705fa4ac4fed
hacked to work seek/pause/resume/uninit
author | al3x |
---|---|
date | Thu, 14 Jun 2001 18:29:05 +0000 |
parents | d2dd25dd11bc |
children | a84610bb5476 |
comparison
equal
deleted
inserted
replaced
1128:d2dd25dd11bc | 1129:705fa4ac4fed |
---|---|
196 printf("alsa-init: unable to set channels: %s\n", | 196 printf("alsa-init: unable to set channels: %s\n", |
197 snd_strerror(err)); | 197 snd_strerror(err)); |
198 return(0); | 198 return(0); |
199 } | 199 } |
200 | 200 |
201 if ((err = snd_pcm_hw_params_set_rate_near(alsa_handler, alsa_hwparams, | 201 if ((err = snd_pcm_hw_params_set_rate(alsa_handler, alsa_hwparams, |
202 ao_samplerate, 0)) < 0) | 202 ao_samplerate, 0)) < 0) |
203 { | 203 { |
204 printf("alsa-init: unable to set samplerate: %s\n", | 204 printf("alsa-init: unable to set samplerate: %s\n", |
205 snd_strerror(err)); | 205 snd_strerror(err)); |
206 return(0); | 206 return(0); |
334 { | 334 { |
335 printf("alsa-uninit: pcm drain error: %s\n", snd_strerror(err)); | 335 printf("alsa-uninit: pcm drain error: %s\n", snd_strerror(err)); |
336 return; | 336 return; |
337 } | 337 } |
338 | 338 |
339 #ifdef start | |
339 if ((err = snd_pcm_reset(alsa_handler)) < 0) | 340 if ((err = snd_pcm_reset(alsa_handler)) < 0) |
340 { | 341 { |
341 printf("alsa-uninit: pcm reset error: %s\n", snd_strerror(err)); | 342 printf("alsa-uninit: pcm reset error: %s\n", snd_strerror(err)); |
342 return; | 343 return; |
343 } | 344 } |
345 #endif | |
344 | 346 |
345 if ((err = snd_pcm_close(alsa_handler)) < 0) | 347 if ((err = snd_pcm_close(alsa_handler)) < 0) |
346 { | 348 { |
347 printf("alsa-uninit: pcm close error: %s\n", snd_strerror(err)); | 349 printf("alsa-uninit: pcm close error: %s\n", snd_strerror(err)); |
348 return; | 350 return; |
357 { | 359 { |
358 printf("alsa-pause: pcm drain error: %s\n", snd_strerror(err)); | 360 printf("alsa-pause: pcm drain error: %s\n", snd_strerror(err)); |
359 return; | 361 return; |
360 } | 362 } |
361 | 363 |
364 #ifdef reset | |
362 if ((err = snd_pcm_reset(alsa_handler)) < 0) | 365 if ((err = snd_pcm_reset(alsa_handler)) < 0) |
363 { | 366 { |
364 printf("alsa-pause: pcm reset error: %s\n", snd_strerror(err)); | 367 printf("alsa-pause: pcm reset error: %s\n", snd_strerror(err)); |
365 return; | 368 return; |
366 } | 369 } |
370 #endif | |
367 } | 371 } |
368 | 372 |
369 static void audio_resume() | 373 static void audio_resume() |
370 { | 374 { |
371 int err; | 375 int err; |
374 { | 378 { |
375 printf("alsa-resume: pcm prepare error: %s\n", snd_strerror(err)); | 379 printf("alsa-resume: pcm prepare error: %s\n", snd_strerror(err)); |
376 return; | 380 return; |
377 } | 381 } |
378 | 382 |
383 #ifdef start | |
379 if ((err = snd_pcm_start(alsa_handler)) < 0) | 384 if ((err = snd_pcm_start(alsa_handler)) < 0) |
380 { | 385 { |
381 printf("alsa-resume: pcm start error: %s\n", snd_strerror(err)); | 386 printf("alsa-resume: pcm start error: %s\n", snd_strerror(err)); |
382 return; | 387 return; |
383 } | 388 } |
389 #endif | |
384 } | 390 } |
385 | 391 |
386 /* stop playing and empty buffers (for seeking/pause) */ | 392 /* stop playing and empty buffers (for seeking/pause) */ |
387 static void reset() | 393 static void reset() |
388 { | 394 { |
392 { | 398 { |
393 printf("alsa-reset: pcm drain error: %s\n", snd_strerror(err)); | 399 printf("alsa-reset: pcm drain error: %s\n", snd_strerror(err)); |
394 return; | 400 return; |
395 } | 401 } |
396 | 402 |
403 #ifdef start | |
397 if ((err = snd_pcm_reset(alsa_handler)) < 0) | 404 if ((err = snd_pcm_reset(alsa_handler)) < 0) |
398 { | 405 { |
399 printf("alsa-reset: pcm reset error: %s\n", snd_strerror(err)); | 406 printf("alsa-reset: pcm reset error: %s\n", snd_strerror(err)); |
400 return; | 407 return; |
401 } | 408 } |
409 #endif | |
402 | 410 |
403 if ((err = snd_pcm_prepare(alsa_handler)) < 0) | 411 if ((err = snd_pcm_prepare(alsa_handler)) < 0) |
404 { | 412 { |
405 printf("alsa-reset: pcm prepare error: %s\n", snd_strerror(err)); | 413 printf("alsa-reset: pcm prepare error: %s\n", snd_strerror(err)); |
406 return; | 414 return; |
407 } | 415 } |
408 | 416 |
417 #ifdef start | |
409 if ((err = snd_pcm_start(alsa_handler)) < 0) | 418 if ((err = snd_pcm_start(alsa_handler)) < 0) |
410 { | 419 { |
411 printf("alsa-reset: pcm start error: %s\n", snd_strerror(err)); | 420 printf("alsa-reset: pcm start error: %s\n", snd_strerror(err)); |
412 return; | 421 return; |
413 } | 422 } |
423 #endif | |
414 } | 424 } |
415 | 425 |
416 /* | 426 /* |
417 plays 'len' bytes of 'data' | 427 plays 'len' bytes of 'data' |
418 returns: number of bytes played | 428 returns: number of bytes played |
471 default: | 481 default: |
472 ret = 0; | 482 ret = 0; |
473 } | 483 } |
474 | 484 |
475 snd_pcm_status_free(status); | 485 snd_pcm_status_free(status); |
486 | |
487 if (ret < 0) | |
488 ret = 0; | |
476 return(ret); | 489 return(ret); |
477 } | 490 } |
478 | 491 |
479 /* how many unplayed bytes are in the buffer */ | 492 /* how many unplayed bytes are in the buffer */ |
480 static int get_delay() | 493 static int get_delay() |
504 default: | 517 default: |
505 ret = 0; | 518 ret = 0; |
506 } | 519 } |
507 | 520 |
508 snd_pcm_status_free(status); | 521 snd_pcm_status_free(status); |
522 | |
523 if (ret < 0) | |
524 ret = 0; | |
509 return(ret); | 525 return(ret); |
510 } | 526 } |
511 |