From 60895bc107f5689f19de61828d8ffe0f2f1f59b5 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Fri, 2 Sep 2005 05:39:09 +0000 Subject: Patch #1272052 by Henrik Backe - Move credits to a plugin git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7450 a1c6a512-1295-4272-9138-f99709370657 --- apps/Makefile | 11 +--- apps/SOURCES | 1 - apps/credits.c | 132 ----------------------------------------- apps/credits.h | 28 --------- apps/credits.pl | 13 ---- apps/main.c | 1 - apps/main_menu.c | 71 +--------------------- apps/main_menu.h | 1 - apps/misc.c | 53 +++++++++++++++++ apps/misc.h | 1 + apps/plugin.c | 3 +- apps/plugin.h | 7 ++- apps/plugins/Makefile | 11 +++- apps/plugins/SOURCES | 1 + apps/plugins/clock.c | 12 ++-- apps/plugins/credits.c | 154 ++++++++++++++++++++++++++++++++++++++++++++++++ apps/plugins/credits.pl | 13 ++++ 17 files changed, 249 insertions(+), 264 deletions(-) delete mode 100644 apps/credits.c delete mode 100644 apps/credits.h delete mode 100644 apps/credits.pl create mode 100644 apps/plugins/credits.c create mode 100644 apps/plugins/credits.pl diff --git a/apps/Makefile b/apps/Makefile index 5cf1ebd8a2..04e0e87728 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -152,15 +152,6 @@ $(BUILDDIR)/rombox.ucl: $(OBJDIR)/rombox.bin $(MAXOUTFILE) echo "fake" > $@; \ fi -$(OBJDIR)/credits.raw: $(DOCSDIR)/CREDITS - @echo "create credits.raw" - @perl credits.pl < $< > $@ - -$(OBJDIR)/credits.o: credits.c credits.h $(OBJDIR)/credits.raw - @mkdir -p `dirname $@` - @echo "CC $<" - @$(CC) $(CFLAGS) -c $< -o $@ - include $(TOOLSDIR)/make.inc $(OBJDIR)/build.lang: lang/$(LANGUAGE).lang $(TOOLSDIR)/uplang @@ -180,7 +171,7 @@ clean: @-rm -f $(OBJS) $(BUILDDIR)/$(BINARY) $(OBJDIR)/rockbox.asm \ $(OBJDIR)/rockbox.bin $(OBJDIR)/rockbox.elf $(OBJDIR)/*.map \ $(OBJDIR)/lang.o $(OBJDIR)/build.lang $(BUILDDIR)/lang.[ch] \ - $(OBJDIR)/credits.raw $(LINKFILE) $(BUILDDIR)/rockbox.ucl $(LINKROM) \ + $(LINKFILE) $(BUILDDIR)/rockbox.ucl $(LINKROM) \ $(BUILDDIR)/rombox.ucl $(OBJDIR)/rombox.bin $(OBJDIR)/rombox.elf \ $(MAXOUTFILE) $(DEPFILE) @$(MAKE) -C plugins clean OBJDIR=$(OBJDIR)/plugins diff --git a/apps/SOURCES b/apps/SOURCES index 063abe34d7..26af159d5a 100644 --- a/apps/SOURCES +++ b/apps/SOURCES @@ -4,7 +4,6 @@ logfdisp.c alarm_menu.c abrepeat.c bookmark.c -credits.c debug_menu.c filetypes.c language.c diff --git a/apps/credits.c b/apps/credits.c deleted file mode 100644 index 9acc90da19..0000000000 --- a/apps/credits.c +++ /dev/null @@ -1,132 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2002 by Robert Hak - * - * 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 "credits.h" -#include "lcd.h" -#include "font.h" -#include "kernel.h" -#include "button.h" -#include "sprintf.h" -#include "string.h" - -const char* const credits[] = { -#include "credits.raw" /* generated list of names from docs/CREDITS */ -}; - -#ifdef HAVE_LCD_CHARCELLS -#define MAX(x, y) ((x) > (y) ? (x) : (y)) -void roll_credits(void) -{ - int numnames = sizeof(credits)/sizeof(char*); - int curr_name = 0; - int curr_len = strlen(credits[0]); - int curr_index = 0; - int curr_line = 0; - int name, len, new_len, line, x; - - while (1) - { - lcd_clear_display(); - - name = curr_name; - x = -curr_index; - len = curr_len; - line = curr_line; - - while (x < 11) - { - int x2; - - if (x < 0) - lcd_puts(0, line, credits[name] - x); - else - lcd_puts(x, line, credits[name]); - - if (++name >= numnames) - break; - line ^= 1; - - x2 = x + len/2; - if ((unsigned)x2 < 11) - lcd_putc(x2, line, '*'); - - new_len = strlen(credits[name]); - x += MAX(len/2 + 2, len - new_len/2 + 1); - len = new_len; - } - /* abort on keypress */ - if (button_get_w_tmo(HZ/8) & BUTTON_REL) - return; - - if (++curr_index >= curr_len) - { - if (++curr_name >= numnames) - break; - new_len = strlen(credits[curr_name]); - curr_index -= MAX(curr_len/2 + 2, curr_len - new_len/2 + 1); - curr_len = new_len; - curr_line ^= 1; - } - } -} -#else - -void roll_credits(void) -{ - int i; - int line = 0; - int numnames = sizeof(credits)/sizeof(char*); - char buffer[40]; - - int y=LCD_HEIGHT; - - int height; - int width; - - lcd_setfont(FONT_UI); - - lcd_getstringsize("A", &width, &height); - - while(1) { - lcd_clear_display(); - for ( i=0; i <= (LCD_HEIGHT-y)/height; i++ ) - lcd_putsxy(0, i*height+y, line+i= numnames) - break; - y+=height; - } - - } -} -#endif diff --git a/apps/credits.h b/apps/credits.h deleted file mode 100644 index dd4b459326..0000000000 --- a/apps/credits.h +++ /dev/null @@ -1,28 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2002 by Robert Hak - * - * 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. - * - ****************************************************************************/ - -#ifndef __ROCKBOX_CREDITS_H__ -#define __ROCKBOX_CREDITS_H__ - -/* Show who worked on the project */ -void roll_credits(void); - -#endif - - diff --git a/apps/credits.pl b/apps/credits.pl deleted file mode 100644 index 942a96b99f..0000000000 --- a/apps/credits.pl +++ /dev/null @@ -1,13 +0,0 @@ -# __________ __ ___. -# Open \______ \ ____ ____ | | _\_ |__ _______ ___ -# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -# \/ \/ \/ \/ \/ -# $Id$ -# -while () { - if(($_ =~ /^([A-Z]+[\S ]+)/) && ($_ !~ /^People/)) { - print "\"$1\",\n"; - } -} diff --git a/apps/main.c b/apps/main.c index 6373920c74..c272dba57e 100644 --- a/apps/main.c +++ b/apps/main.c @@ -40,7 +40,6 @@ #endif #include "audio.h" #include "mp3_playback.h" -#include "main_menu.h" #include "thread.h" #include "settings.h" #include "backlight.h" diff --git a/apps/main_menu.c b/apps/main_menu.c index b887ed6504..deaeb9b2ec 100644 --- a/apps/main_menu.c +++ b/apps/main_menu.c @@ -22,13 +22,11 @@ #include "menu.h" #include "tree.h" -#include "credits.h" #include "lcd.h" #include "font.h" #include "button.h" #include "kernel.h" #include "main_menu.h" -#include "version.h" #include "debug_menu.h" #include "sprintf.h" #include @@ -50,83 +48,20 @@ #include "misc.h" #include "lang.h" #include "logfdisp.h" +#include "plugin.h" +#include "filetypes.h" #ifdef HAVE_RECORDING #include "recording.h" #endif -#ifdef HAVE_LCD_BITMAP -#include "bmp.h" -#include "icons.h" -#endif /* End HAVE_LCD_BITMAP */ - #ifdef HAVE_REMOTE_LCD #include "lcd-remote.h" #endif -int show_logo( void ) -{ -#ifdef HAVE_LCD_BITMAP - char version[32]; - int font_h, font_w; - - lcd_clear_display(); -#if LCD_WIDTH == 112 || LCD_WIDTH == 128 - lcd_bitmap(rockbox112x37, 0, 10, 112, 37); -#endif -#if LCD_WIDTH >= 160 - lcd_bitmap(rockbox160x53x2, 0, 10, 160, 53); -#endif - -#ifdef HAVE_REMOTE_LCD - lcd_remote_clear_display(); - lcd_remote_bitmap(rockbox112x37,10,14,112,37); -#endif - - snprintf(version, sizeof(version), "Ver. %s", appsversion); - lcd_setfont(FONT_SYSFIXED); - lcd_getstringsize("A", &font_w, &font_h); - lcd_putsxy((LCD_WIDTH/2) - ((strlen(version)*font_w)/2), - LCD_HEIGHT-font_h, version); - lcd_update(); - -#ifdef HAVE_REMOTE_LCD - lcd_remote_setfont(FONT_SYSFIXED); - lcd_remote_getstringsize("A", &font_w, &font_h); - lcd_remote_putsxy((LCD_REMOTE_WIDTH/2) - ((strlen(version)*font_w)/2), - LCD_REMOTE_HEIGHT-font_h, version); - lcd_remote_update(); -#endif - -#else - char *rockbox = " ROCKbox!"; - lcd_clear_display(); - lcd_double_height(true); - lcd_puts(0, 0, rockbox); - lcd_puts(0, 1, appsversion); -#endif - - return 0; -} - bool show_credits(void) { - int j = 0; - int btn; - - show_logo(); -#ifdef HAVE_LCD_CHARCELLS - lcd_double_height(false); -#endif - - for (j = 0; j < 10; j++) { - sleep((HZ*2)/10); - - btn = button_get(false); - if (btn != BUTTON_NONE && !(btn & BUTTON_REL)) - return false; - } - roll_credits(); + plugin_load("/.rockbox/rocks/credits.rock",NULL); return false; } diff --git a/apps/main_menu.h b/apps/main_menu.h index f05cc52adc..d1c36b3663 100644 --- a/apps/main_menu.h +++ b/apps/main_menu.h @@ -21,7 +21,6 @@ #include "menu.h" -extern int show_logo(void); extern bool main_menu(void); extern bool rec_menu(void); diff --git a/apps/misc.c b/apps/misc.c index 6751da9d69..ddf8d06e7b 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -24,6 +24,7 @@ #include "file.h" #include "dir.h" #include "lcd.h" +#include "lcd-remote.h" #include "sprintf.h" #include "errno.h" #include "system.h" @@ -40,10 +41,17 @@ #include "powermgmt.h" #include "backlight.h" #include "atoi.h" +#include "version.h" +#include "font.h" #ifdef HAVE_MMC #include "ata_mmc.h" #endif +#ifdef HAVE_LCD_BITMAP +#include "bmp.h" +#include "icons.h" +#endif /* End HAVE_LCD_BITMAP */ + /* Format a large-range value for output, using the appropriate unit so that * the displayed value is in the range 1 <= display < 1000 (1024 for "binary" * units) if possible, and 3 significant digits are shown. If a buffer is @@ -482,3 +490,48 @@ long default_event_handler(long event) { return default_event_handler_ex(event, NULL, NULL); } + +int show_logo( void ) +{ +#ifdef HAVE_LCD_BITMAP + char version[32]; + int font_h, font_w; + + lcd_clear_display(); +#if LCD_WIDTH == 112 || LCD_WIDTH == 128 + lcd_bitmap(rockbox112x37, 0, 10, 112, 37); +#endif +#if LCD_WIDTH >= 160 + lcd_bitmap(rockbox160x53x2, 0, 10, 160, 53); +#endif + +#ifdef HAVE_REMOTE_LCD + lcd_remote_clear_display(); + lcd_remote_bitmap(rockbox112x37,10,14,112,37); +#endif + + snprintf(version, sizeof(version), "Ver. %s", appsversion); + lcd_setfont(FONT_SYSFIXED); + lcd_getstringsize("A", &font_w, &font_h); + lcd_putsxy((LCD_WIDTH/2) - ((strlen(version)*font_w)/2), + LCD_HEIGHT-font_h, version); + lcd_update(); + +#ifdef HAVE_REMOTE_LCD + lcd_remote_setfont(FONT_SYSFIXED); + lcd_remote_getstringsize("A", &font_w, &font_h); + lcd_remote_putsxy((LCD_REMOTE_WIDTH/2) - ((strlen(version)*font_w)/2), + LCD_REMOTE_HEIGHT-font_h, version); + lcd_remote_update(); +#endif + +#else + char *rockbox = " ROCKbox!"; + lcd_clear_display(); + lcd_double_height(true); + lcd_puts(0, 0, rockbox); + lcd_puts(0, 1, appsversion); +#endif + + return 0; +} diff --git a/apps/misc.h b/apps/misc.h index 5e7450a7b2..d637501c27 100644 --- a/apps/misc.h +++ b/apps/misc.h @@ -52,5 +52,6 @@ bool settings_parseline(char* line, char** name, char** value); long default_event_handler_ex(long event, void (*callback)(void *), void *parameter); long default_event_handler(long event); void car_adapter_mode_init(void); +extern int show_logo(void); #endif diff --git a/apps/plugin.c b/apps/plugin.c index c02a8e2936..7d3b13c726 100644 --- a/apps/plugin.c +++ b/apps/plugin.c @@ -98,6 +98,7 @@ static const struct plugin_api rockbox_api = { lcd_put_cursor, lcd_remove_cursor, PREFIX(lcd_icon), + lcd_double_height, #else #ifndef SIMULATOR lcd_roll, @@ -336,10 +337,10 @@ static const struct plugin_api rockbox_api = { #ifdef HAVE_LCD_BITMAP read_bmp_file, #endif + show_logo, /* new stuff at the end, sort into place next time the API gets incompatible */ - }; int plugin_load(const char* plugin, void* parameter) diff --git a/apps/plugin.h b/apps/plugin.h index 2aa3e09475..01ace98690 100644 --- a/apps/plugin.h +++ b/apps/plugin.h @@ -44,6 +44,7 @@ #include "mpeg.h" #include "audio.h" #include "mp3_playback.h" +#include "misc.h" #if (HWCODEC == SWCODEC) #include "pcm_playback.h" #endif @@ -88,12 +89,12 @@ #endif /* increase this every time the api struct changes */ -#define PLUGIN_API_VERSION 49 +#define PLUGIN_API_VERSION 50 /* update this to latest version if a change to the api struct breaks backwards compatibility (and please take the opportunity to sort in any new function which are "waiting" at the end of the function table) */ -#define PLUGIN_MIN_API_VERSION 49 +#define PLUGIN_MIN_API_VERSION 50 /* plugin return codes */ enum plugin_status { @@ -151,6 +152,7 @@ struct plugin_api { void (*lcd_put_cursor)(int x, int y, char cursor_char); void (*lcd_remove_cursor)(void); void (*PREFIX(lcd_icon))(int icon, bool enable); + void (*lcd_double_height)(bool on); #else #ifndef SIMULATOR void (*lcd_roll)(int pixels); @@ -420,6 +422,7 @@ struct plugin_api { int (*read_bmp_file)(char* filename, int *get_width, int *get_height, char *bitmap, int maxsize); #endif + int (*show_logo)(void); /* new stuff at the end, sort into place next time the API gets incompatible */ diff --git a/apps/plugins/Makefile b/apps/plugins/Makefile index 1f1c309bd2..96e57d3c76 100644 --- a/apps/plugins/Makefile +++ b/apps/plugins/Makefile @@ -50,6 +50,15 @@ endif .PHONY: $(SUBDIRS) all: $(BUILDDIR)/libplugin.a $(ROCKS) $(SUBDIRS) $(DEPFILE) +$(BUILDDIR)/credits.raw: $(DOCSDIR)/CREDITS + @echo "create credits.raw" + @perl credits.pl < $< > $@ + +$(OBJDIR)/credits.o: credits.c $(BUILDDIR)/credits.raw + @mkdir -p `dirname $@` + @echo "CC $<" + @$(CC) $(CFLAGS) -c $< -o $@ + ifndef SIMVER $(OBJDIR)/%.elf: $(OBJDIR)/%.o $(LINKFILE) $(BUILDDIR)/libplugin.a $(SILENT)(file=`basename $@`; \ @@ -117,7 +126,7 @@ $(SUBDIRS): clean: @echo "cleaning plugins" @rm -f $(ROCKS) $(LINKFILE) $(OBJDIR)/*.rock $(DEPFILE) $(ELFS) \ - $(OBJS) $(DEFS) + $(BUILDDIR)/credits.raw $(OBJS) $(DEFS) @$(MAKE) -C lib clean OBJDIR=$(OBJDIR)/lib @$(MAKE) -C rockboy clean OBJDIR=$(OBJDIR)/rockboy @$(MAKE) -C searchengine clean OBJDIR=$(OBJDIR)/searchengine diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES index cf62ee7203..254324164a 100644 --- a/apps/plugins/SOURCES +++ b/apps/plugins/SOURCES @@ -1,6 +1,7 @@ /* plugins common to all models */ battery_test.c chessclock.c +credits.c cube.c favorites.c firmware_flash.c diff --git a/apps/plugins/clock.c b/apps/plugins/clock.c index 6830c74d53..6b06b1a74e 100644 --- a/apps/plugins/clock.c +++ b/apps/plugins/clock.c @@ -91,7 +91,7 @@ Original release, featuring analog / digital modes and a few options. /************ * Prototypes ***********/ -void show_logo(bool animate, bool show_clock_text); +void show_clock_logo(bool animate, bool show_clock_text); void exit_logo(void); void save_settings(bool interface); @@ -461,7 +461,7 @@ void save_settings(bool interface) rb->snprintf(buf, sizeof(buf), "Saving Settings"); rb->lcd_getstringsize(buf, &buf_w, &buf_h); rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 56, buf); - show_logo(true, true); + show_clock_logo(true, true); rb->lcd_update(); } @@ -523,7 +523,7 @@ void load_settings(void) rb->snprintf(buf, sizeof(buf), "Loading Settings"); rb->lcd_getstringsize(buf, &buf_w, &buf_h); rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 56, buf); - show_logo(true, true); + show_clock_logo(true, true); rb->lcd_update(); if(fd >= 0) /* does file exist? */ @@ -1020,7 +1020,7 @@ void binary(int hour, int minute, int second) /**************** * Shows the logo ***************/ -void show_logo(bool animate, bool show_clock_text) +void show_clock_logo(bool animate, bool show_clock_text) { int y_position; @@ -1151,7 +1151,7 @@ bool roll_credits(void) { rb->lcd_clear_display(); - show_logo(false, false); + show_clock_logo(false, false); rb->snprintf(elapsednames, sizeof(elapsednames), "[Credits] %02d/%02d", j+1, numnames); rb->lcd_putsxy(credits_pos-1, 0, elapsednames); @@ -1299,7 +1299,7 @@ bool show_credits(void) rb->lcd_putsxy(LCD_WIDTH/2-buf_w/2, 56, buf); /* show the logo with an animation and the clock version text */ - show_logo(true, true); + show_clock_logo(true, true); rb->lcd_update(); diff --git a/apps/plugins/credits.c b/apps/plugins/credits.c new file mode 100644 index 0000000000..f172cc6c18 --- /dev/null +++ b/apps/plugins/credits.c @@ -0,0 +1,154 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2002 by Robert Hak + * + * 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" + +void roll_credits(void); +const char* const credits[] = { +#include "credits.raw" /* generated list of names from docs/CREDITS */ +}; + +static struct plugin_api* rb; + +enum plugin_status plugin_start(struct plugin_api* api, void* parameter) +{ + int j = 0; + int btn; + + TEST_PLUGIN_API(api); + (void)parameter; + rb = api; + + rb->show_logo(); +#ifdef HAVE_LCD_CHARCELLS + rb->lcd_double_height(false); +#endif + + for (j = 0; j < 10; j++) { + rb->sleep((HZ*2)/10); + + btn = rb->button_get(false); + if (btn != BUTTON_NONE && !(btn & BUTTON_REL)) + return PLUGIN_OK; + } + + roll_credits(); + + return PLUGIN_OK; +} + +#ifdef HAVE_LCD_CHARCELLS +void roll_credits(void) +{ + int numnames = sizeof(credits)/sizeof(char*); + int curr_name = 0; + int curr_len = rb->strlen(credits[0]); + int curr_index = 0; + int curr_line = 0; + int name, len, new_len, line, x; + + while (1) + { + rb->lcd_clear_display(); + + name = curr_name; + x = -curr_index; + len = curr_len; + line = curr_line; + + while (x < 11) + { + int x2; + + if (x < 0) + rb->lcd_puts(0, line, credits[name] - x); + else + rb->lcd_puts(x, line, credits[name]); + + if (++name >= numnames) + break; + line ^= 1; + + x2 = x + len/2; + if ((unsigned)x2 < 11) + rb->lcd_putc(x2, line, '*'); + + new_len = rb->strlen(credits[name]); + x += MAX(len/2 + 2, len - new_len/2 + 1); + len = new_len; + } + /* abort on keypress */ + if (rb->button_get_w_tmo(HZ/8) & BUTTON_REL) + return; + + if (++curr_index >= curr_len) + { + if (++curr_name >= numnames) + break; + new_len = rb->strlen(credits[curr_name]); + curr_index -= MAX(curr_len/2 + 2, curr_len - new_len/2 + 1); + curr_len = new_len; + curr_line ^= 1; + } + } +} +#else + +void roll_credits(void) +{ + int i; + int line = 0; + int numnames = sizeof(credits)/sizeof(char*); + char buffer[40]; + + int y=LCD_HEIGHT; + + int height; + int width; + + rb->lcd_setfont(FONT_UI); + + rb->lcd_getstringsize("A", &width, &height); + + while(1) { + rb->lcd_clear_display(); + for ( i=0; i <= (LCD_HEIGHT-y)/height; i++ ) + rb->lcd_putsxy(0, i*height+y, line+isnprintf(buffer, sizeof(buffer), " [Credits] %2d/%2d ", + line+1, numnames); + rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); + rb->lcd_fillrect(0, 0, LCD_WIDTH, height); + rb->lcd_set_drawmode(DRMODE_SOLID); + rb->lcd_putsxy(0, 0, buffer); + rb->lcd_update(); + + if (rb->button_get_w_tmo(HZ/20) & BUTTON_REL) + return; + + y--; + + if(y<0) { + line++; + if(line >= numnames) + break; + y+=height; + } + + } +} +#endif diff --git a/apps/plugins/credits.pl b/apps/plugins/credits.pl new file mode 100644 index 0000000000..942a96b99f --- /dev/null +++ b/apps/plugins/credits.pl @@ -0,0 +1,13 @@ +# __________ __ ___. +# Open \______ \ ____ ____ | | _\_ |__ _______ ___ +# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +# \/ \/ \/ \/ \/ +# $Id$ +# +while () { + if(($_ =~ /^([A-Z]+[\S ]+)/) && ($_ !~ /^People/)) { + print "\"$1\",\n"; + } +} -- cgit v1.2.3