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
|
/* 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 **/
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue