Also keep the backlight on in mpegplayer when plugged in. Fixes FS #7584. Created two helper functions for this, because this issue also exists in other plugins (to do). The helper functions are in the pluginlib in helper.[ch], where other common stuff can be put.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14321 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Peter D'Hoye 2007-08-13 22:31:11 +00:00
parent 07a09041d6
commit a5d4d67763
6 changed files with 88 additions and 14 deletions

View file

@ -132,6 +132,9 @@ static const struct plugin_api rockbox_api = {
backlight_on,
backlight_off,
backlight_set_timeout,
#if CONFIG_CHARGING
backlight_set_timeout_plugged,
#endif
gui_syncsplash,
#ifdef HAVE_REMOTE_LCD
/* remote lcd */

View file

@ -112,12 +112,12 @@
#define PLUGIN_MAGIC 0x526F634B /* RocK */
/* increase this every time the api struct changes */
#define PLUGIN_API_VERSION 71
#define PLUGIN_API_VERSION 72
/* 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 71
#define PLUGIN_MIN_API_VERSION 72
/* plugin return codes */
enum plugin_status {
@ -210,6 +210,9 @@ struct plugin_api {
void (*backlight_on)(void);
void (*backlight_off)(void);
void (*backlight_set_timeout)(int index);
#if CONFIG_CHARGING
void (*backlight_set_timeout_plugged)(int index);
#endif
void (*splash)(int ticks, const char *fmt, ...) ATTRIBUTE_PRINTF(2, 3);
#ifdef HAVE_REMOTE_LCD

View file

@ -30,3 +30,4 @@ bmp.c
#endif
#endif
pluginlib_actions.c
helper.c

46
apps/plugins/lib/helper.c Normal file
View file

@ -0,0 +1,46 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id: helper.c 12179 2007-08-14 23:08:15Z peter $
*
* Copyright (C) 2007 by 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"
/* the plugin must declare the plugin_api struct pointer itself */
extern struct plugin_api* rb;
/* force the backlight on */
void backlight_force_on(void)
{
#ifdef HAVE_BACKLIGHT
rb->backlight_set_timeout(1);
#if CONFIG_CHARGING
rb->backlight_set_timeout_plugged(1);
#endif
#endif
}
/* reset backlight operation to its settings */
void backlight_use_settings(void)
{
#ifdef HAVE_BACKLIGHT
rb->backlight_set_timeout(rb->global_settings->backlight_timeout);
#if CONFIG_CHARGING
rb->backlight_set_timeout_plugged(rb->global_settings-> \
backlight_timeout_plugged);
#endif
#endif
}

30
apps/plugins/lib/helper.h Normal file
View file

@ -0,0 +1,30 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id: helper.h 10254 2007-08-14 19:44:44Z peter $
*
* Copyright (C) 2007 by 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.
*
****************************************************************************/
#ifndef _LIB_HELPER_H_
#define _LIB_HELPER_H_
#include "plugin.h"
/**
* Backlight on/off operations
*/
void backlight_force_on(void);
void backlight_use_settings(void);
#endif

View file

@ -104,6 +104,7 @@ FPS | 27Mhz | 100Hz | 44.1KHz | 48KHz
#include "plugin.h"
#include "gray.h"
#include "helper.h"
#include "mpeg2.h"
#include "mpeg_settings.h"
@ -1856,14 +1857,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
rb->lcd_clear_display();
rb->lcd_update();
/* make sure the backlight is always on when viewing video
(actually it should also set the timeout when plugged in,
but the function backlight_set_timeout_plugged is not
available in plugins) */
#ifdef HAVE_BACKLIGHT
if (rb->global_settings->backlight_timeout > 0)
rb->backlight_set_timeout(1);
#endif
backlight_force_on();
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
rb->cpu_boost(true);
@ -2000,10 +1994,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
rb->pcm_set_frequency(HW_SAMPR_DEFAULT);
#ifdef HAVE_BACKLIGHT
/* reset backlight settings */
rb->backlight_set_timeout(rb->global_settings->backlight_timeout);
#endif
backlight_use_settings();
return status;
}