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:
parent
838ff9c67d
commit
c8564f1ca8
5 changed files with 19 additions and 12 deletions
|
@ -52,9 +52,13 @@ enum {
|
|||
/* Next track medadata was just loaded
|
||||
data = &(struct track_event){} */
|
||||
PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE,
|
||||
};
|
||||
|
||||
/** VOICE events **/
|
||||
enum {
|
||||
/* Voice is playing
|
||||
data = &(bool){true|false} */
|
||||
PLAYBACK_EVENT_VOICE_PLAYING,
|
||||
VOICE_EVENT_IS_PLAYING = (EVENT_CLASS_VOICE|1),
|
||||
};
|
||||
|
||||
/** Buffering events **/
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
#include "usb.h"
|
||||
#include "pcm.h"
|
||||
#include "sound.h"
|
||||
#include "pcmbuf.h"
|
||||
#include "appevents.h"
|
||||
#include "audio_thread.h"
|
||||
#ifdef AUDIO_HAVE_RECORDING
|
||||
#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)
|
||||
{
|
||||
queue_post(&audio_queue, id, data);
|
||||
|
@ -170,6 +179,8 @@ void INIT_ATTR audio_init(void)
|
|||
recording_init();
|
||||
#endif
|
||||
|
||||
add_event(VOICE_EVENT_IS_PLAYING, audio_voice_event);
|
||||
|
||||
/* Probably safe to say */
|
||||
audio_is_initialized = true;
|
||||
|
||||
|
|
|
@ -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 --- **/
|
||||
|
||||
/* Does the mp3entry have enough info for us to use it? */
|
||||
|
@ -3888,7 +3880,6 @@ void INIT_ATTR playback_init(void)
|
|||
track_list_init();
|
||||
buffering_init();
|
||||
pcmbuf_update_frequency();
|
||||
add_event(PLAYBACK_EVENT_VOICE_PLAYING, playback_voice_event);
|
||||
#ifdef HAVE_CROSSFADE
|
||||
/* Set crossfade setting for next buffer init which should be about... */
|
||||
pcmbuf_request_crossfade_enable(global_settings.crossfade);
|
||||
|
|
|
@ -372,7 +372,7 @@ static enum voice_state voice_message(struct voice_thread_data *td)
|
|||
{
|
||||
voice_playing = true;
|
||||
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;
|
||||
|
@ -406,7 +406,7 @@ static enum voice_state voice_message(struct voice_thread_data *td)
|
|||
if (quiet_counter <= 0)
|
||||
{
|
||||
voice_playing = false;
|
||||
send_event(PLAYBACK_EVENT_VOICE_PLAYING, &voice_playing);
|
||||
send_event(VOICE_EVENT_IS_PLAYING, &voice_playing);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
#define EVENT_CLASS_GUI 0x0800
|
||||
#define EVENT_CLASS_RECORDING 0x1000
|
||||
#define EVENT_CLASS_LCD 0x2000
|
||||
#define EVENT_CLASS_VOICE 0x4000
|
||||
|
||||
/**
|
||||
* Subscribe to an event with a simple callback. The callback will be called
|
||||
|
|
Loading…
Reference in a new issue