Get voice event out of playback.c

Purpose: A step in removing all voice references from playback code
and prelude to other changes.

Change-Id: Ic3ad7f7a33b979693e18a3456ced37eb1d2281a4
This commit is contained in:
Michael Sevakis 2017-12-12 20:14:34 -05:00
parent 838ff9c67d
commit c8564f1ca8
5 changed files with 19 additions and 12 deletions

View file

@ -52,9 +52,13 @@ enum {
/* Next track medadata was just loaded /* Next track medadata was just loaded
data = &(struct track_event){} */ data = &(struct track_event){} */
PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE,
};
/** VOICE events **/
enum {
/* Voice is playing /* Voice is playing
data = &(bool){true|false} */ data = &(bool){true|false} */
PLAYBACK_EVENT_VOICE_PLAYING, VOICE_EVENT_IS_PLAYING = (EVENT_CLASS_VOICE|1),
}; };
/** Buffering events **/ /** Buffering events **/

View file

@ -27,6 +27,8 @@
#include "usb.h" #include "usb.h"
#include "pcm.h" #include "pcm.h"
#include "sound.h" #include "sound.h"
#include "pcmbuf.h"
#include "appevents.h"
#include "audio_thread.h" #include "audio_thread.h"
#ifdef AUDIO_HAVE_RECORDING #ifdef AUDIO_HAVE_RECORDING
#include "pcm_record.h" #include "pcm_record.h"
@ -108,6 +110,13 @@ static void NORETURN_ATTR audio_thread(void)
} }
} }
void audio_voice_event(unsigned short id, void *data)
{
(void)id;
/* Make audio play softly while voice is speaking */
pcmbuf_soft_mode(*(bool *)data);
}
void audio_queue_post(long id, intptr_t data) void audio_queue_post(long id, intptr_t data)
{ {
queue_post(&audio_queue, id, data); queue_post(&audio_queue, id, data);
@ -170,6 +179,8 @@ void INIT_ATTR audio_init(void)
recording_init(); recording_init();
#endif #endif
add_event(VOICE_EVENT_IS_PLAYING, audio_voice_event);
/* Probably safe to say */ /* Probably safe to say */
audio_is_initialized = true; audio_is_initialized = true;

View file

@ -355,14 +355,6 @@ void audio_pcmbuf_sync_position(void);
/**************************************/ /**************************************/
/** --- voice event --- **/
void playback_voice_event(unsigned short id, void *data)
{
(void)id;
/* Make audio play softly while voice is speaking */
pcmbuf_soft_mode(*(bool *)data);
}
/** --- MP3Entry --- **/ /** --- MP3Entry --- **/
/* Does the mp3entry have enough info for us to use it? */ /* Does the mp3entry have enough info for us to use it? */
@ -3888,7 +3880,6 @@ void INIT_ATTR playback_init(void)
track_list_init(); track_list_init();
buffering_init(); buffering_init();
pcmbuf_update_frequency(); pcmbuf_update_frequency();
add_event(PLAYBACK_EVENT_VOICE_PLAYING, playback_voice_event);
#ifdef HAVE_CROSSFADE #ifdef HAVE_CROSSFADE
/* Set crossfade setting for next buffer init which should be about... */ /* Set crossfade setting for next buffer init which should be about... */
pcmbuf_request_crossfade_enable(global_settings.crossfade); pcmbuf_request_crossfade_enable(global_settings.crossfade);

View file

@ -372,7 +372,7 @@ static enum voice_state voice_message(struct voice_thread_data *td)
{ {
voice_playing = true; voice_playing = true;
dsp_configure(td->dsp, DSP_SET_OUT_FREQUENCY, mixer_get_frequency()); dsp_configure(td->dsp, DSP_SET_OUT_FREQUENCY, mixer_get_frequency());
send_event(PLAYBACK_EVENT_VOICE_PLAYING, &voice_playing); send_event(VOICE_EVENT_IS_PLAYING, &voice_playing);
} }
quiet_counter = QUIET_COUNT; quiet_counter = QUIET_COUNT;
@ -406,7 +406,7 @@ static enum voice_state voice_message(struct voice_thread_data *td)
if (quiet_counter <= 0) if (quiet_counter <= 0)
{ {
voice_playing = false; voice_playing = false;
send_event(PLAYBACK_EVENT_VOICE_PLAYING, &voice_playing); send_event(VOICE_EVENT_IS_PLAYING, &voice_playing);
} }
break; break;
} }

View file

@ -51,6 +51,7 @@
#define EVENT_CLASS_GUI 0x0800 #define EVENT_CLASS_GUI 0x0800
#define EVENT_CLASS_RECORDING 0x1000 #define EVENT_CLASS_RECORDING 0x1000
#define EVENT_CLASS_LCD 0x2000 #define EVENT_CLASS_LCD 0x2000
#define EVENT_CLASS_VOICE 0x4000
/** /**
* Subscribe to an event with a simple callback. The callback will be called * Subscribe to an event with a simple callback. The callback will be called