summaryrefslogtreecommitdiff
path: root/apps/plugin.h
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2012-12-02 01:09:44 -0500
committerMichael Sevakis <jethead71@rockbox.org>2012-12-05 02:03:58 +0100
commit0f8aedbe9492a5226fddd4ad27dae21b8a39e1b4 (patch)
treefa337438065d277926a254af74d3843b060b37eb /apps/plugin.h
parente1ea08417bca57c607df6686472fa0a86f38b6d1 (diff)
downloadrockbox-0f8aedbe9492a5226fddd4ad27dae21b8a39e1b4.tar.gz
rockbox-0f8aedbe9492a5226fddd4ad27dae21b8a39e1b4.zip
Add a true waveform display to the oscilloscope plugin.
* Adds some additional niftyness like a floating popup display that is implemented in an OSD library for use by other plugins. * Speed changes are now gradual for both views and follow a curve derived from some fiddling around to get a nice feel. * Refined a few behavioral things overall. It needs a bit of help from a direct PCM channel callback so it may capture PCM for waveform display. Also need a few other core routines to help out for the OSD. Messes with some keymaps. Some targets need keymaps to access the different views. Some devices can't support the additional view because it requires a large buffer ( > 1 s) for samples. If the plugin buffer is small, they can still use the popup display since the plugin is also much smaller in that case. Slow speed waveform needs some refining so it draws gradually like a real oscilloscope but I'll stick with what it is, for the moment. Change-Id: Ieb5b7922a2238264e9b19a58cb437739194eb036 Reviewed-on: http://gerrit.rockbox.org/245 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested-by: Michael Sevakis <jethead71@rockbox.org>
Diffstat (limited to 'apps/plugin.h')
-rw-r--r--apps/plugin.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/apps/plugin.h b/apps/plugin.h
index bb2778164b..b8ed7a9084 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -155,7 +155,7 @@ void* plugin_get_buffer(size_t *buffer_size);
155#define PLUGIN_MAGIC 0x526F634B /* RocK */ 155#define PLUGIN_MAGIC 0x526F634B /* RocK */
156 156
157/* increase this every time the api struct changes */ 157/* increase this every time the api struct changes */
158#define PLUGIN_API_VERSION 220 158#define PLUGIN_API_VERSION 221
159 159
160/* update this to latest version if a change to the api struct breaks 160/* update this to latest version if a change to the api struct breaks
161 backwards compatibility (and please take the opportunity to sort in any 161 backwards compatibility (and please take the opportunity to sort in any
@@ -960,6 +960,19 @@ struct plugin_api {
960 960
961 /* new stuff at the end, sort into place next time 961 /* new stuff at the end, sort into place next time
962 the API gets incompatible */ 962 the API gets incompatible */
963
964#ifdef HAVE_LCD_BITMAP
965#if CONFIG_CODEC == SWCODEC
966 void (*mixer_channel_set_buffer_hook)(enum pcm_mixer_channel channel,
967 chan_buffer_hook_fn_type fn);
968#endif
969 void (*lcd_set_viewport)(struct viewport* vp);
970 void (*viewport_set_fullscreen)(struct viewport *vp,
971 const enum screen_type screen);
972 void (*lcd_set_framebuffer)(fb_data *fb);
973 void (*lcd_bmp_part)(const struct bitmap *bm, int src_x, int src_y,
974 int x, int y, int width, int height);
975#endif
963}; 976};
964 977
965/* plugin header */ 978/* plugin header */