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