summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/plugin.h6
-rw-r--r--apps/plugins/oscilloscope.c4
-rw-r--r--apps/plugins/starfield.c6
-rw-r--r--apps/plugins/vu_meter.c13
-rw-r--r--apps/recorder/peakmeter.c7
5 files changed, 25 insertions, 11 deletions
diff --git a/apps/plugin.h b/apps/plugin.h
index 588a01262e..4091cecc16 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -154,12 +154,12 @@ void* plugin_get_buffer(size_t *buffer_size);
154#define PLUGIN_MAGIC 0x526F634B /* RocK */ 154#define PLUGIN_MAGIC 0x526F634B /* RocK */
155 155
156/* increase this every time the api struct changes */ 156/* increase this every time the api struct changes */
157#define PLUGIN_API_VERSION 219 157#define PLUGIN_API_VERSION 220
158 158
159/* update this to latest version if a change to the api struct breaks 159/* update this to latest version if a change to the api struct breaks
160 backwards compatibility (and please take the opportunity to sort in any 160 backwards compatibility (and please take the opportunity to sort in any
161 new function which are "waiting" at the end of the function table) */ 161 new function which are "waiting" at the end of the function table) */
162#define PLUGIN_MIN_API_VERSION 219 162#define PLUGIN_MIN_API_VERSION 220
163 163
164/* plugin return codes */ 164/* plugin return codes */
165/* internal returns start at 0x100 to make exit(1..255) work */ 165/* internal returns start at 0x100 to make exit(1..255) work */
@@ -697,7 +697,7 @@ struct plugin_api {
697 const void * (*mixer_channel_get_buffer)(enum pcm_mixer_channel channel, 697 const void * (*mixer_channel_get_buffer)(enum pcm_mixer_channel channel,
698 int *count); 698 int *count);
699 void (*mixer_channel_calculate_peaks)(enum pcm_mixer_channel channel, 699 void (*mixer_channel_calculate_peaks)(enum pcm_mixer_channel channel,
700 int *left, int *right); 700 struct pcm_peaks *peaks);
701 void (*mixer_channel_play_data)(enum pcm_mixer_channel channel, 701 void (*mixer_channel_play_data)(enum pcm_mixer_channel channel,
702 pcm_play_callback_type get_more, 702 pcm_play_callback_type get_more,
703 const void *start, size_t size); 703 const void *start, size_t size);
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index a4be0fbd8e..0bf951f069 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -881,8 +881,10 @@ enum plugin_status plugin_start(const void* parameter)
881 left = rb->mas_codec_readreg(0xC); 881 left = rb->mas_codec_readreg(0xC);
882 right = rb->mas_codec_readreg(0xD); 882 right = rb->mas_codec_readreg(0xD);
883#elif (CONFIG_CODEC == SWCODEC) 883#elif (CONFIG_CODEC == SWCODEC)
884 static struct pcm_peaks peaks;
884 rb->mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK, 885 rb->mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK,
885 &left, &right); 886 &peaks);
887 left = peaks.left; right = peaks.right;
886#endif 888#endif
887 if (osc.orientation == OSC_HORIZ) 889 if (osc.orientation == OSC_HORIZ)
888 anim_horizontal(left, right); 890 anim_horizontal(left, right);
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 811e9c61ae..30b01b2645 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -228,9 +228,11 @@ static int plugin_main(void)
228 228
229 /* Get the peaks. ( Borrowed from vu_meter ) */ 229 /* Get the peaks. ( Borrowed from vu_meter ) */
230#if (CONFIG_CODEC == SWCODEC) 230#if (CONFIG_CODEC == SWCODEC)
231 int left_peak, right_peak; 231 static struct pcm_peaks peaks;
232 rb->mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK, 232 rb->mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK,
233 &left_peak, &right_peak); 233 &peaks);
234 #define left_peak peaks.left
235 #define right_peak peaks.right
234#else 236#else
235 int left_peak = rb->mas_codec_readreg(0xC); 237 int left_peak = rb->mas_codec_readreg(0xC);
236 int right_peak = rb->mas_codec_readreg(0xD); 238 int right_peak = rb->mas_codec_readreg(0xD);
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index 51f2d19f40..ec884442d4 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -704,9 +704,11 @@ static void analog_meter(void) {
704 int left_peak = rb->mas_codec_readreg(0xC); 704 int left_peak = rb->mas_codec_readreg(0xC);
705 int right_peak = rb->mas_codec_readreg(0xD); 705 int right_peak = rb->mas_codec_readreg(0xD);
706#elif (CONFIG_CODEC == SWCODEC) 706#elif (CONFIG_CODEC == SWCODEC)
707 int left_peak, right_peak; 707 static struct pcm_peaks peaks;
708 rb->mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK, 708 rb->mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK,
709 &left_peak, &right_peak); 709 &peaks);
710 #define left_peak peaks.left
711 #define right_peak peaks.right
710#endif 712#endif
711 713
712 if(vumeter_settings.analog_use_db_scale) { 714 if(vumeter_settings.analog_use_db_scale) {
@@ -762,8 +764,11 @@ static void digital_meter(void) {
762 int left_peak = rb->mas_codec_readreg(0xC); 764 int left_peak = rb->mas_codec_readreg(0xC);
763 int right_peak = rb->mas_codec_readreg(0xD); 765 int right_peak = rb->mas_codec_readreg(0xD);
764#elif (CONFIG_CODEC == SWCODEC) 766#elif (CONFIG_CODEC == SWCODEC)
765 int left_peak, right_peak; 767 static struct pcm_peaks peaks;
766 rb->pcm_calculate_peaks(&left_peak, &right_peak); 768 rb->mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK,
769 &peaks);
770 #define left_peak peaks.left
771 #define right_peak peaks.right
767#endif 772#endif
768 773
769 if(vumeter_settings.digital_use_db_scale) { 774 if(vumeter_settings.digital_use_db_scale) {
diff --git a/apps/recorder/peakmeter.c b/apps/recorder/peakmeter.c
index 9f0db3330a..48a695b933 100644
--- a/apps/recorder/peakmeter.c
+++ b/apps/recorder/peakmeter.c
@@ -619,8 +619,13 @@ void peak_meter_peek(void)
619 /* read current values */ 619 /* read current values */
620#if CONFIG_CODEC == SWCODEC 620#if CONFIG_CODEC == SWCODEC
621 if (pm_playback) 621 if (pm_playback)
622 {
623 static struct pcm_peaks chan_peaks; /* *MUST* be static */
622 mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK, 624 mixer_channel_calculate_peaks(PCM_MIXER_CHAN_PLAYBACK,
623 &pm_cur_left, &pm_cur_right); 625 &chan_peaks);
626 pm_cur_left = chan_peaks.left;
627 pm_cur_right = chan_peaks.right;
628 }
624#ifdef HAVE_RECORDING 629#ifdef HAVE_RECORDING
625 else 630 else
626 pcm_calculate_rec_peaks(&pm_cur_left, &pm_cur_right); 631 pcm_calculate_rec_peaks(&pm_cur_left, &pm_cur_right);