summaryrefslogtreecommitdiff
path: root/apps/radio
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2014-03-14 23:15:16 +0100
committerThomas Martitz <kugel@rockbox.org>2014-03-14 23:36:30 +0100
commit470989bd708d9a425dbbf2d83b8fcbd0a8d0f488 (patch)
treef3bef37bc0f8ff7da4beddad9903209ced1bc25a /apps/radio
parent50f0dd80d660b332a1739e07a630c2cef1b678c6 (diff)
downloadrockbox-470989bd708d9a425dbbf2d83b8fcbd0a8d0f488.tar.gz
rockbox-470989bd708d9a425dbbf2d83b8fcbd0a8d0f488.zip
events: Rework event subsystem (add_event, send_event) to be more versatile.
add_event_ex is added that takes an extra user_data pointer. This pointer is passed to the callback (add_event and add_event_ex have slightly different callbacks types). All callbacks also get the event id passed. Events added with add_event_ex must be removed with remove_event_ex because the user_data pointer must match in addition to the callback pointer. On the other add_event is simplified to omit the oneshort parameter which was almost always false (still there with add_event_ex). As a side effect the ata_idle_notify callbacks are changed as well, they do not take a data parameter anymore which was always NULL anyway. This commit also adds some documentation to events.h Change-Id: I13e29a0f88ef908f175b376d83550f9e0231f772
Diffstat (limited to 'apps/radio')
-rw-r--r--apps/radio/radioart.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/apps/radio/radioart.c b/apps/radio/radioart.c
index 86a987c14f..283815167a 100644
--- a/apps/radio/radioart.c
+++ b/apps/radio/radioart.c
@@ -145,7 +145,7 @@ int radio_get_art_hid(struct dim *requested_dim)
145 return -1; 145 return -1;
146} 146}
147 147
148static void buffer_reset_handler(void *data) 148static void buffer_reset_handler(unsigned short id, void *data, void *user_data)
149{ 149{
150 buf = NULL; 150 buf = NULL;
151 for(int i=0;i<MAX_RADIOART_IMAGES;i++) 151 for(int i=0;i<MAX_RADIOART_IMAGES;i++)
@@ -156,7 +156,9 @@ static void buffer_reset_handler(void *data)
156 radioart[i].name[0] = '\0'; 156 radioart[i].name[0] = '\0';
157 } 157 }
158 158
159 (void)id;
159 (void)data; 160 (void)data;
161 (void)user_data;
160} 162}
161 163
162static int shrink_callback(int handle, unsigned hints, void* start, size_t old_size) 164static int shrink_callback(int handle, unsigned hints, void* start, size_t old_size)
@@ -183,7 +185,7 @@ static int shrink_callback(int handle, unsigned hints, void* start, size_t old_s
183 buf = start; 185 buf = start;
184 186
185 /* one-shot */ 187 /* one-shot */
186 add_event(BUFFER_EVENT_BUFFER_RESET, true, buffer_reset_handler); 188 add_event_ex(BUFFER_EVENT_BUFFER_RESET, true, buffer_reset_handler, NULL);
187 } 189 }
188 190
189 return BUFLIB_CB_OK; 191 return BUFLIB_CB_OK;
@@ -203,7 +205,7 @@ void radioart_init(bool entering_screen)
203 buffering_reset(core_get_data(handle), bufsize); 205 buffering_reset(core_get_data(handle), bufsize);
204 buf = core_get_data(handle); 206 buf = core_get_data(handle);
205 /* one-shot */ 207 /* one-shot */
206 add_event(BUFFER_EVENT_BUFFER_RESET, true, buffer_reset_handler); 208 add_event_ex(BUFFER_EVENT_BUFFER_RESET, true, buffer_reset_handler, NULL);
207 } 209 }
208 else /* init at startup */ 210 else /* init at startup */
209 { 211 {