summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2008-04-13 12:24:47 +0000
committerJens Arnold <amiconn@rockbox.org>2008-04-13 12:24:47 +0000
commit2bf4178018930b8af6d7082f7dd1a3302e09932b (patch)
tree3f6e2177e31f09157fc782d4239b944a6f6d8963 /apps
parent4c5a735a023755cedc264a4cad89f1ab0c256e17 (diff)
downloadrockbox-2bf4178018930b8af6d7082f7dd1a3302e09932b.tar.gz
rockbox-2bf4178018930b8af6d7082f7dd1a3302e09932b.tar.bz2
rockbox-2bf4178018930b8af6d7082f7dd1a3302e09932b.zip
Make mpegplayer sleep the disk after buffering to save battery. * Add a simulator stub for ata_sleep(), and un-ifdef most calls to it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17096 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/buffering.c2
-rw-r--r--apps/plugin.c2
-rw-r--r--apps/plugin.h6
-rw-r--r--apps/plugins/clock/clock_settings.c2
-rw-r--r--apps/plugins/mpegplayer/disk_buf.c3
5 files changed, 7 insertions, 8 deletions
diff --git a/apps/buffering.c b/apps/buffering.c
index 99a4a3b058..f123d8fcc3 100644
--- a/apps/buffering.c
+++ b/apps/buffering.c
@@ -813,11 +813,9 @@ static bool fill_buffer(void)
}
else
{
-#ifndef SIMULATOR
/* only spin the disk down if the filling wasn't interrupted by an
event arriving in the queue. */
ata_sleep();
-#endif
return false;
}
}
diff --git a/apps/plugin.c b/apps/plugin.c
index 7a8e0e04be..a7baa6d314 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -234,8 +234,8 @@ static const struct plugin_api rockbox_api = {
fdprintf,
read_line,
settings_parseline,
-#ifndef SIMULATOR
ata_sleep,
+#ifndef SIMULATOR
ata_disk_is_active,
#endif
ata_spin,
diff --git a/apps/plugin.h b/apps/plugin.h
index c638688753..2db38eda4c 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -120,12 +120,12 @@
#define PLUGIN_MAGIC 0x526F634B /* RocK */
/* increase this every time the api struct changes */
-#define PLUGIN_API_VERSION 107
+#define PLUGIN_API_VERSION 108
/* 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 107
+#define PLUGIN_MIN_API_VERSION 108
/* plugin return codes */
enum plugin_status {
@@ -331,8 +331,8 @@ struct plugin_api {
int (*fdprintf)(int fd, const char *fmt, ...) ATTRIBUTE_PRINTF(2, 3);
int (*read_line)(int fd, char* buffer, int buffer_size);
bool (*settings_parseline)(char* line, char** name, char** value);
-#ifndef SIMULATOR
void (*ata_sleep)(void);
+#ifndef SIMULATOR
bool (*ata_disk_is_active)(void);
#endif
void (*ata_spin)(void);
diff --git a/apps/plugins/clock/clock_settings.c b/apps/plugins/clock/clock_settings.c
index fddea57c34..233be6565f 100644
--- a/apps/plugins/clock/clock_settings.c
+++ b/apps/plugins/clock/clock_settings.c
@@ -171,9 +171,7 @@ void load_settings(void){
draw_message(display, MESSAGE_ERRLOAD, 1);
display->update();
}
-#ifndef SIMULATOR
rb->ata_sleep();
-#endif
rb->sleep(HZ);
}
diff --git a/apps/plugins/mpegplayer/disk_buf.c b/apps/plugins/mpegplayer/disk_buf.c
index 46a060221d..7ecf51c168 100644
--- a/apps/plugins/mpegplayer/disk_buf.c
+++ b/apps/plugins/mpegplayer/disk_buf.c
@@ -169,6 +169,7 @@ static inline void disk_buf_buffer(void)
if (!stream_get_window(&sw))
{
disk_buf.state = TSTATE_DATA;
+ rb->ata_sleep();
break;
}
@@ -183,6 +184,7 @@ static inline void disk_buf_buffer(void)
/* Free space is less than one page */
disk_buf.state = TSTATE_DATA;
disk_buf.low_wm = DISK_BUF_LOW_WATERMARK;
+ rb->ata_sleep();
break;
}
@@ -204,6 +206,7 @@ static inline void disk_buf_buffer(void)
{
/* Error or end of stream */
disk_buf.state = TSTATE_EOS;
+ rb->ata_sleep();
break;
}