summaryrefslogtreecommitdiff
path: root/firmware/target/hosted/pcm-alsa.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/hosted/pcm-alsa.c')
-rw-r--r--firmware/target/hosted/pcm-alsa.c32
1 files changed, 4 insertions, 28 deletions
diff --git a/firmware/target/hosted/pcm-alsa.c b/firmware/target/hosted/pcm-alsa.c
index eb1f764791..939a0cabb5 100644
--- a/firmware/target/hosted/pcm-alsa.c
+++ b/firmware/target/hosted/pcm-alsa.c
@@ -489,7 +489,7 @@ static void close_hwdev(void)
489 489
490 if (handle) { 490 if (handle) {
491 snd_pcm_drain(handle); 491 snd_pcm_drain(handle);
492#ifdef AUDIOHW_MUTE_ON_PAUSE 492#ifdef AUDIOHW_MUTE_ON_STOP
493 audiohw_mute(true); 493 audiohw_mute(true);
494#endif 494#endif
495 if (ahandler) { 495 if (ahandler) {
@@ -634,20 +634,6 @@ void pcm_dma_apply_settings(void)
634 pcm_play_unlock(); 634 pcm_play_unlock();
635} 635}
636 636
637void pcm_play_dma_pause(bool pause)
638{
639 logf("PCM DMA pause %d", pause);
640 if (!handle) return;
641
642#ifdef AUDIOHW_MUTE_ON_PAUSE
643 if (pause) audiohw_mute(true);
644#endif
645 snd_pcm_pause(handle, pause);
646#ifdef AUDIOHW_MUTE_ON_PAUSE
647 if (!pause) audiohw_mute(false);
648#endif
649}
650
651void pcm_play_dma_stop(void) 637void pcm_play_dma_stop(void)
652{ 638{
653 logf("PCM DMA stop (%d)", snd_pcm_state(handle)); 639 logf("PCM DMA stop (%d)", snd_pcm_state(handle));
@@ -656,7 +642,7 @@ void pcm_play_dma_stop(void)
656 if (err < 0) 642 if (err < 0)
657 if (err < 0) 643 if (err < 0)
658 logf("Drain failed: %s", snd_strerror(err)); 644 logf("Drain failed: %s", snd_strerror(err));
659#ifdef AUDIOHW_MUTE_ON_PAUSE 645#ifdef AUDIOHW_MUTE_ON_STOP
660 audiohw_mute(true); 646 audiohw_mute(true);
661#endif 647#endif
662} 648}
@@ -669,7 +655,7 @@ void pcm_play_dma_start(const void *addr, size_t size)
669 pcm_data = addr; 655 pcm_data = addr;
670 pcm_size = size; 656 pcm_size = size;
671 657
672#if !defined(AUDIOHW_MUTE_ON_PAUSE) && defined(AUDIOHW_MUTE_ON_SRATE_CHANGE) 658#if !defined(AUDIOHW_MUTE_ON_STOP) && defined(AUDIOHW_MUTE_ON_SRATE_CHANGE)
673 audiohw_mute(false); 659 audiohw_mute(false);
674#endif 660#endif
675 661
@@ -681,7 +667,7 @@ void pcm_play_dma_start(const void *addr, size_t size)
681 switch (state) 667 switch (state)
682 { 668 {
683 case SND_PCM_STATE_RUNNING: 669 case SND_PCM_STATE_RUNNING:
684#if defined(AUDIOHW_MUTE_ON_PAUSE) 670#if defined(AUDIOHW_MUTE_ON_STOP)
685 audiohw_mute(false); 671 audiohw_mute(false);
686#endif 672#endif
687 return; 673 return;
@@ -740,11 +726,6 @@ void pcm_play_dma_start(const void *addr, size_t size)
740 726
741 break; 727 break;
742 } 728 }
743 case SND_PCM_STATE_PAUSED:
744 { /* paused, simply resume */
745 pcm_play_dma_pause(0);
746 return;
747 }
748 case SND_PCM_STATE_DRAINING: 729 case SND_PCM_STATE_DRAINING:
749 /* run until drained */ 730 /* run until drained */
750 continue; 731 continue;
@@ -850,11 +831,6 @@ void pcm_rec_dma_start(void *start, size_t size)
850 panicf("Start error: %s", snd_strerror(err)); 831 panicf("Start error: %s", snd_strerror(err));
851 return; 832 return;
852 } 833 }
853 case SND_PCM_STATE_PAUSED:
854 { /* paused, simply resume */
855 pcm_play_dma_pause(0);
856 return;
857 }
858 case SND_PCM_STATE_DRAINING: 834 case SND_PCM_STATE_DRAINING:
859 /* run until drained */ 835 /* run until drained */
860 continue; 836 continue;