Revert r21912 : "Storage API : remove undeeded target-specific functions"
After a discussion mixed on mailing list and irc, it was agreed that more abstraction for plugins is better (so developers don't have to add a check to HAVE_DISK_STORAGE when writing disk-specific code) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21923 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
cf9935d636
commit
bdb5974c0e
15 changed files with 97 additions and 29 deletions
|
@ -284,11 +284,9 @@ static const struct plugin_api rockbox_api = {
|
|||
fdprintf,
|
||||
read_line,
|
||||
settings_parseline,
|
||||
#ifdef HAVE_DISK_STORAGE
|
||||
storage_sleep,
|
||||
storage_spin,
|
||||
storage_spindown,
|
||||
#endif
|
||||
#if USING_STORAGE_CALLBACK
|
||||
register_storage_idle_func,
|
||||
unregister_storage_idle_func,
|
||||
|
|
|
@ -129,12 +129,12 @@ void* plugin_get_buffer(size_t *buffer_size);
|
|||
#define PLUGIN_MAGIC 0x526F634B /* RocK */
|
||||
|
||||
/* increase this every time the api struct changes */
|
||||
#define PLUGIN_API_VERSION 163
|
||||
#define PLUGIN_API_VERSION 164
|
||||
|
||||
/* 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 163
|
||||
#define PLUGIN_MIN_API_VERSION 164
|
||||
|
||||
/* plugin return codes */
|
||||
enum plugin_status {
|
||||
|
@ -395,11 +395,9 @@ 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);
|
||||
#ifdef HAVE_DISK_STORAGE
|
||||
void (*storage_sleep)(void);
|
||||
void (*storage_spin)(void);
|
||||
void (*storage_spindown)(int seconds);
|
||||
#endif
|
||||
#if USING_STORAGE_CALLBACK
|
||||
void (*register_storage_idle_func)(storage_idle_notify function);
|
||||
void (*unregister_storage_idle_func)(storage_idle_notify function, bool run);
|
||||
|
|
|
@ -173,9 +173,7 @@ void load_settings(void){
|
|||
draw_message(display, MESSAGE_ERRLOAD, 1);
|
||||
display->update();
|
||||
}
|
||||
#ifdef HAVE_DISK_STORAGE
|
||||
rb->storage_sleep();
|
||||
#endif
|
||||
rb->sleep(HZ);
|
||||
}
|
||||
|
||||
|
|
|
@ -1038,9 +1038,7 @@ int load_and_show(char* filename)
|
|||
else if(immediate_ata_off)
|
||||
{
|
||||
/* running slideshow and time is long enough: power down disk */
|
||||
#ifdef HAVE_DISK_STORAGE
|
||||
rb->storage_sleep();
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -172,9 +172,7 @@ static inline void disk_buf_buffer(void)
|
|||
if (!stream_get_window(&sw))
|
||||
{
|
||||
disk_buf.state = TSTATE_DATA;
|
||||
#ifdef HAVE_DISK_STORAGE
|
||||
rb->storage_sleep();
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -189,9 +187,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;
|
||||
#ifdef HAVE_DISK_STORAGE
|
||||
rb->storage_sleep();
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -213,9 +209,7 @@ static inline void disk_buf_buffer(void)
|
|||
{
|
||||
/* Error or end of stream */
|
||||
disk_buf.state = TSTATE_EOS;
|
||||
#ifdef HAVE_DISK_STORAGE
|
||||
rb->storage_sleep();
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -681,9 +681,7 @@ int PlayTick(int fd)
|
|||
#endif
|
||||
)
|
||||
{
|
||||
#ifdef HAVE_DISK_STORAGE
|
||||
rb->storage_sleep(); /* no point in leaving the disk run til timeout */
|
||||
#endif
|
||||
gPlay.bDiskSleep = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -3596,9 +3596,7 @@ int play_file(char* filename)
|
|||
if (free_space <= 0)
|
||||
{
|
||||
filling = false;
|
||||
#ifdef HAVE_DISK_STORAGE
|
||||
rb->storage_sleep();
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -66,6 +66,19 @@ void sd_parse_csd(tCardInfo *card)
|
|||
logf("nsac: %d taac: %d r2w: %d", card->nsac, card->taac, card->r2w_factor);
|
||||
}
|
||||
|
||||
void sd_sleep(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sd_spin(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sd_spindown(int seconds)
|
||||
{
|
||||
(void)seconds;
|
||||
}
|
||||
|
||||
#ifdef STORAGE_GET_INFO
|
||||
void sd_get_info(IF_MV2(int drive,) struct storage_info *info)
|
||||
{
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
struct storage_info;
|
||||
|
||||
void mmc_enable(bool on);
|
||||
void mmc_spindown(int seconds);
|
||||
void mmc_sleep(void);
|
||||
void mmc_sleepnow(void);
|
||||
bool mmc_disk_is_active(void);
|
||||
int mmc_soft_reset(void);
|
||||
|
@ -35,6 +37,7 @@ int mmc_init(void);
|
|||
void mmc_close(void);
|
||||
int mmc_read_sectors(IF_MV2(int drive,) unsigned long start, int count, void* buf);
|
||||
int mmc_write_sectors(IF_MV2(int drive,) unsigned long start, int count, const void* buf);
|
||||
void mmc_spin(void);
|
||||
int mmc_spinup_time(void);
|
||||
|
||||
#ifdef STORAGE_GET_INFO
|
||||
|
|
|
@ -28,12 +28,15 @@
|
|||
struct storage_info;
|
||||
|
||||
void nand_enable(bool on);
|
||||
void nand_spindown(int seconds);
|
||||
void nand_sleep(void);
|
||||
bool nand_disk_is_active(void);
|
||||
int nand_soft_reset(void);
|
||||
int nand_init(void);
|
||||
void nand_close(void);
|
||||
int nand_read_sectors(IF_MV2(int drive,) unsigned long start, int count, void* buf);
|
||||
int nand_write_sectors(IF_MV2(int drive,) unsigned long start, int count, const void* buf);
|
||||
void nand_spin(void);
|
||||
|
||||
#ifdef STORAGE_GET_INFO
|
||||
void nand_get_info(IF_MV2(int drive,) struct storage_info *info);
|
||||
|
|
|
@ -30,12 +30,15 @@
|
|||
struct storage_info;
|
||||
|
||||
void sd_enable(bool on);
|
||||
void sd_spindown(int seconds);
|
||||
void sd_sleep(void);
|
||||
bool sd_disk_is_active(void);
|
||||
int sd_soft_reset(void);
|
||||
int sd_init(void);
|
||||
void sd_close(void);
|
||||
int sd_read_sectors(IF_MV2(int drive,) unsigned long start, int count, void* buf);
|
||||
int sd_write_sectors(IF_MV2(int drive,) unsigned long start, int count, const void* buf);
|
||||
void sd_spin(void);
|
||||
|
||||
#ifdef STORAGE_GET_INFO
|
||||
void sd_get_info(IF_MV2(int drive,) struct storage_info *info);
|
||||
|
|
|
@ -81,9 +81,9 @@ struct storage_info
|
|||
#define storage_present(drive) ata_present(IF_MV(drive))
|
||||
#endif
|
||||
#elif (CONFIG_STORAGE & STORAGE_SD)
|
||||
#define storage_spindown(seconds) (void)0
|
||||
#define storage_sleep() (void)0
|
||||
#define storage_spin() (void)0
|
||||
#define storage_spindown sd_spindown
|
||||
#define storage_sleep sd_sleep
|
||||
#define storage_spin sd_spin
|
||||
|
||||
#define storage_enable(on) sd_enable(on)
|
||||
#define storage_sleepnow() sd_sleepnow()
|
||||
|
@ -105,9 +105,9 @@ struct storage_info
|
|||
#define storage_present(drive) sd_present(IF_MV(drive))
|
||||
#endif
|
||||
#elif (CONFIG_STORAGE & STORAGE_MMC)
|
||||
#define storage_spindown(seconds) (void)0
|
||||
#define storage_sleep() (void)0
|
||||
#define storage_spin() (void)0
|
||||
#define storage_spindown mmc_spindown
|
||||
#define storage_sleep mmc_sleep
|
||||
#define storage_spin mmc_spin
|
||||
|
||||
#define storage_enable(on) mmc_enable(on)
|
||||
#define storage_sleepnow() mmc_sleepnow()
|
||||
|
@ -129,9 +129,9 @@ struct storage_info
|
|||
#define storage_present(drive) mmc_present(IF_MV(drive))
|
||||
#endif
|
||||
#elif (CONFIG_STORAGE & STORAGE_NAND)
|
||||
#define storage_spindown(seconds) (void)0
|
||||
#define storage_sleep() (void)0
|
||||
#define storage_spin() (void)0
|
||||
#define storage_spindown nand_spindown
|
||||
#define storage_sleep nand_sleep
|
||||
#define storage_spin nand_spin
|
||||
|
||||
#define storage_enable(on) (void)0
|
||||
#define storage_sleepnow() nand_sleepnow()
|
||||
|
|
|
@ -900,3 +900,16 @@ long nand_last_disk_activity(void)
|
|||
{
|
||||
return last_disk_activity;
|
||||
}
|
||||
|
||||
void nand_sleep(void)
|
||||
{
|
||||
}
|
||||
|
||||
void nand_spin(void)
|
||||
{
|
||||
}
|
||||
|
||||
void nand_spindown(int seconds)
|
||||
{
|
||||
(void)seconds;
|
||||
}
|
||||
|
|
|
@ -64,6 +64,29 @@ int nand_write_sectors(IF_MV2(int drive,) unsigned long start, int count,
|
|||
return 0;
|
||||
}
|
||||
|
||||
void nand_spindown(int seconds)
|
||||
{
|
||||
(void)seconds;
|
||||
}
|
||||
|
||||
bool nand_disk_is_active(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void nand_sleep(void)
|
||||
{
|
||||
}
|
||||
|
||||
void nand_spin(void)
|
||||
{
|
||||
}
|
||||
|
||||
int nand_soft_reset(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void nand_enable(bool on)
|
||||
{
|
||||
(void)on;
|
||||
|
|
|
@ -685,6 +685,34 @@ int nand_write_sectors(IF_MV2(int drive,) unsigned long start, int count, const
|
|||
return -1;
|
||||
}
|
||||
|
||||
void nand_spindown(int seconds)
|
||||
{
|
||||
/* null */
|
||||
(void)seconds;
|
||||
}
|
||||
|
||||
bool nand_disk_is_active(void)
|
||||
{
|
||||
/* null */
|
||||
return false;
|
||||
}
|
||||
|
||||
void nand_sleep(void)
|
||||
{
|
||||
/* null */
|
||||
}
|
||||
|
||||
void nand_spin(void)
|
||||
{
|
||||
/* null */
|
||||
}
|
||||
|
||||
int nand_soft_reset(void)
|
||||
{
|
||||
/* null */
|
||||
return 0;
|
||||
}
|
||||
|
||||
void nand_enable(bool on)
|
||||
{
|
||||
/* null - flash controller is enabled/disabled as needed. */
|
||||
|
|
Loading…
Reference in a new issue