Correct wrong usage of event callbacks all over the place. It's not supposed to return anything, and should take a data parameter.
Fixing it because correcting the event api prototypes causes many warnings. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23301 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
872852639f
commit
774bacc692
13 changed files with 51 additions and 50 deletions
|
@ -1562,11 +1562,12 @@ static void buffering_handle_rebuffer_callback(void *data)
|
||||||
queue_post(&audio_queue, Q_AUDIO_FLUSH, 0);
|
queue_post(&audio_queue, Q_AUDIO_FLUSH, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void buffering_handle_finished_callback(int *data)
|
static void buffering_handle_finished_callback(void *data)
|
||||||
{
|
{
|
||||||
logf("handle %d finished buffering", *data);
|
logf("handle %d finished buffering", *data);
|
||||||
|
int hid = (*(int*)data);
|
||||||
|
|
||||||
if (*data == tracks[track_widx].id3_hid)
|
if (hid == tracks[track_widx].id3_hid)
|
||||||
{
|
{
|
||||||
int offset = ci.new_track + wps_offset;
|
int offset = ci.new_track + wps_offset;
|
||||||
int next_idx = (track_ridx + offset + 1) & MAX_TRACK_MASK;
|
int next_idx = (track_ridx + offset + 1) & MAX_TRACK_MASK;
|
||||||
|
@ -1574,16 +1575,16 @@ static void buffering_handle_finished_callback(int *data)
|
||||||
We can ask the audio thread to load the rest of the track's data. */
|
We can ask the audio thread to load the rest of the track's data. */
|
||||||
LOGFQUEUE("audio >| audio Q_AUDIO_FINISH_LOAD");
|
LOGFQUEUE("audio >| audio Q_AUDIO_FINISH_LOAD");
|
||||||
queue_post(&audio_queue, Q_AUDIO_FINISH_LOAD, 0);
|
queue_post(&audio_queue, Q_AUDIO_FINISH_LOAD, 0);
|
||||||
if (tracks[next_idx].id3_hid == *data)
|
if (tracks[next_idx].id3_hid == hid)
|
||||||
send_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, NULL);
|
send_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* This is most likely an audio handle, so we strip the useless
|
/* This is most likely an audio handle, so we strip the useless
|
||||||
trailing tags that are left. */
|
trailing tags that are left. */
|
||||||
strip_tags(*data);
|
strip_tags(hid);
|
||||||
|
|
||||||
if (*data == tracks[track_widx-1].audio_hid
|
if (hid == tracks[track_widx-1].audio_hid
|
||||||
&& filling == STATE_END_OF_PLAYLIST)
|
&& filling == STATE_END_OF_PLAYLIST)
|
||||||
{
|
{
|
||||||
/* This was the last track in the playlist.
|
/* This was the last track in the playlist.
|
||||||
|
|
|
@ -1214,8 +1214,9 @@ static int compare(const void* p1, const void* p2)
|
||||||
* without affecting playlist load up performance. This thread also flushes
|
* without affecting playlist load up performance. This thread also flushes
|
||||||
* any pending control commands when the disk spins up.
|
* any pending control commands when the disk spins up.
|
||||||
*/
|
*/
|
||||||
static bool playlist_flush_callback(void)
|
static void playlist_flush_callback(void *param)
|
||||||
{
|
{
|
||||||
|
(void)param;
|
||||||
struct playlist_info *playlist;
|
struct playlist_info *playlist;
|
||||||
playlist = ¤t_playlist;
|
playlist = ¤t_playlist;
|
||||||
if (playlist->control_fd >= 0)
|
if (playlist->control_fd >= 0)
|
||||||
|
@ -1228,7 +1229,6 @@ static bool playlist_flush_callback(void)
|
||||||
}
|
}
|
||||||
sync_control(playlist, true);
|
sync_control(playlist, true);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void playlist_thread(void)
|
static void playlist_thread(void)
|
||||||
|
|
|
@ -403,8 +403,8 @@ struct plugin_api {
|
||||||
void (*storage_spin)(void);
|
void (*storage_spin)(void);
|
||||||
void (*storage_spindown)(int seconds);
|
void (*storage_spindown)(int seconds);
|
||||||
#if USING_STORAGE_CALLBACK
|
#if USING_STORAGE_CALLBACK
|
||||||
void (*register_storage_idle_func)(storage_idle_notify function);
|
void (*register_storage_idle_func)(void (*function)(void *data));
|
||||||
void (*unregister_storage_idle_func)(storage_idle_notify function, bool run);
|
void (*unregister_storage_idle_func)(void (*function)(void *data), bool run);
|
||||||
#endif /* USING_STORAGE_CALLBACK */
|
#endif /* USING_STORAGE_CALLBACK */
|
||||||
void (*reload_directory)(void);
|
void (*reload_directory)(void);
|
||||||
char *(*create_numbered_filename)(char *buffer, const char *path,
|
char *(*create_numbered_filename)(char *buffer, const char *path,
|
||||||
|
|
|
@ -306,22 +306,19 @@ static unsigned int charge_state(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static bool flush_buffer(void)
|
static void flush_buffer(void* data)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
int fd, secs;
|
int fd, secs;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
/* don't access the disk when in usb mode, or when no data is available */
|
/* don't access the disk when in usb mode, or when no data is available */
|
||||||
if (in_usb_mode || (buf_idx == 0))
|
if (in_usb_mode || (buf_idx == 0))
|
||||||
{
|
return;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
fd = rb->open(BATTERY_LOG, O_RDWR | O_CREAT | O_APPEND);
|
fd = rb->open(BATTERY_LOG, O_RDWR | O_CREAT | O_APPEND);
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
{
|
return;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < buf_idx; i++)
|
for (i = 0; i < buf_idx; i++)
|
||||||
{
|
{
|
||||||
|
@ -357,7 +354,6 @@ static bool flush_buffer(void)
|
||||||
rb->close(fd);
|
rb->close(fd);
|
||||||
|
|
||||||
buf_idx = 0;
|
buf_idx = 0;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -395,7 +391,7 @@ void thread(void)
|
||||||
for this to occur because it requires > 16 hours of no disk activity.
|
for this to occur because it requires > 16 hours of no disk activity.
|
||||||
*/
|
*/
|
||||||
if (buf_idx == BUF_ELEMENTS) {
|
if (buf_idx == BUF_ELEMENTS) {
|
||||||
flush_buffer();
|
flush_buffer(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* sleep some time until next measurement */
|
/* sleep some time until next measurement */
|
||||||
|
|
|
@ -128,11 +128,11 @@ static void write_cache(void)
|
||||||
cache_pos = 0;
|
cache_pos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool scrobbler_flush_callback(void)
|
static void scrobbler_flush_callback(void *data)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
if (scrobbler_initialised && cache_pos)
|
if (scrobbler_initialised && cache_pos)
|
||||||
write_cache();
|
write_cache();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void add_to_cache(unsigned long play_length)
|
static void add_to_cache(unsigned long play_length)
|
||||||
|
@ -185,8 +185,9 @@ static void add_to_cache(unsigned long play_length)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void scrobbler_change_event(struct mp3entry *id)
|
static void scrobbler_change_event(void *data)
|
||||||
{
|
{
|
||||||
|
struct mp3entry *id = (struct mp3entry*)data;
|
||||||
/* add entry using the previous scrobbler_entry and timestamp */
|
/* add entry using the previous scrobbler_entry and timestamp */
|
||||||
if (pending)
|
if (pending)
|
||||||
add_to_cache(audio_prev_elapsed());
|
add_to_cache(audio_prev_elapsed());
|
||||||
|
|
|
@ -19,9 +19,13 @@
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void scrobbler_change_event(struct mp3entry *id);
|
#ifndef __SCROBBLER_H__
|
||||||
|
#define __SCROBBLER_H__
|
||||||
|
|
||||||
int scrobbler_init(void);
|
int scrobbler_init(void);
|
||||||
void scrobbler_flush_cache(void);
|
void scrobbler_flush_cache(void);
|
||||||
void scrobbler_shutdown(void);
|
void scrobbler_shutdown(void);
|
||||||
void scrobbler_poweroff(void);
|
void scrobbler_poweroff(void);
|
||||||
bool scrobbler_is_enabled(void);
|
bool scrobbler_is_enabled(void);
|
||||||
|
|
||||||
|
#endif /* __SCROBBLER_H__ */
|
||||||
|
|
|
@ -568,17 +568,17 @@ static bool settings_write_config(const char* filename, int options)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#ifndef HAVE_RTC_RAM
|
#ifndef HAVE_RTC_RAM
|
||||||
static bool flush_global_status_callback(void)
|
static void flush_global_status_callback(void *data)
|
||||||
{
|
{
|
||||||
return write_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE);
|
(void)data;
|
||||||
|
write_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
static bool flush_config_block_callback(void)
|
static void flush_config_block_callback(void *data)
|
||||||
{
|
{
|
||||||
bool r1, r2;
|
(void)data;
|
||||||
r1 = write_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE);
|
write_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE);
|
||||||
r2 = settings_write_config(CONFIGFILE, SETTINGS_SAVE_CHANGED);
|
settings_write_config(CONFIGFILE, SETTINGS_SAVE_CHANGED);
|
||||||
return r1 || r2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -3068,16 +3068,16 @@ static bool command_queue_is_full(void)
|
||||||
return (next == command_queue_ridx);
|
return (next == command_queue_ridx);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool command_queue_sync_callback(void)
|
static void command_queue_sync_callback(void *data)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
struct master_header myhdr;
|
struct master_header myhdr;
|
||||||
int masterfd;
|
int masterfd;
|
||||||
|
|
||||||
mutex_lock(&command_queue_mutex);
|
mutex_lock(&command_queue_mutex);
|
||||||
|
|
||||||
if ( (masterfd = open_master_fd(&myhdr, true)) < 0)
|
if ( (masterfd = open_master_fd(&myhdr, true)) < 0)
|
||||||
return false;
|
return;
|
||||||
|
|
||||||
while (command_queue_ridx != command_queue_widx)
|
while (command_queue_ridx != command_queue_widx)
|
||||||
{
|
{
|
||||||
|
@ -3092,7 +3092,7 @@ static bool command_queue_sync_callback(void)
|
||||||
|
|
||||||
/* Re-open the masterfd. */
|
/* Re-open the masterfd. */
|
||||||
if ( (masterfd = open_master_fd(&myhdr, true)) < 0)
|
if ( (masterfd = open_master_fd(&myhdr, true)) < 0)
|
||||||
return true;
|
return;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3111,7 +3111,6 @@ static bool command_queue_sync_callback(void)
|
||||||
|
|
||||||
tc_stat.queue_length = 0;
|
tc_stat.queue_length = 0;
|
||||||
mutex_unlock(&command_queue_mutex);
|
mutex_unlock(&command_queue_mutex);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void run_command_queue(bool force)
|
static void run_command_queue(bool force)
|
||||||
|
@ -3120,7 +3119,7 @@ static void run_command_queue(bool force)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (force || command_queue_is_full())
|
if (force || command_queue_is_full())
|
||||||
command_queue_sync_callback();
|
command_queue_sync_callback(NULL);
|
||||||
else
|
else
|
||||||
register_storage_idle_func(command_queue_sync_callback);
|
register_storage_idle_func(command_queue_sync_callback);
|
||||||
}
|
}
|
||||||
|
|
|
@ -642,9 +642,10 @@ static int compare(const void *p1, const void *p2)
|
||||||
return strncasecmp(e1->name, e2->name, MAX_PATH);
|
return strncasecmp(e1->name, e2->name, MAX_PATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tagtree_buffer_event(struct mp3entry *id3)
|
static void tagtree_buffer_event(void *data)
|
||||||
{
|
{
|
||||||
struct tagcache_search tcs;
|
struct tagcache_search tcs;
|
||||||
|
struct mp3entry *id3 = (struct mp3entry*)data;
|
||||||
|
|
||||||
/* Do not gather data unless proper setting has been enabled. */
|
/* Do not gather data unless proper setting has been enabled. */
|
||||||
if (!global_settings.runtimedb)
|
if (!global_settings.runtimedb)
|
||||||
|
@ -671,12 +672,13 @@ static void tagtree_buffer_event(struct mp3entry *id3)
|
||||||
tagcache_search_finish(&tcs);
|
tagcache_search_finish(&tcs);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tagtree_track_finish_event(struct mp3entry *id3)
|
static void tagtree_track_finish_event(void *data)
|
||||||
{
|
{
|
||||||
long playcount;
|
long playcount;
|
||||||
long playtime;
|
long playtime;
|
||||||
long lastplayed;
|
long lastplayed;
|
||||||
long tagcache_idx;
|
long tagcache_idx;
|
||||||
|
struct mp3entry *id3 = (struct mp3entry*)data;
|
||||||
|
|
||||||
/* Do not gather data unless proper setting has been enabled. */
|
/* Do not gather data unless proper setting has been enabled. */
|
||||||
if (!global_settings.runtimedb)
|
if (!global_settings.runtimedb)
|
||||||
|
|
|
@ -25,12 +25,12 @@
|
||||||
#include "kernel.h"
|
#include "kernel.h"
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
|
|
||||||
void register_storage_idle_func(storage_idle_notify function)
|
void register_storage_idle_func(void (*function)(void *data))
|
||||||
{
|
{
|
||||||
#if USING_STORAGE_CALLBACK
|
#if USING_STORAGE_CALLBACK
|
||||||
add_event(DISK_EVENT_SPINUP, true, function);
|
add_event(DISK_EVENT_SPINUP, true, function);
|
||||||
#else
|
#else
|
||||||
function(); /* just call the function now */
|
function(NULL); /* just call the function now */
|
||||||
/* this _may_ cause problems later if the calling function
|
/* this _may_ cause problems later if the calling function
|
||||||
sets a variable expecting the callback to unset it, because
|
sets a variable expecting the callback to unset it, because
|
||||||
the callback will be run before this function exits, so before the var is set */
|
the callback will be run before this function exits, so before the var is set */
|
||||||
|
@ -38,12 +38,12 @@ void register_storage_idle_func(storage_idle_notify function)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if USING_STORAGE_CALLBACK
|
#if USING_STORAGE_CALLBACK
|
||||||
void unregister_storage_idle_func(storage_idle_notify func, bool run)
|
void unregister_storage_idle_func(void (*func)(void *data), bool run)
|
||||||
{
|
{
|
||||||
remove_event(DISK_EVENT_SPINUP, func);
|
remove_event(DISK_EVENT_SPINUP, func);
|
||||||
|
|
||||||
if (run)
|
if (run)
|
||||||
func();
|
func(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool call_storage_idle_notifys(bool force)
|
bool call_storage_idle_notifys(bool force)
|
||||||
|
|
|
@ -33,7 +33,7 @@ struct sysevent {
|
||||||
|
|
||||||
static struct sysevent events[MAX_SYS_EVENTS];
|
static struct sysevent events[MAX_SYS_EVENTS];
|
||||||
|
|
||||||
bool add_event(unsigned short id, bool oneshot, void (*handler))
|
bool add_event(unsigned short id, bool oneshot, void (*handler)(void *data))
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ bool add_event(unsigned short id, bool oneshot, void (*handler))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void remove_event(unsigned short id, void (*handler))
|
void remove_event(unsigned short id, void (*handler)(void *data))
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
|
@ -48,11 +48,9 @@ enum {
|
||||||
&& (CONFIG_NAND == NAND_IFP7XX)) \
|
&& (CONFIG_NAND == NAND_IFP7XX)) \
|
||||||
&& !defined(BOOTLOADER)
|
&& !defined(BOOTLOADER)
|
||||||
|
|
||||||
typedef bool (*storage_idle_notify)(void);
|
extern void register_storage_idle_func(void (*function)(void *data));
|
||||||
|
|
||||||
extern void register_storage_idle_func(storage_idle_notify function);
|
|
||||||
#if USING_STORAGE_CALLBACK
|
#if USING_STORAGE_CALLBACK
|
||||||
extern void unregister_storage_idle_func(storage_idle_notify function, bool run);
|
extern void unregister_storage_idle_func(void (*function)(void *data), bool run);
|
||||||
extern bool call_storage_idle_notifys(bool force);
|
extern bool call_storage_idle_notifys(bool force);
|
||||||
#else
|
#else
|
||||||
#define unregister_storage_idle_func(f,r)
|
#define unregister_storage_idle_func(f,r)
|
||||||
|
|
|
@ -38,8 +38,8 @@
|
||||||
#define EVENT_CLASS_BUFFERING 0x0400
|
#define EVENT_CLASS_BUFFERING 0x0400
|
||||||
#define EVENT_CLASS_GUI 0x0800
|
#define EVENT_CLASS_GUI 0x0800
|
||||||
|
|
||||||
bool add_event(unsigned short id, bool oneshot, void (*handler));
|
bool add_event(unsigned short id, bool oneshot, void (*handler)(void *data));
|
||||||
void remove_event(unsigned short id, void (*handler));
|
void remove_event(unsigned short id, void (*handler)(void *data));
|
||||||
void send_event(unsigned short id, void *data);
|
void send_event(unsigned short id, void *data);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue