1 /*****************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// __ \_/ ___\| |/ /| __ \ / __ \ \/ /
5 * Jukebox | | ( (__) ) \___| ( | \_\ ( (__) ) (
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2008 Andrew Mahone
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
24 #include "lib/pluginlib_bmp.h"
26 #if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
27 (CONFIG_KEYPAD == IPOD_1G2G_PAD)
28 #define GBS_QUIT BUTTON_MENU
29 #elif CONFIG_KEYPAD == IAUDIO_M3_PAD
30 #define GBS_QUIT BUTTON_RC_REC
31 #elif CONFIG_KEYPAD == SAMSUNG_YH_PAD
32 #define GBS_QUIT BUTTON_PLAY
33 #elif CONFIG_KEYPAD == MPIO_HD200_PAD
34 #define GBS_QUIT (BUTTON_REC|BUTTON_PLAY)
35 #elif defined(BUTTON_OFF)
36 #define GBS_QUIT BUTTON_OFF
38 #define GBS_QUIT BUTTON_POWER
42 #define BMP_LOAD read_bmp_file
44 #define BMP_LOAD rb->read_bmp_file
49 static unsigned char grey_bm_buf
[LCD_WIDTH
* LCD_HEIGHT
+
50 BM_SCALED_SIZE(LCD_WIDTH
,0,FORMAT_NATIVE
,0)];
52 /* this is the plugin entry point */
53 enum plugin_status
plugin_start(const void* parameter
)
56 size_t plugin_buf_len
;
57 static char filename
[MAX_PATH
];
58 struct bitmap grey_bm
= {
65 if(!parameter
) return PLUGIN_ERROR
;
67 rb
->strcpy(filename
, parameter
);
69 ret
= BMP_LOAD(filename
, &grey_bm
, sizeof(grey_bm_buf
),
70 FORMAT_NATIVE
|FORMAT_RESIZE
|FORMAT_KEEP_ASPECT
,
75 rb
->splash(HZ
*2, "failed to load bitmap");
79 plugin_buf
= rb
->plugin_get_buffer(&plugin_buf_len
);
80 if(!grey_init(plugin_buf
, plugin_buf_len
, 0, LCD_WIDTH
, LCD_HEIGHT
,
83 rb
->splash(HZ
*2,"grey init failed");
86 grey_ub_clear_display();
87 x
= (LCD_WIDTH
- grey_bm
.width
) / 2;
88 y
= (LCD_HEIGHT
- grey_bm
.height
) / 2;
89 grey_ub_gray_bitmap(grey_bm_buf
, x
, y
, grey_bm
.width
, grey_bm
.height
);
92 /* wait until user closes plugin */
93 while (rb
->button_get(true) != GBS_QUIT
);