From ebdb89b519b8039b440a52b286f645266480e78a Mon Sep 17 00:00:00 2001 From: Peter D'Hoye Date: Wed, 7 May 2008 21:59:45 +0000 Subject: Rename the flahslight plugin to lamp and add it to the manual git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17406 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/CATEGORIES | 2 +- apps/plugins/SOURCES | 2 +- apps/plugins/flashlight.c | 214 --------------------------------------------- apps/plugins/lamp.c | 215 ++++++++++++++++++++++++++++++++++++++++++++++ manual/plugins/lamp.tex | 15 ++++ manual/plugins/main.tex | 2 + 6 files changed, 234 insertions(+), 216 deletions(-) delete mode 100644 apps/plugins/flashlight.c create mode 100644 apps/plugins/lamp.c create mode 100644 manual/plugins/lamp.tex diff --git a/apps/plugins/CATEGORIES b/apps/plugins/CATEGORIES index 65394a7..6992ca3 100644 --- a/apps/plugins/CATEGORIES +++ b/apps/plugins/CATEGORIES @@ -98,4 +98,4 @@ wavview,viewers wormlet,games xobox,games zxbox,viewers -flashlight,apps +lamp,apps diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES index b33b630..92884a9 100644 --- a/apps/plugins/SOURCES +++ b/apps/plugins/SOURCES @@ -20,7 +20,7 @@ stopwatch.c vbrfix.c viewer.c #ifdef HAVE_BACKLIGHT -flashlight.c +lamp.c #endif /* HAVE_BACKLIGHT */ #ifdef OLYMPUS_MROBE_500 diff --git a/apps/plugins/flashlight.c b/apps/plugins/flashlight.c deleted file mode 100644 index b732545..0000000 --- a/apps/plugins/flashlight.c +++ /dev/null @@ -1,214 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// __ \_/ ___\| |/ /| __ \ / __ \ \/ / - * Jukebox | | ( (__) ) \___| ( | \_\ ( (__) ) ( - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2007 Vuong Minh Hiep (vmh) - * Copyright (C) 2008 Thomas Martitz (kugel.) - * Copyright (C) 2008 Alexander Papst - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "plugin.h" -#include "helper.h" - -PLUGIN_HEADER - -#if defined(HAVE_BACKLIGHT) -/* variable button definitions - only targets with a colour display */ -#if defined(HAVE_LCD_COLOR) -#if (CONFIG_KEYPAD == IRIVER_H300_PAD) -# define FLASHLIGHT_LEFT BUTTON_LEFT -# define FLASHLIGHT_RIGHT BUTTON_RIGHT - -#elif (CONFIG_KEYPAD == IPOD_4G_PAD) -# define FLASHLIGHT_LEFT BUTTON_LEFT -# define FLASHLIGHT_RIGHT BUTTON_RIGHT -# define FLASHLIGHT_NEXT BUTTON_SCROLL_FWD -# define FLASHLIGHT_PREV BUTTON_SCROLL_BACK - -#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) -# define FLASHLIGHT_LEFT BUTTON_LEFT -# define FLASHLIGHT_RIGHT BUTTON_RIGHT - -#elif (CONFIG_KEYPAD == GIGABEAT_PAD) -# define FLASHLIGHT_LEFT BUTTON_LEFT -# define FLASHLIGHT_RIGHT BUTTON_RIGHT - -#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) -# define FLASHLIGHT_LEFT BUTTON_LEFT -# define FLASHLIGHT_RIGHT BUTTON_RIGHT - -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) -# define FLASHLIGHT_LEFT BUTTON_LEFT -# define FLASHLIGHT_RIGHT BUTTON_RIGHT -# define FLASHLIGHT_NEXT BUTTON_SCROLL_FWD -# define FLASHLIGHT_PREV BUTTON_SCROLL_BACK - -#elif (CONFIG_KEYPAD == SANSA_C200_PAD) -# define FLASHLIGHT_LEFT BUTTON_LEFT -# define FLASHLIGHT_RIGHT BUTTON_RIGHT - -#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) -# define FLASHLIGHT_LEFT BUTTON_LEFT -# define FLASHLIGHT_RIGHT BUTTON_RIGHT -# define FLASHLIGHT_NEXT BUTTON_SCROLL_UP -# define FLASHLIGHT_PREV BUTTON_SCROLL_DOWN - -#elif CONFIG_KEYPAD == MROBE500_PAD -# define FLASHLIGHT_LEFT BUTTON_LEFT -# define FLASHLIGHT_RIGHT BUTTON_RIGHT - -#elif CONFIG_KEYPAD == COWOND2_PAD - -#else -# error Missing key definitions for this keypad -#endif -#endif - -#ifdef HAVE_TOUCHPAD -# ifndef FLASHLIGHT_LEFT -# define FLASHLIGHT_LEFT BUTTON_MIDLEFT -# endif -# ifndef FLASHLIGHT_RIGHT -# define FLASHLIGHT_RIGHT BUTTON_MIDRIGHT -# endif -# ifndef FLASHLIGHT_NEXT -# define FLASHLIGHT_NEXT BUTTON_TOPMIDDLE -# endif -# ifndef FLASHLIGHT_PREV -# define FLASHLIGHT_PREV BUTTON_BOTTOMMIDDLE -# endif -#endif - -static struct plugin_api* rb; /* global api struct pointer */ - -#ifdef HAVE_LCD_COLOR -/* RGB color sets */ -#define NUM_COLORSETS 2 -static int colorset[NUM_COLORSETS][3] = { { 255, 255, 255 } , /* white */ - { 255, 0, 0 } }; /* red */ -#endif /* HAVE_LCD_COLOR */ - -/* this is the plugin entry point */ -enum plugin_status plugin_start(struct plugin_api* api, void* parameter) -{ - (void)parameter; - rb = api; - -#ifdef HAVE_LCD_COLOR - int cs = 0; - bool quit = false; -#endif /* HAVE_LCD_COLOR */ - -#ifdef HAVE_BACKLIGHT_BRIGHTNESS - short old_brightness = rb->global_settings->brightness; -#endif /* HAVE_BACKLIGHT_BRIGHTNESS */ - -#if LCD_DEPTH > 1 - unsigned bg_color=rb->lcd_get_background(); - rb->lcd_set_backdrop(NULL); - rb->lcd_set_background(LCD_WHITE); -#endif - -#ifdef HAVE_BACKLIGHT_BRIGHTNESS - rb->backlight_set_brightness(MAX_BRIGHTNESS_SETTING); -#endif /* HAVE_BACKLIGHT_BRIGHTNESS */ - -#ifdef HAVE_LCD_INVERT -#ifdef OLYMPUS_MROBE_100 - /* mrobe-100 has inverted display so invert it for max brightness */ - rb->lcd_set_invert_display(true); -#else - rb->lcd_set_invert_display(false); -#endif /* OLYMPUS_MROBE_100 */ -#endif /* HAVE_LCD_INVERT */ - - backlight_force_on(rb); - -#ifdef HAVE_LCD_COLOR - do - { - if(cs < 0) - cs = NUM_COLORSETS-1; - if(cs >= NUM_COLORSETS) - cs = 0; - rb->lcd_set_background( LCD_RGBPACK( colorset[cs][0], - colorset[cs][1], - colorset[cs][2] ) ); - rb->lcd_clear_display(); - rb->lcd_update(); - - switch(rb->button_get(true)) - { - case FLASHLIGHT_RIGHT: -#ifdef FLASHLIGHT_NEXT - case FLASHLIGHT_NEXT: -#endif /* FLASHLIGHT_NEXT */ - cs++; - break; - - case FLASHLIGHT_LEFT: -#ifdef FLASHLIGHT_PREV - case FLASHLIGHT_PREV: -#endif /* FLASHLIGHT_PREV */ - cs--; - break; - - case (FLASHLIGHT_RIGHT|BUTTON_REPEAT): - case (FLASHLIGHT_RIGHT|BUTTON_REL): - case (FLASHLIGHT_LEFT|BUTTON_REPEAT): - case (FLASHLIGHT_LEFT|BUTTON_REL): -#ifdef FLASHLIGHT_NEXT - case (FLASHLIGHT_NEXT|BUTTON_REPEAT): - case (FLASHLIGHT_NEXT|BUTTON_REL): -#endif /* FLASHLIGHT_NEXT */ -#ifdef FLASHLIGHT_PREV - case (FLASHLIGHT_PREV|BUTTON_REPEAT): - case (FLASHLIGHT_PREV|BUTTON_REL): -#endif /* FLASHLIGHT_PREV */ - /* eat these... */ - break; - default: - quit = true; - } - } while (!quit); - -#else /* HAVE_LCD_COLOR */ - rb->lcd_clear_display(); - rb->lcd_update(); - /* wait */ - while(rb->button_get(false) == BUTTON_NONE) - { - rb->yield(); - } - -#endif /*HAVE_LCD_COLOR */ - - /* restore */ - backlight_use_settings(rb); - -#ifdef HAVE_LCD_INVERT - rb->lcd_set_invert_display(rb->global_settings->invert); -#endif /* HAVE_LCD_INVERT */ - -#ifdef HAVE_BACKLIGHT_BRIGHTNESS - rb->backlight_set_brightness(old_brightness); -#endif /* HAVE_BACKLIGHT_BRIGHTNESS */ - -#if LCD_DEPTH > 1 - rb->lcd_set_background(bg_color); -#endif - return PLUGIN_OK; -} -#endif diff --git a/apps/plugins/lamp.c b/apps/plugins/lamp.c new file mode 100644 index 0000000..c755219 --- /dev/null +++ b/apps/plugins/lamp.c @@ -0,0 +1,215 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// __ \_/ ___\| |/ /| __ \ / __ \ \/ / + * Jukebox | | ( (__) ) \___| ( | \_\ ( (__) ) ( + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2007 Vuong Minh Hiep (vmh) + * Copyright (C) 2008 Thomas Martitz (kugel.) + * Copyright (C) 2008 Alexander Papst + * Copyright (C) 2008 Peter D'Hoye + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include "plugin.h" +#include "helper.h" + +PLUGIN_HEADER + +#if defined(HAVE_BACKLIGHT) +/* variable button definitions - only targets with a colour display */ +#if defined(HAVE_LCD_COLOR) +#if (CONFIG_KEYPAD == IRIVER_H300_PAD) +# define LAMP_LEFT BUTTON_LEFT +# define LAMP_RIGHT BUTTON_RIGHT + +#elif (CONFIG_KEYPAD == IPOD_4G_PAD) +# define LAMP_LEFT BUTTON_LEFT +# define LAMP_RIGHT BUTTON_RIGHT +# define LAMP_NEXT BUTTON_SCROLL_FWD +# define LAMP_PREV BUTTON_SCROLL_BACK + +#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) +# define LAMP_LEFT BUTTON_LEFT +# define LAMP_RIGHT BUTTON_RIGHT + +#elif (CONFIG_KEYPAD == GIGABEAT_PAD) +# define LAMP_LEFT BUTTON_LEFT +# define LAMP_RIGHT BUTTON_RIGHT + +#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) +# define LAMP_LEFT BUTTON_LEFT +# define LAMP_RIGHT BUTTON_RIGHT + +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +# define LAMP_LEFT BUTTON_LEFT +# define LAMP_RIGHT BUTTON_RIGHT +# define LAMP_NEXT BUTTON_SCROLL_FWD +# define LAMP_PREV BUTTON_SCROLL_BACK + +#elif (CONFIG_KEYPAD == SANSA_C200_PAD) +# define LAMP_LEFT BUTTON_LEFT +# define LAMP_RIGHT BUTTON_RIGHT + +#elif (CONFIG_KEYPAD == IRIVER_H10_PAD) +# define LAMP_LEFT BUTTON_LEFT +# define LAMP_RIGHT BUTTON_RIGHT +# define LAMP_NEXT BUTTON_SCROLL_UP +# define LAMP_PREV BUTTON_SCROLL_DOWN + +#elif CONFIG_KEYPAD == MROBE500_PAD +# define LAMP_LEFT BUTTON_LEFT +# define LAMP_RIGHT BUTTON_RIGHT + +#elif CONFIG_KEYPAD == COWOND2_PAD + +#else +# error Missing key definitions for this keypad +#endif +#endif + +#ifdef HAVE_TOUCHPAD +# ifndef LAMP_LEFT +# define LAMP_LEFT BUTTON_MIDLEFT +# endif +# ifndef LAMP_RIGHT +# define LAMP_RIGHT BUTTON_MIDRIGHT +# endif +# ifndef LAMP_NEXT +# define LAMP_NEXT BUTTON_TOPMIDDLE +# endif +# ifndef LAMP_PREV +# define LAMP_PREV BUTTON_BOTTOMMIDDLE +# endif +#endif + +static struct plugin_api* rb; /* global api struct pointer */ + +#ifdef HAVE_LCD_COLOR +/* RGB color sets */ +#define NUM_COLORSETS 2 +static int colorset[NUM_COLORSETS][3] = { { 255, 255, 255 } , /* white */ + { 255, 0, 0 } }; /* red */ +#endif /* HAVE_LCD_COLOR */ + +/* this is the plugin entry point */ +enum plugin_status plugin_start(struct plugin_api* api, void* parameter) +{ + (void)parameter; + rb = api; + +#ifdef HAVE_LCD_COLOR + int cs = 0; + bool quit = false; +#endif /* HAVE_LCD_COLOR */ + +#ifdef HAVE_BACKLIGHT_BRIGHTNESS + short old_brightness = rb->global_settings->brightness; +#endif /* HAVE_BACKLIGHT_BRIGHTNESS */ + +#if LCD_DEPTH > 1 + unsigned bg_color=rb->lcd_get_background(); + rb->lcd_set_backdrop(NULL); + rb->lcd_set_background(LCD_WHITE); +#endif + +#ifdef HAVE_BACKLIGHT_BRIGHTNESS + rb->backlight_set_brightness(MAX_BRIGHTNESS_SETTING); +#endif /* HAVE_BACKLIGHT_BRIGHTNESS */ + +#ifdef HAVE_LCD_INVERT +#ifdef OLYMPUS_MROBE_100 + /* mrobe-100 has inverted display so invert it for max brightness */ + rb->lcd_set_invert_display(true); +#else + rb->lcd_set_invert_display(false); +#endif /* OLYMPUS_MROBE_100 */ +#endif /* HAVE_LCD_INVERT */ + + backlight_force_on(rb); + +#ifdef HAVE_LCD_COLOR + do + { + if(cs < 0) + cs = NUM_COLORSETS-1; + if(cs >= NUM_COLORSETS) + cs = 0; + rb->lcd_set_background( LCD_RGBPACK( colorset[cs][0], + colorset[cs][1], + colorset[cs][2] ) ); + rb->lcd_clear_display(); + rb->lcd_update(); + + switch(rb->button_get(true)) + { + case LAMP_RIGHT: +#ifdef LAMP_NEXT + case LAMP_NEXT: +#endif /* LAMP_NEXT */ + cs++; + break; + + case LAMP_LEFT: +#ifdef LAMP_PREV + case LAMP_PREV: +#endif /* LAMP_PREV */ + cs--; + break; + + case (LAMP_RIGHT|BUTTON_REPEAT): + case (LAMP_RIGHT|BUTTON_REL): + case (LAMP_LEFT|BUTTON_REPEAT): + case (LAMP_LEFT|BUTTON_REL): +#ifdef LAMP_NEXT + case (LAMP_NEXT|BUTTON_REPEAT): + case (LAMP_NEXT|BUTTON_REL): +#endif /* LAMP_NEXT */ +#ifdef LAMP_PREV + case (LAMP_PREV|BUTTON_REPEAT): + case (LAMP_PREV|BUTTON_REL): +#endif /* LAMP_PREV */ + /* eat these... */ + break; + default: + quit = true; + } + } while (!quit); + +#else /* HAVE_LCD_COLOR */ + rb->lcd_clear_display(); + rb->lcd_update(); + /* wait */ + while(rb->button_get(false) == BUTTON_NONE) + { + rb->yield(); + } + +#endif /*HAVE_LCD_COLOR */ + + /* restore */ + backlight_use_settings(rb); + +#ifdef HAVE_LCD_INVERT + rb->lcd_set_invert_display(rb->global_settings->invert); +#endif /* HAVE_LCD_INVERT */ + +#ifdef HAVE_BACKLIGHT_BRIGHTNESS + rb->backlight_set_brightness(old_brightness); +#endif /* HAVE_BACKLIGHT_BRIGHTNESS */ + +#if LCD_DEPTH > 1 + rb->lcd_set_background(bg_color); +#endif + return PLUGIN_OK; +} +#endif diff --git a/manual/plugins/lamp.tex b/manual/plugins/lamp.tex new file mode 100644 index 0000000..c059587 --- /dev/null +++ b/manual/plugins/lamp.tex @@ -0,0 +1,15 @@ +% $Id$ % +\subsection{Lamp} +Lamp is a simple plugin to use your player as a lamp (flashlight, torch). +You get an empty screen with maximum brightness. +\begin{table} + \begin{btnmap}{}{} + \ButtonLeft/\ButtonRight + & Toggle between colors\\ + \opt{PLAYER_PAD}{\ButtonMenu} + \opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff} + \opt{IPOD_4G_PAD,IPOD_3G_PAD}{Long press on \ButtonPlay} + \opt{IAUDIO_x5_PAD,SANSA_E200_PAD,GIGABEAT_PAD,MROBE100_PAD}{\ButtonPower} + & Quit\\ + \end{btnmap} +\end{table} diff --git a/manual/plugins/main.tex b/manual/plugins/main.tex index 1e049f8..5ea5648 100644 --- a/manual/plugins/main.tex +++ b/manual/plugins/main.tex @@ -151,6 +151,8 @@ the associated file. Viewers are stored in the \opt{recorder,recorderv2fm,ondio}{\input{plugins/firmware_flash.tex}} +\opt{HAVE_BACKLIGHT}{\input{plugins/lamp.tex}} + {\input{plugins/metronome.tex}} \opt{recorder,recorderv2fm,ondio}{\input{plugins/split_editor.tex}} -- cgit v1.1