Set the default battery capacity for ipod video properly depending on detected RAM size.

Also set up a callback for the battery capacity setting (for all players) so changes take effect without having to reboot.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30170 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Frank Gevaerts 2011-07-19 20:48:16 +00:00
parent 354d8fbc63
commit aa27d47782
6 changed files with 52 additions and 8 deletions

View file

@ -784,10 +784,20 @@ const struct settings_list settings[] = {
#define BATTERY_CAPACITY_MAX BATTERY_CAPACITY_DEFAULT #define BATTERY_CAPACITY_MAX BATTERY_CAPACITY_DEFAULT
#define BATTERY_CAPACITY_INC 0 #define BATTERY_CAPACITY_INC 0
#endif #endif
#ifdef IPOD_VIDEO
/* its easier to leave this one un-macro()ed for the time being */
{ F_T_INT|F_DEF_ISFUNC|F_INT_SETTING, &global_settings.battery_capacity,
LANG_BATTERY_CAPACITY, FUNCTYPE(battery_default_capacity),
"battery capacity", NULL , {
.int_setting = (struct int_setting[]) {
{ set_battery_capacity, UNIT_MAH, BATTERY_CAPACITY_MIN,
BATTERY_CAPACITY_MAX, BATTERY_CAPACITY_INC, NULL, NULL }}}},
#else /* IPOD_VIDEO */
INT_SETTING(0, battery_capacity, LANG_BATTERY_CAPACITY, INT_SETTING(0, battery_capacity, LANG_BATTERY_CAPACITY,
BATTERY_CAPACITY_DEFAULT, "battery capacity", UNIT_MAH, BATTERY_CAPACITY_DEFAULT, "battery capacity", UNIT_MAH,
BATTERY_CAPACITY_MIN, BATTERY_CAPACITY_MAX, BATTERY_CAPACITY_MIN, BATTERY_CAPACITY_MAX,
BATTERY_CAPACITY_INC, NULL, NULL, NULL), BATTERY_CAPACITY_INC, NULL, NULL, set_battery_capacity),
#endif /* IPOD_VIDEO */
#endif #endif
#if CONFIG_CHARGING #if CONFIG_CHARGING
OFFON_SETTING(NVRAM(1), car_adapter_mode, OFFON_SETTING(NVRAM(1), car_adapter_mode,

View file

@ -1188,6 +1188,7 @@ target/arm/ipod/power-ipod.c
target/arm/ipod/powermgmt-ipod-pcf.c target/arm/ipod/powermgmt-ipod-pcf.c
target/arm/ipod/video/lcd-as-video.S target/arm/ipod/video/lcd-as-video.S
target/arm/ipod/video/lcd-video.c target/arm/ipod/video/lcd-video.c
target/arm/ipod/video/battery-video.c
target/arm/usb-fw-pp502x.c target/arm/usb-fw-pp502x.c
#endif /* SIMULATOR */ #endif /* SIMULATOR */
#endif /* IPOD_VIDEO */ #endif /* IPOD_VIDEO */

View file

@ -136,8 +136,11 @@
#define HAVE_HEADPHONE_DETECTION #define HAVE_HEADPHONE_DETECTION
/* Type of mobile power */ /* Type of mobile power */
#define BATTERY_CAPACITY_DEFAULT 400 /* default battery capacity for the */ #define BATTERY_CAPACITY_DEFAULT 400 /* only for variable initialisation */
/* 30GB model. 60/80GB would have 600 */ #define BATTERY_CAPACITY_DEFAULT_THIN 400 /* default battery capacity for the
30GB model */
#define BATTERY_CAPACITY_DEFAULT_THICK 600 /* default battery capacity for the
60/80GB model */
#define BATTERY_CAPACITY_MIN 300 /* min. capacity selectable */ #define BATTERY_CAPACITY_MIN 300 /* min. capacity selectable */
#define BATTERY_CAPACITY_MAX 1400 /* max. capacity selectable */ #define BATTERY_CAPACITY_MAX 1400 /* max. capacity selectable */
#define BATTERY_CAPACITY_INC 50 /* capacity increment */ #define BATTERY_CAPACITY_INC 50 /* capacity increment */

View file

@ -0,0 +1,33 @@
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id $
*
* Default battery capacity for ipod video
*
* Copyright (c) 2011 Frank Gevaerts
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include "config.h"
#include "system.h"
int battery_default_capacity(void)
{
if(probed_ramsize==64)
return BATTERY_CAPACITY_DEFAULT_THICK;
else
return BATTERY_CAPACITY_DEFAULT_THIN;
}

View file

@ -173,6 +173,7 @@ static inline void wake_core(int core)
#if defined(IPOD_VIDEO) && !defined(BOOTLOADER) #if defined(IPOD_VIDEO) && !defined(BOOTLOADER)
extern unsigned char probed_ramsize; extern unsigned char probed_ramsize;
int battery_default_capacity(void);
#endif #endif

View file

@ -39,7 +39,7 @@
\opt{ipodmini}{400~mAh (1G) or 630~mAh (2G)}% \opt{ipodmini}{400~mAh (1G) or 630~mAh (2G)}%
\opt{ipodcolor}{700~mAh}% \opt{ipodcolor}{700~mAh}%
\opt{ipodnano}{300~mAh}% \opt{ipodnano}{300~mAh}%
\opt{ipodvideo}{400~mAh}% \opt{ipodvideo}{400~mAh (30~GB) or 600~mAh (60~GB and 80~GB)}%
\opt{ipod4g}{630~mAh}% \opt{ipod4g}{630~mAh}%
\opt{ipod3g}{630~mAh}% \opt{ipod3g}{630~mAh}%
\opt{ipod1g2g}{1200~mAh}% \opt{ipod1g2g}{1200~mAh}%
@ -53,10 +53,6 @@
calculation. Changing this setting has no effect whatsoever on calculation. Changing this setting has no effect whatsoever on
actual battery life. This setting only affects the accuracy of the actual battery life. This setting only affects the accuracy of the
runtime estimation as shown on screen. runtime estimation as shown on screen.
\opt{ipodvideo}{Rockbox does not automatically distinguish
between the 60/80~GB models and the 30~GB models which determine the
default value. If your \dap{} is a 60~GB or 80~GB model
set the value to 600~mAh for more accuracy in the runtime estimation.}
\opt{iaudiom3,iaudiom5,iaudiox5}{Rockbox does not automatically distinguish \opt{iaudiom3,iaudiom5,iaudiox5}{Rockbox does not automatically distinguish
between the ``L'' models and the ``simple'' models which determine the between the ``L'' models and the ``simple'' models which determine the
default value. If your \dap{} is an default value. If your \dap{} is an