summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurus Cuelenaere <mcuelenaere@gmail.com>2008-10-06 22:19:54 +0000
committerMaurus Cuelenaere <mcuelenaere@gmail.com>2008-10-06 22:19:54 +0000
commit20fb47ec778abe215ca69692434ff753596319e6 (patch)
tree69665298c0f58c07a1aa9677d33ad395ad9ccd13
parent34148b9a2173b0bd80b4acd18d23216ae54cb865 (diff)
downloadrockbox-20fb47ec778abe215ca69692434ff753596319e6.tar.gz
rockbox-20fb47ec778abe215ca69692434ff753596319e6.zip
Commit FS#9462: an semi-automatic plugin API documentation generator
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18722 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--docs/PLUGIN_API.new2564
-rw-r--r--utils/rockbox_api/README29
-rwxr-xr-xutils/rockbox_api/functions.php337
-rwxr-xr-xutils/rockbox_api/gen_html.php110
-rwxr-xr-xutils/rockbox_api/generate.php63
-rw-r--r--utils/rockbox_api/layout.css108
-rwxr-xr-xutils/rockbox_api/update.php119
7 files changed, 3330 insertions, 0 deletions
diff --git a/docs/PLUGIN_API.new b/docs/PLUGIN_API.new
new file mode 100644
index 0000000000..3388fa9412
--- /dev/null
+++ b/docs/PLUGIN_API.new
@@ -0,0 +1,2564 @@
1# Auto generated documentation by Rockbox plugin API generator v2
2# Made by Maurus Cuelenaere
3# __________ __ ___.
4# Open \______ \ ____ ____ | | _\_ |__ _______ ___
5# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
6# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
7# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
8# \/ \/ \/ \/ \/
9# $Id$
10#
11# Generated from http://svn.rockbox.org/viewvc.cgi/trunk/apps/plugin.h
12#
13# Format:
14# \group memory and strings
15# \conditions defined(HAVE_BACKLIGHT)
16# \param fmt
17# \return
18# \description
19# \see func1 func2 [S[apps/plugin.c]]
20#
21# Markup:
22# [W[wiki url]]
23# [S[svn url]]
24# [F[function]]
25# [[url]]
26# %BR%
27# =code=
28
29char *strcasestr (const char* phaystack, const char* pneedle)
30 \group strings and memory
31 \param phaystack
32 \param pneedle
33 \return
34 \description
35
36bool action_userabort(int timeout)
37 \group action handling
38 \param timeout
39 \return
40 \description
41
42size_t align_buffer(void **start, size_t size, size_t align)
43 \group kernel/ system
44 \conditions (CONFIG_CODEC == SWCODEC)
45 \param start
46 \param size
47 \param align
48 \return
49 \description
50
51const char *appsversion
52 \return version of the plugin API
53 \description
54
55void ata_sleep(void)
56 \group file
57 \description Give the disk some rest
58
59void ata_spin(void)
60 \group file
61 \description
62
63void ata_spindown(int seconds)
64 \group file
65 \param seconds
66 \description
67
68int atoi(const char *str)
69 \group strings and memory
70 \param str
71 \return
72 \description he atoi() function converts the initial portion of a string pointed to by str to int
73
74struct mp3entry* audio_current_track(void)
75 \group playback control
76 \return the mp3entry struct of the currently playing track
77 \description
78 \see [S[firmware/export/id3.h]]
79
80void audio_ff_rewind(long newtime)
81 \group playback control
82 \param newtime
83 \description
84
85void audio_flush_and_reload_tracks(void)
86 \group playback control
87 \description
88
89int audio_get_file_pos(void)
90 \group playback control
91 \return
92 \description
93
94bool audio_has_changed_track(void)
95 \group playback control
96 \return
97 \description
98
99void audio_next(void)
100 \group playback control
101 \description
102
103struct mp3entry* audio_next_track(void)
104 \group playback control
105 \return the mp3entry struct of the upcoming track
106 \description
107 \see [S[firmware/export/id3.h]]
108
109void audio_pause(void)
110 \group playback control
111 \description
112
113void audio_prev(void)
114 \group playback control
115 \description
116
117void audio_resume(void)
118 \group playback control
119 \description
120
121void audio_set_input_source(int source, unsigned flags)
122 \group sound
123 \conditions (CONFIG_CODEC == SWCODEC) && (INPUT_SRC_CAPS != 0)
124 \param source
125 \param flags
126 \description
127
128void audio_set_output_source(int monitor)
129 \group sound
130 \conditions (CONFIG_CODEC == SWCODEC) && (INPUT_SRC_CAPS != 0)
131 \param monitor
132 \description
133
134void audio_set_recording_gain(int left, int right, int type)
135 \group sound
136 \conditions (CONFIG_CODEC == SWCODEC) && (defined(HAVE_RECORDING))
137 \param left
138 \param right
139 \param type
140 \description
141
142int audio_status(void)
143 \group playback control
144 \return
145 \description
146
147void audio_stop(void)
148 \group playback control
149 \description
150
151void backlight_off(void)
152 \group backlight
153 \description Turns the backlight off
154
155void backlight_on(void)
156 \group backlight
157 \description Turns the backlight on
158
159void backlight_set_brightness(int val)
160 \group backlight
161 \conditions (defined(HAVE_BACKLIGHT_BRIGHTNESS))
162 \param val
163 \description
164
165void backlight_set_timeout(int index)
166 \group backlight
167 \param index 0 : backlight always off%BR%1 : no time out%BR%2 : 1s%BR%3 : 2s%BR%4 : 3s%BR%5 : 4s%BR%6 : 5s%BR%7 : 6s%BR%8 : 7s%BR%9 : 8s%BR%10 : 9s%BR%11 : 10s%BR%12 : 15s%BR%13 : 20s%BR%14 : 25s%BR%15 : 30s%BR%16 : 45s%BR%17 : 60s%BR%18 : 90s%BR%other : backlight always off
168 \description Set the backlight timeout
169
170void backlight_set_timeout_plugged(int index)
171 \conditions (CONFIG_CHARGING)
172 \param index
173 \description
174
175int battery_level(void)
176 \group power
177 \return battery level in percent
178 \description On the simulator, battery_level is always 75
179
180bool battery_level_safe(void)
181 \group power
182 \return
183 \description
184
185int battery_time(void)
186 \group power
187 \return
188 \description
189
190unsigned int battery_voltage(void)
191 \group power
192 \conditions (!defined(SIMULATOR))
193 \return
194 \description
195
196unsigned short *bidi_l2v( const unsigned char *str, int orientation )
197 \conditions !defined(HAVE_LCD_CHARCELLS)
198 \param str
199 \param orientation
200 \return
201 \description
202
203void bitswap(unsigned char *data, int length)
204 \group sound
205 \conditions (!defined(SIMULATOR)) && (CONFIG_CODEC != SWCODEC)
206 \param data
207 \param length
208 \description Swap the bits for each element of array =data= of size =length=
209
210int bufadvance(int handle_id, off_t offset)
211 \group buffering API
212 \conditions ((CONFIG_CODEC == SWCODEC))
213 \param handle_id
214 \param offset
215 \return
216 \description
217
218int bufalloc(const void *src, size_t size, enum data_type type)
219 \group buffering API
220 \conditions ((CONFIG_CODEC == SWCODEC))
221 \param src
222 \param size
223 \param type
224 \return
225 \description
226
227bool bufclose(int handle_id)
228 \group buffering API
229 \conditions ((CONFIG_CODEC == SWCODEC))
230 \param handle_id
231 \return
232 \description
233
234ssize_t bufcuttail(int handle_id, size_t size)
235 \group buffering API
236 \conditions ((CONFIG_CODEC == SWCODEC))
237 \param handle_id
238 \param size
239 \return
240 \description
241
242ssize_t bufgetdata(int handle_id, size_t size, void **data)
243 \group buffering API
244 \conditions ((CONFIG_CODEC == SWCODEC))
245 \param handle_id
246 \param size
247 \param data
248 \return
249 \description
250
251ssize_t bufgettail(int handle_id, size_t size, void **data)
252 \group buffering API
253 \conditions ((CONFIG_CODEC == SWCODEC))
254 \param handle_id
255 \param size
256 \param data
257 \return
258 \description
259
260int bufopen(const char *file, size_t offset, enum data_type type)
261 \group buffering API
262 \conditions ((CONFIG_CODEC == SWCODEC))
263 \param file
264 \param offset
265 \param type
266 \return
267 \description
268
269ssize_t bufread(int handle_id, size_t size, void *dest)
270 \group buffering API
271 \conditions ((CONFIG_CODEC == SWCODEC))
272 \param handle_id
273 \param size
274 \param dest
275 \return
276 \description
277
278int bufseek(int handle_id, size_t newpos)
279 \group buffering API
280 \conditions ((CONFIG_CODEC == SWCODEC))
281 \param handle_id
282 \param newpos
283 \return
284 \description
285
286ssize_t buf_get_offset(int handle_id, void *ptr)
287 \conditions ((CONFIG_CODEC == SWCODEC))
288 \param handle_id
289 \param ptr
290 \return
291 \description
292
293ssize_t buf_handle_offset(int handle_id)
294 \conditions ((CONFIG_CODEC == SWCODEC))
295 \param handle_id
296 \return
297 \description
298
299void buf_request_buffer_handle(int handle_id)
300 \conditions ((CONFIG_CODEC == SWCODEC))
301 \param handle_id
302 \description
303
304void buf_set_base_handle(int handle_id)
305 \conditions ((CONFIG_CODEC == SWCODEC))
306 \param handle_id
307 \description
308
309size_t buf_used(void)
310 \conditions ((CONFIG_CODEC == SWCODEC))
311 \return
312 \description
313
314void buttonlight_off(void)
315 \group button
316 \conditions (defined(HAVE_BUTTON_LIGHT))
317 \description
318
319void buttonlight_on(void)
320 \group button
321 \conditions (defined(HAVE_BUTTON_LIGHT))
322 \description
323
324void buttonlight_set_brightness(int val)
325 \group button
326 \conditions (defined(HAVE_BUTTON_LIGHT)) && (defined(HAVE_BUTTONLIGHT_BRIGHTNESS))
327 \param val
328 \description
329
330void buttonlight_set_timeout(int value)
331 \group button
332 \conditions (defined(HAVE_BUTTON_LIGHT))
333 \param value
334 \description
335
336void button_clear_queue(void)
337 \group button
338 \description Empty the button queue
339
340long button_get(bool block)
341 \group button
342 \param block If is set TRUE, button_get won't return until a key is pressed
343 \return a bitmask for which keys were pressed
344 \description
345
346intptr_t button_get_data(void)
347 \group button
348 \conditions (defined(HAVE_BUTTON_DATA))
349 \return
350 \description
351
352long button_get_w_tmo(int ticks)
353 \group button
354 \param ticks
355 \return a bitmask for which keys were pressed; if no key was pressed, return BUTTON_NONE
356 \description Wait for a key press for =ticks= ticks. (there are HZ ticks per second)
357
358bool button_hold(void)
359 \group button
360 \conditions (defined(HAS_BUTTON_HOLD))
361 \return
362 \description
363
364struct event_queue *button_queue
365 \conditions !defined(HAVE_LCD_CHARCELLS) )) && (defined(HAVE_LCD_ENABLE
366 \return
367 \description
368
369int button_queue_count(void)
370 \group button
371 \return
372 \description
373
374int button_status(void)
375 \group button
376 \return a bitmask for which keys are currently pressed
377 \description
378
379void cancel_cpu_boost(void)
380 \conditions (defined(HAVE_SCHEDULER_BOOSTCTRL))
381 \description Unboosts the CPU for the current thread
382
383const unsigned char *font_get_bits( struct font *pf, unsigned short char_code )
384 \conditions !defined(HAVE_LCD_CHARCELLS)
385 \param pf
386 \param char_code
387 \return
388 \description
389
390const unsigned char* utf8decode(const unsigned char *utf8, unsigned short *ucs)
391 \group unicode stuff
392 \param utf8
393 \param ucs
394 \return
395 \description
396
397const unsigned char *_ctype_
398 \group strings and memory
399 \return
400 \description
401
402bool charger_inserted(void)
403 \group power
404 \conditions (CONFIG_CHARGING)
405 \return
406 \description
407
408bool charging_state(void)
409 \group power
410 \conditions (CONFIG_CHARGING) && (CONFIG_CHARGING == CHARGING_MONITOR)
411 \return
412 \description
413
414int closedir(DIR* dir)
415 \group dir
416 \param dir
417 \return
418 \description The closedir() function closes the directory stream associated with =dir=. The directory stream descriptor dir is not available after this call.
419
420int codec_load_file(const char* codec, struct codec_api *api)
421 \group misc
422 \conditions (CONFIG_CODEC == SWCODEC)
423 \param codec
424 \param api
425 \return
426 \description
427
428int count_mp3_frames(int fd, int startpos, int filesize, void (*progressfunc)(int))
429 \group misc
430 \param fd
431 \param startpos
432 \param filesize
433 \param progressfunc
434 \return
435 \description
436
437void cpu_boost(bool on_off)
438 \conditions (!defined(SIMULATOR)) && (defined(HAVE_ADJUSTABLE_CPU_FREQ)) && !defined(CPU_BOOST_LOGGING)
439 \param on_off
440 \description Boosts the CPU if =on_off= is true, otherwise it unboosts the CPU
441
442void cpu_boost_(bool on_off,char*location,int line)
443 \conditions (!defined(SIMULATOR)) && (defined(HAVE_ADJUSTABLE_CPU_FREQ)) && (defined(CPU_BOOST_LOGGING))
444 \param on_off
445 \param charlocation
446 \param line
447 \description
448
449long *cpu_frequency
450 \conditions (!defined(SIMULATOR))
451 \return the current cpu frequency
452 \description
453
454char *create_numbered_filename(char *buffer, const char *path, const char *prefix, const char *suffix, int numberlen IF_CNFN_NUM_(, int *num))
455 \group file
456 \param buffer
457 \param path
458 \param prefix
459 \param suffix
460 \param num
461 \param numberlen
462 \return
463 \description
464
465struct thread_entry* create_thread(void (*function)(void), void* stack, size_t stack_size, unsigned flags, const char *name IF_PRIO(, int priority) IF_COP(, unsigned int core))
466 \group kernel/ system
467 \param function
468 \param stack
469 \param stack_size
470 \param flags
471 \param priority
472 \param core
473 \param name
474 \return its ID if context area could be allocated, else return -1
475 \description Creates a thread
476 \see [W[RockboxKernel#struct_thread_entry_create_threa]]
477
478int create_xing_header(int fd, long startpos, long filesize, unsigned char *buf, unsigned long num_frames, unsigned long rec_time, unsigned long header_template, void (*progressfunc)(int), bool generate_toc)
479 \group misc
480 \param fd
481 \param startpos
482 \param filesize
483 \param buf
484 \param num_frames
485 \param rec_time
486 \param header_template
487 \param progressfunc
488 \param generate_toc
489 \return
490 \description
491
492volatile long* current_tick
493 \group kernel/ system
494 \return
495 \description
496
497void debugf(const char *fmt, ...) ATTRIBUTE_PRINTF(1, 2)
498 \group misc
499 \conditions (defined(DEBUG) || defined(SIMULATOR))
500 \param fmt
501 \description Prints =fmt= in a printf-like fashion to STDERR
502
503long default_event_handler(long event)
504 \group kernel/ system
505 \param event
506 \return SYS_USB_CONNECTED and call usb_screen() if =event= equals to SYS_USB_CONNECTED, else do nothing and return 0
507 \description
508
509long default_event_handler_ex(long event, void (*callback)(void *), void *parameter)
510 \group kernel/ system
511 \param event
512 \param callback
513 \param parameter
514 \return
515 \description
516
517bool detect_flashed_ramimage(void)
518 \group Routines for the iriver_flash -plugin.
519 \conditions (defined(IRIVER_H100_SERIES))
520 \return
521 \description
522
523bool detect_flashed_romimage(void)
524 \group Routines for the iriver_flash -plugin.
525 \conditions (defined(IRIVER_H100_SERIES))
526 \return
527 \description
528
529bool detect_original_firmware(void)
530 \group Routines for the iriver_flash -plugin.
531 \conditions (defined(IRIVER_H100_SERIES))
532 \return
533 \description
534
535bool dir_exists(const char *path)
536 \group dir
537 \param path
538 \return
539 \description
540
541int do_menu(const struct menu_item_ex *menu, int *start_selected, struct viewport parent[NB_SCREENS], bool hide_bars)
542 \group menu
543 \param menu
544 \param start_selected
545 \param parent[NB_SCREENS]
546 \param hide_bars
547 \return
548 \description
549
550intptr_t dsp_configure(struct dsp_config *dsp, int setting, intptr_t value)
551 \group sound
552 \conditions (CONFIG_CODEC == SWCODEC)
553 \param dsp
554 \param setting
555 \param value
556 \return
557 \description
558
559void dsp_dither_enable(bool enable)
560 \group sound
561 \conditions (CONFIG_CODEC == SWCODEC)
562 \param enable
563 \description
564
565int dsp_process(struct dsp_config *dsp, char *dest, const char *src[], int count)
566 \group sound
567 \conditions (CONFIG_CODEC == SWCODEC)
568 \param dsp
569 \param dest
570 \param src[]
571 \param count
572 \return
573 \description
574
575void dsp_set_crossfeed(bool enable)
576 \group sound
577 \conditions (CONFIG_CODEC == SWCODEC)
578 \param enable
579 \description
580
581void dsp_set_eq(bool enable)
582 \group sound
583 \conditions (CONFIG_CODEC == SWCODEC)
584 \param enable
585 \description
586
587void event_init(struct event *e, unsigned int flags)
588 \conditions (defined(HAVE_EVENT_OBJECTS))
589 \param e
590 \param flags
591 \description
592
593void event_set_state(struct event *e, unsigned int state)
594 \conditions (defined(HAVE_EVENT_OBJECTS))
595 \param e
596 \param state
597 \description
598
599void event_wait(struct event *e, unsigned int for_state)
600 \conditions (defined(HAVE_EVENT_OBJECTS))
601 \param e
602 \param for_state
603 \description
604
605int fdprintf(int fd, const char *fmt, ...) ATTRIBUTE_PRINTF(2, 3)
606 \group file
607 \param fd
608 \param fmt
609 \return number of characters writen to =fd= or a negative value upon error
610 \description Write a formated string in the =fd=
611
612bool file_exists(const char *file)
613 \group file
614 \param file
615 \return
616 \description
617
618bool find_albumart(const struct mp3entry *id3, char *buf, int buflen)
619 \conditions (defined(HAVE_ALBUMART))
620 \param id3
621 \param buf
622 \param buflen
623 \return
624 \description
625
626unsigned long find_next_frame(int fd, long *offset, long max_offset, unsigned long last_header)
627 \group misc
628 \param fd
629 \param offset
630 \param max_offset
631 \param last_header
632 \return
633 \description
634
635void flush_icache(void)
636 \conditions (defined(CACHE_FUNCTIONS_AS_CALL))
637 \description
638
639struct font* font_get(int font)
640 \conditions !defined(HAVE_LCD_CHARCELLS)
641 \param font
642 \return the font structure for =font=
643 \description If the requested font isn't loaded/compiled-in, decrement the font number and try again.
644 \see [S[firmware/export/font.h]]
645
646int font_getstringsize(const unsigned char *str, int *w, int *h, int fontnumber)
647 \conditions !defined(HAVE_LCD_CHARCELLS)
648 \param str
649 \param w
650 \param h
651 \param fontnumber
652 \return
653 \description
654
655int font_get_width(struct font* pf, unsigned short char_code)
656 \conditions !defined(HAVE_LCD_CHARCELLS)
657 \param pf
658 \param char_code
659 \return
660 \description
661
662struct font* font_load(const char *path)
663 \conditions !defined(HAVE_LCD_CHARCELLS)
664 \param path
665 \return
666 \description Load font =path= and returns a struct font pointer for it
667 \see [S[firmware/export/font.h]]
668
669int get_action(int context, int timeout)
670 \group action handling
671 \param context
672 \param timeout
673 \return
674 \description
675
676const char *get_codec_filename(int cod_spec)
677 \group misc
678 \conditions (CONFIG_CODEC == SWCODEC)
679 \param cod_spec
680 \return
681 \description
682
683int get_custom_action(int context,int timeout, const struct button_mapping* (*get_context_map)(int))
684 \group action handling
685 \param context
686 \param timeout
687 \param get_context_map
688 \return
689 \description
690
691bool get_metadata(struct mp3entry* id3, int fd, const char* trackname)
692 \group misc
693 \conditions (CONFIG_CODEC == SWCODEC)
694 \param id3
695 \param fd
696 \param trackname
697 \return
698 \description
699
700struct tm* get_time(void)
701 \group misc
702 \return current time
703 \description
704 \see [S[firmware/include/time.h]]
705
706struct user_settings* global_settings
707 \group misc
708 \return the global_settings struct
709 \description
710 \see [S[apps/settings.h]]
711
712struct system_status *global_status
713 \group misc
714 \return the global_status struct
715 \description
716 \see [S[apps/settings.h]]
717
718void gui_scrollbar_draw(struct screen * screen, int x, int y, int width, int height, int items, int min_shown, int max_shown, unsigned flags)
719 \conditions !defined(HAVE_LCD_CHARCELLS)
720 \param screen
721 \param x
722 \param y
723 \param width
724 \param height
725 \param items
726 \param min_shown
727 \param max_shown
728 \param flags
729 \description
730
731void gui_synclist_add_item(struct gui_synclist * lists)
732 \group list
733 \param lists
734 \description
735
736void gui_synclist_del_item(struct gui_synclist * lists)
737 \group list
738 \param lists
739 \description
740
741bool gui_synclist_do_button(struct gui_synclist * lists, unsigned *action, enum list_wrap wrap)
742 \group list
743 \param lists
744 \param action
745 \param wrap
746 \return
747 \description
748
749void gui_synclist_draw(struct gui_synclist * lists)
750 \group list
751 \param lists
752 \description
753
754int gui_synclist_get_nb_items(struct gui_synclist * lists)
755 \group list
756 \param lists
757 \return
758 \description
759
760int gui_synclist_get_sel_pos(struct gui_synclist * lists)
761 \group list
762 \param lists
763 \return
764 \description
765
766void gui_synclist_init(struct gui_synclist * lists, list_get_name callback_get_item_name, void * data, bool scroll_all,int selected_size, struct viewport parent[NB_SCREENS])
767 \group list
768 \param lists
769 \param callback_get_item_name
770 \param data
771 \param scroll_all
772 \param selected_size
773 \param parent[NB_SCREENS]
774 \description
775
776void gui_synclist_limit_scroll(struct gui_synclist * lists, bool scroll)
777 \group list
778 \param lists
779 \param scroll
780 \description
781
782void gui_synclist_select_item(struct gui_synclist * lists, int item_number)
783 \group list
784 \param lists
785 \param item_number
786 \description
787
788void gui_synclist_set_icon_callback(struct gui_synclist * lists, list_get_icon icon_callback)
789 \group list
790 \param lists
791 \param icon_callback
792 \description
793
794void gui_synclist_set_nb_items(struct gui_synclist * lists, int nb_items)
795 \group list
796 \param lists
797 \param nb_items
798 \description
799
800void gui_synclist_set_title(struct gui_synclist *lists, char* title, int icon)
801 \group list
802 \param lists
803 \param title
804 \param icon
805 \description
806
807void gui_syncstatusbar_draw(struct gui_syncstatusbar * bars, bool force_redraw)
808 \group scroll bar
809 \param bars
810 \param force_redraw refreshes =bars= if true
811 \description Draws an initialized statusbar =bars= on the screen and refreshs it if =force_redraw= is true.
812 \see [S[apps/gui/statusbar.h]]
813
814enum yesno_res gui_syncyesno_run(const struct text_message * main_message, const struct text_message * yes_message, const struct text_message * no_message)
815 \group list
816 \param main_message
817 \param yes_message
818 \param no_message
819 \return
820 \description
821
822void i2c_begin(void)
823 \group MAS communication
824 \conditions (!defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)) && ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F))
825 \description
826
827void i2c_end(void)
828 \group MAS communication
829 \conditions (!defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)) && ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F))
830 \description
831
832int i2c_write(int address, const unsigned char* buf, int count )
833 \group MAS communication
834 \conditions (!defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)) && ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F))
835 \param address
836 \param buf
837 \param count
838 \return
839 \description
840
841void invalidate_icache(void)
842 \conditions (defined(CACHE_FUNCTIONS_AS_CALL))
843 \description
844
845unsigned char* iso_decode(const unsigned char *iso, unsigned char *utf8, int cp, int count)
846 \group unicode stuff
847 \param iso
848 \param utf8
849 \param cp
850 \param count
851 \return
852 \description
853
854bool is_backlight_on(bool ignore_always_off)
855 \param ignore_always_off
856 \return
857 \description
858
859int kbd_input(char* buffer, int buflen)
860 \group misc
861 \param buffer
862 \param buflen
863 \return FALSE upon success
864 \description Prompt for a string to be stored in =buffer= which is of length =buflen=
865
866void lcd_bitmap(const fb_data *src, int x, int y, int width, int height)
867 \group lcd
868 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH > 1)
869 \param src
870 \param x
871 \param y
872 \param width
873 \param height
874 \description Put a bitmap at given XY coordinates. Element src[i] is the binary representation of column number i of the bitmap read from bottom to top.
875
876void lcd_bitmap_part(const fb_data *src, int src_x, int src_y, int stride, int x, int y, int width, int height)
877 \group lcd
878 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH > 1)
879 \param src
880 \param src_x
881 \param src_y
882 \param stride
883 \param x
884 \param y
885 \param width
886 \param height
887 \description
888
889void lcd_bitmap_transparent(const fb_data *src, int x, int y, int width, int height)
890 \group lcd
891 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH == 16)
892 \param src
893 \param x
894 \param y
895 \param width
896 \param height
897 \description
898
899void lcd_bitmap_transparent_part(const fb_data *src, int src_x, int src_y, int stride, int x, int y, int width, int height)
900 \group lcd
901 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH == 16)
902 \param src
903 \param src_x
904 \param src_y
905 \param stride
906 \param x
907 \param y
908 \param width
909 \param height
910 \description
911
912void lcd_blit_grey_phase(unsigned char *values, unsigned char *phases, int bx, int by, int bwidth, int bheight, int stride)
913 \group lcd
914 \conditions !defined(HAVE_LCD_CHARCELLS) )) && ((LCD_DEPTH < 4) && !defined(SIMULATOR
915 \param values
916 \param phases
917 \param bx
918 \param by
919 \param bwidth
920 \param bheight
921 \param stride
922 \description
923
924void lcd_blit_mono(const unsigned char *data, int x, int by, int width, int bheight, int stride)
925 \group lcd
926 \conditions !defined(HAVE_LCD_CHARCELLS) )) && ((LCD_DEPTH < 4) && !defined(SIMULATOR
927 \param data
928 \param x
929 \param by
930 \param width
931 \param bheight
932 \param stride
933 \description
934
935void lcd_blit_yuv(unsigned char * const src[3], int src_x, int src_y, int stride, int x, int y, int width, int height)
936 \group lcd
937 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH == 16)
938 \param src[3]
939 \param src_x
940 \param src_y
941 \param stride
942 \param x
943 \param y
944 \param width
945 \param height
946 \description
947
948void lcd_clear_display(void)
949 \group lcd
950 \description Clears the LCD and the framebuffer
951
952void lcd_define_pattern(unsigned long ucs, const char *pattern)
953 \group lcd
954 \conditions (defined(HAVE_LCD_CHARCELLS))
955 \param ucs
956 \param pattern is a 8x8 pixelbitmap
957 \description Define a custom pattern for index =ucs=
958
959void lcd_double_height(bool on)
960 \group lcd
961 \conditions (defined(HAVE_LCD_CHARCELLS))
962 \param on
963 \description
964
965void lcd_drawline(int x1, int y1, int x2, int y2)
966 \group lcd
967 \conditions !defined(HAVE_LCD_CHARCELLS)
968 \param x1 X top coordinate
969 \param y1 Y top coordinate
970 \param x2 X bottom coordinate
971 \param y2 Y bottom coordinate
972 \description Draws a line at (=x1=, =y1=) -> (=x2=, =y2=) within current drawing mode
973
974void lcd_drawpixel(int x, int y)
975 \group lcd
976 \conditions !defined(HAVE_LCD_CHARCELLS)
977 \param x
978 \param y
979 \description Draws a pixel at (=x=, =y=) within current drawing mode
980
981void lcd_drawrect(int x, int y, int width, int height)
982 \group lcd
983 \conditions !defined(HAVE_LCD_CHARCELLS)
984 \param x
985 \param y
986 \param width
987 \param height
988 \description Draws a rectangle at (=x=, =y=) -> (=x= + =width=, =y= + =height=) within current drawing mode
989
990void lcd_fillrect(int x, int y, int width, int height)
991 \group lcd
992 \conditions !defined(HAVE_LCD_CHARCELLS)
993 \param x
994 \param y
995 \param width
996 \param height
997 \description Draws a filled rectangle at (=x=, =y=) -> (=x= + =width=, =y= + =height=) within current drawing mode
998
999fb_data* lcd_framebuffer
1000 \group lcd
1001 \conditions !defined(HAVE_LCD_CHARCELLS)
1002 \return
1003 \description Pointer to the framebuffer
1004 \see [S[firmware/export/lcd.h]]
1005
1006int lcd_getstringsize(const unsigned char *str, int *w, int *h)
1007 \group lcd
1008 \param str String
1009 \param w Width
1010 \param h Height
1011 \return Success or not
1012 \description Stores the width and height of the string in =w= and =h=
1013
1014fb_data* lcd_get_backdrop(void)
1015 \group lcd
1016 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH > 1)
1017 \return Pointer to framebuffer data
1018 \description Gets the current backdrop
1019 \see lcd_framebuffer
1020
1021unsigned lcd_get_background(void)
1022 \group lcd
1023 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH > 1)
1024 \return
1025 \description
1026
1027int lcd_get_drawmode(void)
1028 \group lcd
1029 \conditions !defined(HAVE_LCD_CHARCELLS)
1030 \return current LCD drawing mode
1031 \description
1032
1033unsigned lcd_get_foreground(void)
1034 \group lcd
1035 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH > 1)
1036 \return
1037 \description
1038
1039unsigned long lcd_get_locked_pattern(void)
1040 \group lcd
1041 \conditions (defined(HAVE_LCD_CHARCELLS))
1042 \return
1043 \description Get a locked pattern index
1044 \see [S[firmware/drivers/lcd-player.c]]
1045
1046void lcd_hline(int x1, int x2, int y)
1047 \group lcd
1048 \conditions !defined(HAVE_LCD_CHARCELLS)
1049 \param x1 X start coordinate
1050 \param x2 X end coordinate
1051 \param y Y coordinate
1052 \description Draws a horizontal line at (=x1=, =y=) -> (=x2=, =y=) within current drawing mode
1053
1054void lcd_icon(int icon, bool enable)
1055 \group lcd
1056 \conditions (defined(HAVE_LCD_CHARCELLS))
1057 \param icon
1058 \param enable
1059 \description
1060 \see [S[firmware/drivers/lcd-player.c]]
1061
1062void lcd_mono_bitmap(const unsigned char *src, int x, int y, int width, int height)
1063 \group lcd
1064 \conditions !defined(HAVE_LCD_CHARCELLS)
1065 \param src
1066 \param x
1067 \param y
1068 \param width
1069 \param height
1070 \description
1071
1072void lcd_mono_bitmap_part(const unsigned char *src, int src_x, int src_y, int stride, int x, int y, int width, int height)
1073 \group lcd
1074 \conditions !defined(HAVE_LCD_CHARCELLS)
1075 \param src
1076 \param src_x
1077 \param src_y
1078 \param stride
1079 \param x
1080 \param y
1081 \param width
1082 \param height
1083 \description
1084
1085void lcd_putc(int x, int y, unsigned long ucs)
1086 \group lcd
1087 \conditions (defined(HAVE_LCD_CHARCELLS))
1088 \param x
1089 \param y
1090 \param ucs
1091 \description Put character =ucs= at coordinates (=x=, =y=)
1092
1093void lcd_puts(int x, int y, const unsigned char *string)
1094 \group lcd
1095 \param x Row X
1096 \param y Column Y
1097 \param string
1098 \description Puts string on the LCD at row =x= and column =y=
1099
1100void lcd_putsxy(int x, int y, const unsigned char *string)
1101 \group lcd
1102 \param x X coordinate
1103 \param y Y coordinate
1104 \param string
1105 \description Puts string on the LCD at position (=x=, =y=)
1106
1107void lcd_puts_scroll(int x, int y, const unsigned char* string)
1108 \group lcd
1109 \param x Row X
1110 \param y Column Y
1111 \param string
1112 \description Puts scrolling string on the LCD at row =x= and column =y=. The scrolling style is STYLE_DEFAULT.
1113
1114void lcd_puts_scroll_style(int x, int y, const unsigned char* string, int style)
1115 \group lcd
1116 \conditions !defined(HAVE_LCD_CHARCELLS)
1117 \param x
1118 \param y
1119 \param string
1120 \param style
1121 \description Same as lcd_puts_style, but with scrolling is enabled
1122 \see lcd_puts_style
1123
1124void lcd_puts_style(int x, int y, const unsigned char *str, int style)
1125 \group lcd
1126 \conditions !defined(HAVE_LCD_CHARCELLS)
1127 \param x Row X
1128 \param y Column Y
1129 \param str
1130 \param style can be STYLE_DEFAULT for black text display or STYLE_INVERT for white text display
1131 \description Put a string at row =x= and column =y=
1132
1133void lcd_put_cursor(int x, int y, unsigned long ucs)
1134 \group lcd
1135 \conditions (defined(HAVE_LCD_CHARCELLS))
1136 \param x
1137 \param y
1138 \param ucs
1139 \description Put cursor at coordinates (=x=, =y=)
1140 \see [S[firmware/export/lcd.h]]
1141
1142void lcd_remote_bitmap(const fb_remote_data *src, int x, int y, int width, int height)
1143 \conditions (defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1))
1144 \param src
1145 \param x
1146 \param y
1147 \param width
1148 \param height
1149 \description
1150
1151void lcd_remote_bitmap_part(const fb_remote_data *src, int src_x, int src_y, int stride, int x, int y, int width, int height)
1152 \conditions (defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1))
1153 \param src
1154 \param src_x
1155 \param src_y
1156 \param stride
1157 \param x
1158 \param y
1159 \param width
1160 \param height
1161 \description
1162
1163void lcd_remote_clear_display(void)
1164 \group remote lcd
1165 \conditions (defined(HAVE_REMOTE_LCD))
1166 \description
1167
1168void lcd_remote_drawline(int x1, int y1, int x2, int y2)
1169 \group remote lcd
1170 \conditions (defined(HAVE_REMOTE_LCD))
1171 \param x1 X top coordinate
1172 \param y1 Y top coordinate
1173 \param x2 X bottom coordinate
1174 \param y2 Y bottom coordinate
1175 \description Draws a line at (=x1=, =y1=) -> (=x2=, =y2=) within current drawing mode
1176
1177void lcd_remote_drawpixel(int x, int y)
1178 \group remote lcd
1179 \conditions (defined(HAVE_REMOTE_LCD))
1180 \param x
1181 \param y
1182 \description Draws a pixel at (=x=, =y=) within current drawing mode
1183
1184void lcd_remote_drawrect(int x, int y, int nx, int ny)
1185 \group remote lcd
1186 \conditions (defined(HAVE_REMOTE_LCD))
1187 \param x
1188 \param y
1189 \param nx
1190 \param ny
1191 \description
1192
1193void lcd_remote_fillrect(int x, int y, int nx, int ny)
1194 \group remote lcd
1195 \conditions (defined(HAVE_REMOTE_LCD))
1196 \param x
1197 \param y
1198 \param nx
1199 \param ny
1200 \description
1201
1202fb_remote_data* lcd_remote_framebuffer
1203 \group remote lcd
1204 \conditions (defined(HAVE_REMOTE_LCD))
1205 \return
1206 \description
1207
1208int lcd_remote_getstringsize(const unsigned char *str, int *w, int *h)
1209 \group remote lcd
1210 \conditions (defined(HAVE_REMOTE_LCD))
1211 \param str String
1212 \param w Width
1213 \param h Height
1214 \return Success or not
1215 \description Stores the width and height of the string in =w= and =h=
1216
1217unsigned lcd_remote_get_background(void)
1218 \conditions (defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1))
1219 \return
1220 \description
1221
1222int lcd_remote_get_drawmode(void)
1223 \group remote lcd
1224 \conditions (defined(HAVE_REMOTE_LCD))
1225 \return
1226 \description
1227
1228unsigned lcd_remote_get_foreground(void)
1229 \conditions (defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1))
1230 \return
1231 \description
1232
1233void lcd_remote_hline(int x1, int x2, int y)
1234 \group remote lcd
1235 \conditions (defined(HAVE_REMOTE_LCD))
1236 \param x1
1237 \param x2
1238 \param y
1239 \description
1240
1241void lcd_remote_mono_bitmap(const unsigned char *src, int x, int y, int width, int height)
1242 \group remote lcd
1243 \conditions (defined(HAVE_REMOTE_LCD))
1244 \param src
1245 \param x
1246 \param y
1247 \param width
1248 \param height
1249 \description
1250
1251void lcd_remote_mono_bitmap_part(const unsigned char *src, int src_x, int src_y, int stride, int x, int y, int width, int height)
1252 \group remote lcd
1253 \conditions (defined(HAVE_REMOTE_LCD))
1254 \param src
1255 \param src_x
1256 \param src_y
1257 \param stride
1258 \param x
1259 \param y
1260 \param width
1261 \param height
1262 \description
1263
1264void lcd_remote_puts(int x, int y, const unsigned char *string)
1265 \group remote lcd
1266 \conditions (defined(HAVE_REMOTE_LCD))
1267 \param x
1268 \param y
1269 \param string
1270 \description
1271
1272void lcd_remote_putsxy(int x, int y, const unsigned char *string)
1273 \group remote lcd
1274 \conditions (defined(HAVE_REMOTE_LCD))
1275 \param x
1276 \param y
1277 \param string
1278 \description
1279
1280void lcd_remote_puts_scroll(int x, int y, const unsigned char* string)
1281 \group remote lcd
1282 \conditions (defined(HAVE_REMOTE_LCD))
1283 \param x
1284 \param y
1285 \param string
1286 \description
1287
1288void lcd_remote_puts_scroll_style(int x, int y, const unsigned char* string, int style)
1289 \group remote lcd
1290 \conditions (defined(HAVE_REMOTE_LCD))
1291 \param x
1292 \param y
1293 \param string
1294 \param style
1295 \description
1296
1297void lcd_remote_puts_style(int x, int y, const unsigned char *str, int style)
1298 \group remote lcd
1299 \conditions (defined(HAVE_REMOTE_LCD))
1300 \param x
1301 \param y
1302 \param str
1303 \param style
1304 \description
1305
1306void lcd_remote_setfont(int font)
1307 \group remote lcd
1308 \conditions (defined(HAVE_REMOTE_LCD))
1309 \param font
1310 \description Set default font
1311
1312void lcd_remote_set_background(unsigned background)
1313 \conditions (defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1))
1314 \param background
1315 \description
1316
1317void lcd_remote_set_contrast(int x)
1318 \group remote lcd
1319 \conditions (defined(HAVE_REMOTE_LCD))
1320 \param x
1321 \description
1322
1323void lcd_remote_set_drawmode(int mode)
1324 \group remote lcd
1325 \conditions (defined(HAVE_REMOTE_LCD))
1326 \param mode
1327 \description
1328
1329void lcd_remote_set_foreground(unsigned foreground)
1330 \conditions (defined(HAVE_REMOTE_LCD) && (LCD_REMOTE_DEPTH > 1))
1331 \param foreground
1332 \description
1333
1334void lcd_remote_stop_scroll(void)
1335 \group remote lcd
1336 \conditions (defined(HAVE_REMOTE_LCD))
1337 \description Stop all scrolling lines on the screen
1338
1339void lcd_remote_update(void)
1340 \group remote lcd
1341 \conditions (defined(HAVE_REMOTE_LCD))
1342 \description
1343
1344void lcd_remote_update_rect(int x, int y, int width, int height)
1345 \group remote lcd
1346 \conditions (defined(HAVE_REMOTE_LCD))
1347 \param x
1348 \param y
1349 \param width
1350 \param height
1351 \description
1352
1353void lcd_remote_vline(int x, int y1, int y2)
1354 \group remote lcd
1355 \conditions (defined(HAVE_REMOTE_LCD))
1356 \param x
1357 \param y1
1358 \param y2
1359 \description
1360
1361void lcd_remove_cursor(void)
1362 \group lcd
1363 \conditions (defined(HAVE_LCD_CHARCELLS))
1364 \description Remove the cursor from the screen
1365
1366void lcd_setfont(int font)
1367 \group lcd
1368 \conditions !defined(HAVE_LCD_CHARCELLS)
1369 \param font
1370 \description Set default font
1371
1372void lcd_set_backdrop(fb_data* backdrop)
1373 \group lcd
1374 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH > 1)
1375 \param backdrop Pointer to backdrop image
1376 \description Set the backdrop to =backdrop=
1377 \see lcd_framebuffer
1378
1379void lcd_set_background(unsigned foreground)
1380 \group lcd
1381 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH > 1)
1382 \param foreground
1383 \description
1384
1385void lcd_set_contrast(int x)
1386 \group lcd
1387 \param x Should be between =MIN_CONTRAST_SETTING= and =MAX_CONTRAST_SETTING=
1388 \description Sets LCD contrast to value =x=
1389
1390void lcd_set_drawmode(int mode)
1391 \group lcd
1392 \conditions !defined(HAVE_LCD_CHARCELLS)
1393 \param mode
1394 \description
1395
1396void lcd_set_enable_hook(void (*enable_hook)(void))
1397 \conditions !defined(HAVE_LCD_CHARCELLS) )) && (defined(HAVE_LCD_ENABLE
1398 \param enable_hook
1399 \description
1400
1401void lcd_set_foreground(unsigned foreground)
1402 \group lcd
1403 \conditions !defined(HAVE_LCD_CHARCELLS) && (LCD_DEPTH > 1)
1404 \param foreground
1405 \description
1406
1407void lcd_set_invert_display(bool yesno)
1408 \group lcd
1409 \conditions !defined(HAVE_LCD_CHARCELLS) )) && (defined(HAVE_LCD_INVERT
1410 \param yesno
1411 \description
1412
1413void lcd_stop_scroll(void)
1414 \group lcd
1415 \description Stop all scrolling lines on the screen
1416
1417void lcd_unlock_pattern(unsigned long ucs)
1418 \group lcd
1419 \conditions (defined(HAVE_LCD_CHARCELLS))
1420 \param ucs
1421 \description Unlock pattern of index =ucs=
1422
1423void lcd_update(void)
1424 \group lcd
1425 \description Pushes LCD framebuffer changes to the LCD
1426
1427void lcd_update_rect(int x, int y, int width, int height)
1428 \group lcd
1429 \conditions !defined(HAVE_LCD_CHARCELLS)
1430 \param x measured in pixels
1431 \param y measured in pixels
1432 \param width measured in pixels
1433 \param height measured in pixels
1434 \description Pushes LCD framebuffer changes to the LCD within rectangle (=x=, =y=) -> (=x= + =width=, =y= + =height=). Notice that the smallest vertical resolution in updates that the hardware supports is 8 pixels.
1435
1436void lcd_vline(int x, int y1, int y2)
1437 \group lcd
1438 \conditions !defined(HAVE_LCD_CHARCELLS)
1439 \param x X coordinate
1440 \param y1 Y start coordinate
1441 \param y2 Y end coordinate
1442 \description Draws a vertical line at (=x=, =y1=) -> (=x=, =y2=) within current drawing mode
1443
1444void lcd_yuv_set_options(unsigned options)
1445 \group lcd
1446 \conditions !defined(HAVE_LCD_CHARCELLS) )) && (LCD_DEPTH == 16) && (defined(TOSHIBA_GIGABEAT_F) || defined(SANSA_E200) || defined(SANSA_C200) || defined(IRIVER_H10) || defined(COWON_D2
1447 \param options
1448 \description
1449
1450void led(bool on)
1451 \param on
1452 \description
1453
1454void logf(const char *fmt, ...) ATTRIBUTE_PRINTF(1, 2)
1455 \group misc
1456 \conditions (defined(ROCKBOX_HAS_LOGF))
1457 \param fmt
1458 \description
1459
1460const unsigned long *audio_master_sampr_list
1461 \group sound
1462 \conditions (CONFIG_CODEC == SWCODEC)
1463 \return
1464 \description
1465
1466const unsigned long *hw_freq_sampr
1467 \group sound
1468 \conditions (CONFIG_CODEC == SWCODEC)
1469 \return
1470 \description
1471
1472const unsigned long *rec_freq_sampr
1473 \group sound
1474 \conditions (CONFIG_CODEC == SWCODEC) && (defined(HAVE_RECORDING))
1475 \return
1476 \description
1477
1478int mas_codec_readreg(int reg)
1479 \group MAS communication
1480 \conditions (!defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)) && ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F))
1481 \param reg
1482 \return
1483 \description
1484
1485int mas_codec_writereg(int reg, unsigned int val)
1486 \group MAS communication
1487 \conditions (!defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC)) && ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F))
1488 \param reg
1489 \param val
1490 \return
1491 \description
1492
1493int mas_readmem(int bank, int addr, unsigned long* dest, int len)
1494 \group MAS communication
1495 \conditions (!defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC))
1496 \param bank
1497 \param addr
1498 \param dest
1499 \param len
1500 \return
1501 \description
1502
1503int mas_readreg(int reg)
1504 \group MAS communication
1505 \conditions (!defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC))
1506 \param reg
1507 \return
1508 \description
1509
1510int mas_writemem(int bank, int addr, const unsigned long* src, int len)
1511 \group MAS communication
1512 \conditions (!defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC))
1513 \param bank
1514 \param addr
1515 \param src
1516 \param len
1517 \return
1518 \description
1519
1520int mas_writereg(int reg, unsigned int val)
1521 \group MAS communication
1522 \conditions (!defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC))
1523 \param reg
1524 \param val
1525 \return
1526 \description
1527
1528void *memchr(const void *s1, int c, size_t n)
1529 \group strings and memory
1530 \param s1
1531 \param c
1532 \param n
1533 \return
1534 \description
1535
1536int memcmp(const void *s1, const void *s2, size_t n)
1537 \group strings and memory
1538 \param s1
1539 \param s2
1540 \param n
1541 \return
1542 \description
1543
1544void* memcpy(void *out, const void *in, size_t n)
1545 \group strings and memory
1546 \param out
1547 \param in
1548 \param n
1549 \return
1550 \description Copies =n= bytes of data in memory from =in= to =out=
1551
1552void* memmove(void *out, const void *in, size_t n)
1553 \group strings and memory
1554 \param out
1555 \param in
1556 \param n
1557 \return
1558 \description
1559
1560void* memset(void *dst, int c, size_t length)
1561 \group strings and memory
1562 \param dst
1563 \param c
1564 \param length
1565 \return
1566 \description Fills a memory region with specified byte value =c=
1567
1568int mkdir(const char *name)
1569 \group dir
1570 \param name
1571 \return
1572 \description
1573
1574time_t mktime(struct tm *t)
1575 \group misc
1576 \conditions (CONFIG_RTC)
1577 \param t
1578 \return
1579 \description
1580
1581bool mp3info(struct mp3entry *entry, const char *filename)
1582 \group misc
1583 \param entry
1584 \param filename
1585 \return FALSE if successfull
1586 \description The given =entry= is filled in with whatever id3 info it could find about the given =filename=
1587
1588bool mp3_is_playing(void)
1589 \group sound
1590 \conditions (!defined(SIMULATOR))
1591 \return true if an mp3 is playing, else return false
1592 \description Note: a paused mp3 is considered as a playing mp3
1593
1594void mp3_play_data(const unsigned char* start, int size, void (*get_more)(unsigned char** start, size_t* size))
1595 \group sound
1596 \conditions (!defined(SIMULATOR))
1597 \param start points to the begining of the file to play
1598 \param size is the size to play
1599 \param get_more is a callback function
1600 \description Plays a chunk of an mp3 file
1601
1602void mp3_play_pause(bool play)
1603 \group sound
1604 \conditions (!defined(SIMULATOR))
1605 \param play
1606 \description If playback was paused and =play= is TRUE, resume playback. If playback isn't paused and =play= is FALSE, pause playback.
1607
1608void mp3_play_stop(void)
1609 \group sound
1610 \conditions (!defined(SIMULATOR))
1611 \description Stops playback
1612
1613unsigned long mpeg_get_last_header(void)
1614 \group playback control
1615 \conditions (!defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC))
1616 \return
1617 \description
1618
1619void mutex_init(struct mutex *m)
1620 \group kernel/ system
1621 \conditions (CONFIG_CODEC == SWCODEC)
1622 \param m
1623 \description
1624
1625void mutex_lock(struct mutex *m)
1626 \group kernel/ system
1627 \conditions (CONFIG_CODEC == SWCODEC)
1628 \param m
1629 \description
1630
1631void mutex_unlock(struct mutex *m)
1632 \group kernel/ system
1633 \conditions (CONFIG_CODEC == SWCODEC)
1634 \param m
1635 \description
1636
1637DIR* opendir(const char* name)
1638 \group dir
1639 \param name
1640 \return a pointer to the directory stream
1641 \description The opendir() function opens a directory stream corresponding to the directory name. The stream is positioned at the first entry in the directory.
1642
1643bool option_screen(const struct settings_list *setting, struct viewport parent[NB_SCREENS], bool use_temp_var, unsigned char* option_title)
1644 \group options
1645 \param setting
1646 \param parent[NB_SCREENS]
1647 \param use_temp_var
1648 \param option_title
1649 \return
1650 \description
1651
1652void pcm_apply_settings(void)
1653 \group sound
1654 \conditions (CONFIG_CODEC == SWCODEC)
1655 \description
1656
1657void pcm_calculate_peaks(int *left, int *right)
1658 \group sound
1659 \conditions (CONFIG_CODEC == SWCODEC)
1660 \param left
1661 \param right
1662 \description
1663
1664void pcm_calculate_rec_peaks(int *left, int *right)
1665 \group sound
1666 \conditions (CONFIG_CODEC == SWCODEC) && (defined(HAVE_RECORDING))
1667 \param left
1668 \param right
1669 \description
1670
1671void pcm_close_recording(void)
1672 \group sound
1673 \conditions (CONFIG_CODEC == SWCODEC) && (defined(HAVE_RECORDING))
1674 \description
1675
1676size_t pcm_get_bytes_waiting(void)
1677 \group sound
1678 \conditions (CONFIG_CODEC == SWCODEC)
1679 \return
1680 \description
1681
1682void pcm_init_recording(void)
1683 \group sound
1684 \conditions (CONFIG_CODEC == SWCODEC) && (defined(HAVE_RECORDING))
1685 \description
1686
1687bool pcm_is_paused(void)
1688 \group sound
1689 \conditions (CONFIG_CODEC == SWCODEC)
1690 \return true if playback is paused, else false
1691 \description
1692
1693bool pcm_is_playing(void)
1694 \group sound
1695 \conditions (CONFIG_CODEC == SWCODEC)
1696 \return true unless playback is paused
1697 \description
1698
1699void pcm_play_data(pcm_more_callback_type get_more, unsigned char* start, size_t size)
1700 \group sound
1701 \conditions (CONFIG_CODEC == SWCODEC)
1702 \param get_more
1703 \param start
1704 \param size
1705 \description
1706
1707void pcm_play_lock(void)
1708 \group sound
1709 \conditions (CONFIG_CODEC == SWCODEC)
1710 \description
1711
1712void pcm_play_pause(bool play)
1713 \group sound
1714 \conditions (CONFIG_CODEC == SWCODEC)
1715 \param play
1716 \description Pauses or unpauses the playback depending on the truth value of =play=
1717
1718void pcm_play_stop(void)
1719 \group sound
1720 \conditions (CONFIG_CODEC == SWCODEC)
1721 \description Stops the playback and empties the audio buffer unlike [F[pcm_play_pause]]
1722
1723void pcm_play_unlock(void)
1724 \group sound
1725 \conditions (CONFIG_CODEC == SWCODEC)
1726 \description
1727
1728void pcm_record_data(pcm_more_callback_type2 more_ready, void *start, size_t size)
1729 \group sound
1730 \conditions (CONFIG_CODEC == SWCODEC) && (defined(HAVE_RECORDING))
1731 \param more_ready
1732 \param start
1733 \param size
1734 \description
1735
1736void pcm_record_more(void *start, size_t size)
1737 \group sound
1738 \conditions (CONFIG_CODEC == SWCODEC) && (defined(HAVE_RECORDING))
1739 \param start
1740 \param size
1741 \description
1742
1743void pcm_set_frequency(unsigned int frequency)
1744 \group sound
1745 \conditions (CONFIG_CODEC == SWCODEC)
1746 \param frequency
1747 \description
1748
1749void pcm_stop_recording(void)
1750 \group sound
1751 \conditions (CONFIG_CODEC == SWCODEC) && (defined(HAVE_RECORDING))
1752 \description
1753
1754bool peak_meter_get_use_dbfs(void)
1755 \conditions ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F))
1756 \return 1 if the meter currently is displaying dBfs values, 0 if the meter is displaying percent values
1757 \description
1758
1759unsigned short peak_meter_scale_value(unsigned short val, int meterwidth)
1760 \conditions ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F))
1761 \param val is the volume value (range: 0 <= val < MAX_PEAK)
1762 \param meterwidth is the width of the meter in pixel
1763 \return a value between 0 and meterwidth
1764 \description Scales a peak value as read from the MAS to the range of =meterwidth=. The scaling is performed according to the scaling method (dBfs / linear) and the range (peak_meter_range_min .. peak_meter_range_max).
1765
1766void peak_meter_set_use_dbfs(bool use)
1767 \conditions ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F))
1768 \param use If =use= is 0 use linear percent scale, else use dBfs
1769 \description Specifies whether the values displayed are scaled as dBfs or as linear percent values
1770
1771int playlist_amount(void)
1772 \group playback control
1773 \return the number of tracks in current playlist
1774 \description
1775
1776int playlist_resume(void)
1777 \group playback control
1778 \return
1779 \description
1780
1781int playlist_start(int start_index, int offset)
1782 \group playback control
1783 \param start_index
1784 \param offset
1785 \return
1786 \description
1787
1788void* plugin_get_audio_buffer(size_t *buffer_size)
1789 \group misc
1790 \param buffer_size
1791 \return
1792 \description Steals =buffer_size= bytes from the available RAM, reducing the available buffer for audio buffering
1793
1794void* plugin_get_buffer(size_t *buffer_size)
1795 \group misc
1796 \param buffer_size this is the memory size left in plugin buffer upon return
1797 \return a pointer to the portion of the plugin buffer that is not already being used. If no plugin is loaded, returns the entire plugin buffer.
1798 \description
1799
1800char* plugin_get_current_filename(void)
1801 \group misc
1802 \return
1803 \description
1804
1805void plugin_iram_init(char *iramstart, char *iramcopy, size_t iram_size, char *iedata, size_t iedata_size)
1806 \group misc
1807 \conditions (defined(PLUGIN_USE_IRAM))
1808 \param iramstart
1809 \param iramcopy
1810 \param iram_size
1811 \param iedata
1812 \param iedata_size
1813 \description
1814
1815void plugin_tsr(bool (*exit_callback)(bool reenter))
1816 \group misc
1817 \param exit_callback
1818 \description
1819
1820void PREFIX(audio_play)(long offset)
1821 \group playback control
1822 \param audio_play
1823 \param offset
1824 \description
1825
1826int PREFIX(close)(int fd)
1827 \group file
1828 \param close
1829 \param fd
1830 \return 0 upon success
1831 \description The close() function will deallocate the file descriptor indicated by =fd=. To deallocate means to make the file descriptor available for return by subsequent calls to open() or other functions that allocate file descriptors.
1832
1833int PREFIX(creat)(const char *pathname)
1834 \group file
1835 \param creat
1836 \param pathname
1837 \return the file descriptor associated to this file
1838 \description Create a file with mode O_RDONLY, O_WRONLY or O_RDWR
1839
1840off_t PREFIX(filesize)(int fd)
1841 \group file
1842 \param filesize
1843 \param fd
1844 \return size of a file; upon error, returns -1
1845 \description
1846
1847int PREFIX(ftruncate)(int fd, off_t length)
1848 \group file
1849 \param ftruncate
1850 \param fd
1851 \param length
1852 \return
1853 \description Truncate file to the specified =length=
1854
1855off_t PREFIX(lseek)(int fd, off_t offset, int whence)
1856 \group file
1857 \param lseek
1858 \param fd
1859 \param offset
1860 \param whence
1861 \return
1862 \description The lseek() function sets the file pointer associated with the open file descriptor specified by =fd= as follows: If =whence= is SEEK_SET, the pointer is set to =offset= bytes. If =whence= is SEEK_CUR, the pointer is set to its current location plus =offset=. If =whence= is SEEK_END, the pointer is set to the size of the file plus =offset=.
1863
1864int PREFIX(open)(const char* pathname, int flags)
1865 \group file
1866 \param open
1867 \param pathname
1868 \param flags
1869 \return
1870 \description The open() function establishes the connection between a file and a file descriptor. It creates an open file description that refers to a file and a file descriptor that refers to that open file description. The file descriptor is used by other I/O functions to refer to that file.
1871
1872ssize_t PREFIX(read)(int fd, void* buf, size_t count)
1873 \group file
1874 \param read
1875 \param fd
1876 \param buf
1877 \param count
1878 \return
1879 \description The read() function attempts to read =count= bytes from the file associated with the open file descriptor, =fd=, into the buffer pointed to by =buf=
1880
1881int PREFIX(remove)(const char* pathname)
1882 \group file
1883 \param remove
1884 \param pathname
1885 \return
1886 \description remove() deletes a name from the filesystem. It calls unlink for files, and rmdir for directories.
1887
1888int PREFIX(rename)(const char* path, const char* newname)
1889 \group file
1890 \param rename
1891 \param path points to the pathname of the file to be renamed
1892 \param newname points to the new pathname of the file
1893 \return
1894 \description The rename() function changes the name of a file
1895
1896void PREFIX(sleep)(int ticks)
1897 \group kernel/ system
1898 \param sleep
1899 \param ticks
1900 \description Sleep a specified number of =ticks=, we have HZ ticks per second
1901
1902ssize_t PREFIX(write)(int fd, const void* buf, size_t count)
1903 \group file
1904 \param write
1905 \param fd
1906 \param buf
1907 \param count
1908 \return
1909 \description Write writes up to =count= bytes to the file referenced by the file descriptor =fd= from the buffer starting at =buf=
1910
1911void profile_func_enter(void *this_fn, void *call_site)
1912 \conditions (defined(RB_PROFILE))
1913 \param this_fn
1914 \param call_site
1915 \description
1916
1917void profile_func_exit(void *this_fn, void *call_site)
1918 \conditions (defined(RB_PROFILE))
1919 \param this_fn
1920 \param call_site
1921 \description
1922
1923void profile_thread(void)
1924 \conditions (defined(RB_PROFILE))
1925 \description
1926
1927void profstop(void)
1928 \conditions (defined(RB_PROFILE))
1929 \description
1930
1931void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *))
1932 \group misc
1933 \param base start of array
1934 \param nmemb number of elements
1935 \param size describes the size of each element of the array
1936 \param compar
1937 \description qsort sorts an array (begining at =base=) of =nmemb= objects
1938
1939void queue_delete(struct event_queue *q)
1940 \param q
1941 \description
1942
1943bool queue_empty(const struct event_queue *q)
1944 \conditions (CONFIG_CODEC == SWCODEC)
1945 \param q
1946 \return
1947 \description
1948
1949void queue_enable_queue_send(struct event_queue *q, struct queue_sender_list *send, struct thread_entry *owner)
1950 \conditions (CONFIG_CODEC == SWCODEC)
1951 \param q
1952 \param send
1953 \param owner
1954 \description
1955
1956void queue_init(struct event_queue *q, bool register_queue)
1957 \param q
1958 \param register_queue
1959 \description
1960
1961void queue_post(struct event_queue *q, long id, intptr_t data)
1962 \param q
1963 \param id
1964 \param data
1965 \description
1966
1967void queue_reply(struct event_queue *q, intptr_t retval)
1968 \conditions (CONFIG_CODEC == SWCODEC)
1969 \param q
1970 \param retval
1971 \description
1972
1973intptr_t queue_send(struct event_queue *q, long id, intptr_t data)
1974 \conditions (CONFIG_CODEC == SWCODEC)
1975 \param q
1976 \param id
1977 \param data
1978 \return
1979 \description
1980
1981void queue_wait(struct event_queue *q, struct queue_event *ev)
1982 \conditions (CONFIG_CODEC == SWCODEC)
1983 \param q
1984 \param ev
1985 \description
1986
1987void queue_wait_w_tmo(struct event_queue *q, struct queue_event *ev, int ticks)
1988 \param q
1989 \param ev
1990 \param ticks
1991 \description
1992
1993int rand(void)
1994 \group misc
1995 \return a pseudo random number between 0 and 0x7fffffff
1996 \description
1997
1998struct dirent* readdir(DIR* dir)
1999 \group dir
2000 \param dir
2001 \return a pointer to a dirent structure representing the next directory entry in the directory stream pointed to by =dir= or NULL on reaching the end-of-file or if an error occurred
2002 \description
2003
2004int read_bmp_file(const char* filename, struct bitmap *bm, int maxsize, int format)
2005 \conditions (defined(HAVE_LCD_BITMAP))
2006 \param filename
2007 \param bm
2008 \param maxsize
2009 \param format
2010 \return
2011 \description
2012
2013int read_line(int fd, char* buffer, int buffer_size)
2014 \group file
2015 \param fd
2016 \param buffer
2017 \param buffer_size
2018 \return number of bytes read (which may be larger than the number of bytes stored in buffer) or upon error -1 (and buffer contains whatever could be read)
2019 \description Read (up to) a line of text from =fd= into =buffer=. A line is terminated by a LF char. Neither LF nor CR chars are stored in buffer.
2020
2021void register_ata_idle_func(ata_idle_notify function)
2022 \group file
2023 \conditions (USING_ATA_CALLBACK)
2024 \param function
2025 \description
2026
2027void reload_directory(void)
2028 \group file
2029 \description
2030
2031void remote_backlight_off(void)
2032 \conditions (defined(HAVE_REMOTE_LCD))
2033 \description Turns the remote backlight off
2034
2035void remote_backlight_on(void)
2036 \conditions (defined(HAVE_REMOTE_LCD))
2037 \description Turns the remote backlight on
2038
2039void remote_backlight_set_timeout(int index)
2040 \conditions (defined(HAVE_REMOTE_LCD))
2041 \param index
2042 \description
2043
2044void remote_backlight_set_timeout_plugged(int index)
2045 \conditions (defined(HAVE_REMOTE_LCD)) && (CONFIG_CHARGING)
2046 \param index
2047 \description
2048
2049void reset_poweroff_timer(void)
2050 \description The function name pretty much says what it's supposed to do
2051
2052int rmdir(const char *name)
2053 \group dir
2054 \param name
2055 \return
2056 \description
2057
2058struct screen* screens[NB_SCREENS]
2059 \return
2060 \description
2061
2062void screen_clear_area(struct screen * display, int xstart, int ystart, int width, int height)
2063 \conditions !defined(HAVE_LCD_CHARCELLS)
2064 \param display
2065 \param xstart
2066 \param ystart
2067 \param width
2068 \param height
2069 \description
2070
2071void screen_dump_set_hook(void (*hook)(int fh))
2072 \conditions (defined(HAVE_LCD_BITMAP))
2073 \param hook
2074 \description
2075
2076bool search_albumart_files(const struct mp3entry *id3, const char *size_string, char *buf, int buflen)
2077 \conditions (defined(HAVE_ALBUMART))
2078 \param id3
2079 \param size_string
2080 \param buf Pointer to output
2081 \param buflen Max length for =buf=
2082 \return true if an album art was found
2083 \description Searches the the album art file for the given =id3= struct, appending the =size_string= to the search pattern (cover.bmp). It writes the complete path into =buf=, but not more bytes than =buflen=.
2084
2085void semaphore_init(struct semaphore *s, int max, int start)
2086 \conditions (defined(HAVE_SEMAPHORE_OBJECTS))
2087 \param s
2088 \param max
2089 \param start
2090 \description
2091
2092void semaphore_release(struct semaphore *s)
2093 \conditions (defined(HAVE_SEMAPHORE_OBJECTS))
2094 \param s
2095 \description
2096
2097void semaphore_wait(struct semaphore *s)
2098 \conditions (defined(HAVE_SEMAPHORE_OBJECTS))
2099 \param s
2100 \description
2101
2102const struct settings_list* find_setting(const void* variable, int *id)
2103 \group options
2104 \param variable
2105 \param id
2106 \return
2107 \description
2108
2109bool settings_parseline(char* line, char** name, char** value)
2110 \group file
2111 \param line
2112 \param name
2113 \param value
2114 \return false if no valid config entry was found
2115 \description Parse a line from a configuration file. The line format is: 'name: value'. Any whitespace before setting name or value (after ':') is ignored. A # as first non-whitespace character discards the whole line. Function sets pointers to null-terminated setting name and value.
2116
2117bool set_bool(const char* string, const bool* variable )
2118 \group options
2119 \param string
2120 \param variable
2121 \return
2122 \description
2123
2124bool set_bool_options(const char* string, const bool* variable, const char* yes_str, int yes_voice, const char* no_str, int no_voice, void (*function)(bool))
2125 \group options
2126 \param string
2127 \param variable
2128 \param yes_str
2129 \param yes_voice
2130 \param no_str
2131 \param no_voice
2132 \param function
2133 \return
2134 \description
2135
2136bool set_color(struct screen *display, char *title, unsigned *color, unsigned banned_color)
2137 \conditions (defined(HAVE_LCD_COLOR))
2138 \param display
2139 \param title
2140 \param color
2141 \param banned_color
2142 \return
2143 \description
2144
2145void set_current_file(char* path)
2146 \param path
2147 \description
2148
2149void set_dirfilter(int l_dirfilter)
2150 \param l_dirfilter
2151 \description
2152
2153bool set_int(const unsigned char* string, const char* unit, int voice_unit, const int* variable, void (*function)(int), int step, int min, int max, void (*formatter)(char*, size_t, int, const char*) )
2154 \group options
2155 \param string
2156 \param unit
2157 \param voice_unit
2158 \param variable
2159 \param function
2160 \param step
2161 \param min
2162 \param max
2163 \param formatter
2164 \return
2165 \description
2166
2167bool set_option(const char* string, const void* variable, enum optiontype type, const struct opt_items* options, int numoptions, void (*function)(int))
2168 \group options
2169 \param string
2170 \param variable
2171 \param type
2172 \param options
2173 \param numoptions
2174 \param function
2175 \return
2176 \description
2177
2178int set_time(const struct tm *tm)
2179 \group misc
2180 \param tm
2181 \return FALSE upon success
2182 \description Set current time
2183 \see get_time
2184
2185int show_logo(void)
2186 \return
2187 \description
2188
2189void simplelist_info_init(struct simplelist_info *info, char* title, int count, void* data)
2190 \group list
2191 \param info
2192 \param title
2193 \param count
2194 \param data
2195 \description
2196
2197bool simplelist_show_list(struct simplelist_info *info)
2198 \group list
2199 \param info
2200 \return
2201 \description
2202
2203void sim_lcd_ex_init(int shades, unsigned long (*getpixel)(int, int))
2204 \group special simulator hooks
2205 \conditions (defined(SIMULATOR)) && (defined(HAVE_LCD_BITMAP) && LCD_DEPTH < 8)
2206 \param shades
2207 \param getpixel
2208 \description
2209
2210void sim_lcd_ex_update_rect(int x, int y, int width, int height)
2211 \group special simulator hooks
2212 \conditions (defined(SIMULATOR)) && (defined(HAVE_LCD_BITMAP) && LCD_DEPTH < 8)
2213 \param x
2214 \param y
2215 \param width
2216 \param height
2217 \description
2218
2219int snprintf(char *buf, size_t size, const char *fmt, ...) ATTRIBUTE_PRINTF(3, 4)
2220 \group strings and memory
2221 \param buf
2222 \param size
2223 \param fmt
2224 \return the number of characters printed or that would have been printed if the output was truncated (not including the trailing '\0') upon success
2225 \description Write a formatted string =fmt= in buffer =buf= of size =size= (including the trailing '\0'). These support %c, %s, %d and %x only with the width and zero padding flag only.
2226
2227int sound_default(int setting)
2228 \group sound
2229 \param setting
2230 \return
2231 \description
2232
2233int sound_max(int setting)
2234 \group sound
2235 \param setting
2236 \return
2237 \description
2238
2239int sound_min(int setting)
2240 \group sound
2241 \param setting
2242 \return
2243 \description
2244
2245void sound_set(int setting, int value)
2246 \group sound
2247 \param setting
2248 \param value
2249 \description
2250
2251void sound_set_pitch(int pitch)
2252 \group playback control
2253 \conditions ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) || (CONFIG_CODEC == SWCODEC))
2254 \param pitch
2255 \description
2256
2257const char * sound_unit(int setting)
2258 \group sound
2259 \param setting
2260 \return
2261 \description
2262
2263int sound_val2phys(int setting, int value)
2264 \group sound
2265 \param setting
2266 \param value
2267 \return
2268 \description
2269
2270void splash(int ticks, const char *str)
2271 \param ticks
2272 \param str
2273 \description Display a formatted string in a box for =ticks= time. The string is formatted as with the printf function. (there are =HZ= ticks per second)
2274
2275void splashf(int ticks, const char *fmt, ...) ATTRIBUTE_PRINTF(2, 3)
2276 \param ticks
2277 \param fmt
2278 \description
2279
2280void srand(unsigned int seed)
2281 \group misc
2282 \param seed
2283 \description Seed the random number generator
2284
2285struct gui_syncstatusbar *statusbars
2286 \group scroll bar
2287 \return
2288 \description
2289
2290int strcasecmp(const char *, const char *)
2291 \group strings and memory
2292 \param
2293 \param
2294 \return an integer less than, equal to, or greater than zero if s1 is found, respectively, to be less than, to match, or be greater than s2
2295 \description The strcasecmp() function compares the two strings s1 and s2, ignoring the case of the characters
2296
2297char *strcat(char *s1, const char *s2)
2298 \group strings and memory
2299 \param s1
2300 \param s2
2301 \return =s1= concatenated with =s2=
2302 \description Appends =s2= to =s1=, replacing the NULL terminating character of =s1= and returns it
2303
2304char *strchr(const char *s, int c)
2305 \group strings and memory
2306 \param s
2307 \param c
2308 \return
2309 \description
2310
2311int strcmp(const char *, const char *)
2312 \group strings and memory
2313 \param
2314 \param
2315 \return
2316 \description strcmp() compares the string a to string b. If a sorts lexicographically after b, strcmp returns a number greater than zero. If the two strings match, strcmp returns zero. If a sorts lexicographically before b, strcmp returns a number less than zero.
2317
2318char* strcpy(char *dst, const char *src)
2319 \group strings and memory
2320 \param dst
2321 \param src
2322 \return the initial value of =dst=
2323 \description strcpy() copies the string pointed to by =src= (including the terminating null character) to the array pointed to by =dst=
2324
2325size_t strlen(const char *str)
2326 \group strings and memory
2327 \param str
2328 \return the character count
2329 \description The strlen() function works out the length of the string starting at =str= by counting characters until it reaches a null character.
2330
2331int strncasecmp(const char *s1, const char *s2, size_t n)
2332 \group strings and memory
2333 \param s1
2334 \param s2
2335 \param n
2336 \return
2337 \description Like strcasecmp() but only on the first =n= characters
2338 \see strcasecmp
2339
2340int strncmp(const char *, const char *, size_t)
2341 \group strings and memory
2342 \param
2343 \param
2344 \param size_t
2345 \return
2346 \description
2347
2348char* strncpy(char *dst, const char *src, size_t length)
2349 \group strings and memory
2350 \param dst
2351 \param src
2352 \param length
2353 \return the initial value of =dst=
2354 \description strncpy() copies not more than =length= characters from the string pointed to by =src= (including the terminating null character) to the array pointed to by =dst=. If the string pointed to by =src= is shorter than length characters, null characters are appended to the destination array until a total of =length= characters have been written.
2355
2356char * strrchr(const char *s, int c)
2357 \group strings and memory
2358 \param s
2359 \param c
2360 \return a pointer to the located character, or a null pointer if =c= does not occur in string.
2361 \description This function finds the last occurence of =c= (converted to a char) in the string pointed to by string (including the terminating null character)
2362
2363char* strtok_r(char *ptr, const char *sep, char **end)
2364 \group strings and memory
2365 \param ptr
2366 \param sep
2367 \param end
2368 \return
2369 \description
2370
2371int system_memory_guard(int newmode)
2372 \conditions (!defined(SIMULATOR))
2373 \param newmode
2374 \return
2375 \description
2376
2377bool tagcache_get_next(struct tagcache_search *tcs)
2378 \conditions (defined(HAVE_TAGCACHE))
2379 \param tcs
2380 \return
2381 \description
2382
2383long tagcache_get_numeric(const struct tagcache_search *tcs, int tag)
2384 \conditions (defined(HAVE_TAGCACHE))
2385 \param tcs
2386 \param tag
2387 \return
2388 \description
2389
2390bool tagcache_retrieve(struct tagcache_search *tcs, int idxid, int tag, char *buf, long size)
2391 \conditions (defined(HAVE_TAGCACHE))
2392 \param tcs
2393 \param idxid
2394 \param tag
2395 \param buf
2396 \param size
2397 \return
2398 \description
2399
2400bool tagcache_search(struct tagcache_search *tcs, int tag)
2401 \conditions (defined(HAVE_TAGCACHE))
2402 \param tcs
2403 \param tag
2404 \return
2405 \description
2406
2407bool tagcache_search_add_filter(struct tagcache_search *tcs, int tag, int seek)
2408 \conditions (defined(HAVE_TAGCACHE))
2409 \param tcs
2410 \param tag
2411 \param seek
2412 \return
2413 \description
2414
2415void tagcache_search_finish(struct tagcache_search *tcs)
2416 \conditions (defined(HAVE_TAGCACHE))
2417 \param tcs
2418 \description
2419
2420void tagcache_search_set_uniqbuf(struct tagcache_search *tcs, void *buffer, long length)
2421 \conditions (defined(HAVE_TAGCACHE))
2422 \param tcs
2423 \param buffer
2424 \param length
2425 \description
2426
2427void talk_disable(bool disable)
2428 \group misc
2429 \param disable
2430 \description
2431
2432struct thread_entry* threads
2433 \group kernel/ system
2434 \return
2435 \description
2436
2437void thread_exit(void)
2438 \group kernel/ system
2439 \description
2440
2441void thread_thaw(struct thread_entry *thread)
2442 \param thread
2443 \description
2444
2445void thread_wait(struct thread_entry *thread)
2446 \group kernel/ system
2447 \param thread
2448 \description
2449
2450bool timer_register(int reg_prio, void (*unregister_callback)(void), long cycles, int int_prio, void (*timer_callback)(void) IF_COP(, int core))
2451 \param reg_prio
2452 \param unregister_callback
2453 \param cycles
2454 \param int_prio
2455 \param core
2456 \param timer_callback
2457 \return
2458 \description
2459
2460bool timer_set_period(long count)
2461 \param count
2462 \return
2463 \description
2464
2465void timer_unregister(void)
2466 \description
2467
2468void touchscreen_set_mode(enum touchscreen_mode)
2469 \group button
2470 \conditions (defined(HAVE_TOUCHSCREEN))
2471 \param touchscreen_mode
2472 \description
2473
2474struct tree_context* tree_get_context(void)
2475 \return
2476 \description
2477
2478void trigger_cpu_boost(void)
2479 \conditions (defined(HAVE_SCHEDULER_BOOSTCTRL))
2480 \description Boosts the CPU for the current thread
2481
2482void unregister_ata_idle_func(ata_idle_notify function, bool run)
2483 \group file
2484 \conditions (USING_ATA_CALLBACK)
2485 \param function
2486 \param run
2487 \description
2488
2489void usb_acknowledge(long id)
2490 \param id
2491 \description
2492
2493bool usb_powered(void)
2494 \group power
2495 \conditions (defined(HAVE_USB_POWER))
2496 \return
2497 \description
2498
2499unsigned char* utf8encode(unsigned long ucs, unsigned char *utf8)
2500 \group unicode stuff
2501 \param ucs
2502 \param utf8
2503 \return
2504 \description
2505
2506unsigned long utf8length(const unsigned char *utf8)
2507 \group unicode stuff
2508 \param utf8
2509 \return
2510 \description
2511
2512int utf8seek(const unsigned char* utf8, int offset)
2513 \group unicode stuff
2514 \param utf8
2515 \param offset
2516 \return
2517 \description
2518
2519unsigned char* utf16BEdecode(const unsigned char *utf16, unsigned char *utf8, int count)
2520 \group unicode stuff
2521 \param utf16
2522 \param utf8
2523 \param count
2524 \return
2525 \description
2526
2527unsigned char* utf16LEdecode(const unsigned char *utf16, unsigned char *utf8, int count)
2528 \group unicode stuff
2529 \param utf16
2530 \param utf8
2531 \param count
2532 \return
2533 \description
2534
2535void viewport_set_defaults(struct viewport *vp, enum screen_type screen)
2536 \param vp
2537 \param screen
2538 \description
2539
2540int vsnprintf(char *buf, int size, const char *fmt, va_list ap)
2541 \group strings and memory
2542 \param buf
2543 \param size
2544 \param fmt
2545 \param ap
2546 \return
2547 \description
2548
2549void wheel_send_events(bool send)
2550 \conditions (defined(HAVE_WHEEL_POSITION))
2551 \param send
2552 \description
2553
2554int wheel_status(void)
2555 \conditions (defined(HAVE_WHEEL_POSITION))
2556 \return
2557 \description
2558
2559void yield(void)
2560 \group kernel/ system
2561 \description Let another thread run. This should be used as soon as you have to "wait" for something or similar, and also if you do anything that takes "a long time". This function is the entire foundation that our "cooperative multitasking" is based on. Use it!
2562 \see [W[RockboxKernel]]
2563
2564# END
diff --git a/utils/rockbox_api/README b/utils/rockbox_api/README
new file mode 100644
index 0000000000..1ed251c918
--- /dev/null
+++ b/utils/rockbox_api/README
@@ -0,0 +1,29 @@
1==============================
2generate.php
3==============================
4
5 php generate.php > output.txt
6
7--------------
8 Generates output.txt of apps/plugin.h
9
10==============================
11update.php
12==============================
13
14 php update.php input_file.txt > output.txt
15
16--------------
17 Updates input_file.txt with newer values of apps/plugin.h
18
19==============================
20gen_html.php
21==============================
22
23 php gen_html.php input_file.txt
24
25--------------
26 Generates HTML output of input_file.txt in output/*.html
27
28 Known issues:
29 * [F[function]] doesn't work with functions outside of the current .html \ No newline at end of file
diff --git a/utils/rockbox_api/functions.php b/utils/rockbox_api/functions.php
new file mode 100755
index 0000000000..0f34fc69e0
--- /dev/null
+++ b/utils/rockbox_api/functions.php
@@ -0,0 +1,337 @@
1<?
2$svn = "http://svn.rockbox.org/viewvc.cgi/trunk/";
3$wiki = "http://www.rockbox.org/wiki/";
4
5function func_sort($a, $b)
6{
7 $a = preg_replace('/^((unsigned|const|struct|enum) [^ ]*|[a-z0-9 \*_]*) [\*]?/i', '', $a);
8 $b = preg_replace('/^((unsigned|const|struct|enum) [^ ]*|[a-z0-9 \*_]*) [\*]?/i', '', $b);
9 return strnatcasecmp($a, $b);
10}
11
12function get_newest()
13{
14 global $svn;
15
16 $text = file_get_contents("../../apps/plugin.h");
17
18 $text = str_replace(array("\r\n", "\r"), "\n", $text);
19
20 /* Located plugin_api struct */
21 foreach(explode("\n", $text) as $line_nr => $line)
22 {
23 if(trim($line) == "struct plugin_api {")
24 {
25 $text = explode("\n", $text);
26 $text = array_slice($text, $line_nr+1);
27 break;
28 }
29 }
30
31 foreach($text as $line_nr => $line)
32 {
33 if(trim($line) == "};")
34 {
35 $text = array_slice($text, 0, $line_nr-1);
36 break;
37 }
38 }
39 /* Locating done */
40
41 /* Clean up stuff a bit .. */
42 for($i=0; $i<count($text); $i++)
43 $text[$i] = trim($text[$i]);
44
45
46 /* Fake preprocesser */
47 $ret = array();
48 $_groups = array();
49 $conditions = array();
50 $strip_next = 0;
51 $group = "";
52 for($i=0; $i<count($text); $i++)
53 {
54 $tmp = trim($text[$i]);
55
56 if(substr($tmp, 0, 1) == '#')
57 {
58 $tmp = trim(substr($tmp, 1));
59 if(strtolower(substr($tmp, 0, 2)) == "if")
60 {
61 if(strtolower(substr($tmp, 2, 3)) == "def")
62 $conditions[] = "defined(".substr($tmp, 6).")";
63 else if(strtolower(substr($tmp, 2, 4)) == "ndef")
64 $conditions[] = "!defined(".substr($tmp, 7).")";
65 else
66 {
67 while(substr($tmp, strlen($tmp)-1, 1) == "\\")
68 {
69 $i++;
70 $tmp = substr($tmp, 0, strlen($tmp)-1)." ".trim($text[$i]);
71 }
72
73 $conditions[] = substr($tmp, 3);
74 }
75 }
76 else if(strtolower(substr($tmp, 0, 4)) == "elif")
77 {
78 while(substr($tmp, strlen($tmp)-1, 1) == "\\")
79 {
80 $i++;
81 $tmp = substr($tmp, 0, strlen($tmp)-1)." ".trim($text[$i]);
82 }
83 $conditions[count($conditions)-1] = substr($tmp, 5);
84 }
85 else if(strtolower(substr($tmp, 0, 4)) == "else")
86 $conditions[count($conditions)-1] = "!( ".$conditions[count($conditions)-1]." )";
87 else if(strtolower(substr($tmp, 0, 5)) == "endif")
88 array_pop($conditions);
89 }
90 else if(strlen($tmp) == 0)
91 $group = "";
92 else if(substr($tmp, 0, 2) == "/*")
93 {
94 while(strpos($tmp, "*/") === false)
95 {
96 $i++;
97 $tmp .= " ".trim($text[$i]);
98 }
99 $group = explode("/*", trim($tmp));
100 $group = explode("*/", $group[1]);
101 $group = trim($group[0]);
102 }
103 else
104 {
105 while(strpos($tmp, ";") === false)
106 {
107 $i++;
108 $tmp .= " ".trim($text[$i]);
109 }
110
111 /* Replace those (*func)(int args) with func(int args) */
112 $tmp = preg_replace('/\(\*([^\)]*)\)/i', '\1', $tmp, 1);
113 $tmp = substr($tmp, 0, strlen($tmp)-1);
114 $ret[$tmp] = array("func" => $tmp, "cond" => "(".implode(") && (", $conditions).")", "group" => $group);
115 }
116 }
117
118 uksort($ret, "func_sort");
119
120 return $ret;
121}
122
123function parse_documentation($data)
124{
125 $data = explode("\n", $data);
126
127 $ret = array();
128 $cur_func = "";
129 foreach($data as $line)
130 {
131 if(substr($line, 0, 1) == "#")
132 continue;
133 else if(substr($line, 0, 4) == " ")
134 {
135 $tmp = trim($line);
136 if(strpos($tmp, " ") !== false)
137 $tmp = array(substr($tmp, 1, strpos($tmp, " ")-1), substr($tmp, strpos($tmp, " ")) );
138 else
139 $tmp = array(substr($tmp, 1), "");
140
141 $ret[$cur_func][$tmp[0]][] = $tmp[1];
142 }
143 else if(strlen($line) == 0)
144 continue;
145 else
146 $cur_func = substr($line, 0);
147 }
148
149 $_ret = array();
150 foreach($ret as $func => $el)
151 {
152 if(isset($el["group"]))
153 $group = trim($el["group"][0]);
154 else
155 $group = "misc";
156
157 $_ret[$group][$func] = $el;
158 }
159
160 return $_ret;
161}
162
163function get_func($func)
164{
165 $func = preg_replace('/^((unsigned|const|struct|enum) [^ ]*|[a-z0-9 \*_]*) [\*]?/i', '', $func);
166 if(strpos($func, "PREFIX") !== false)
167 $func = substr($func, 0, strrpos($func, "("));
168 else if(strpos($func, "(") !== false)
169 $func = substr($func, 0, strpos($func, "("));
170
171 return $func;
172}
173
174function get_args($func)
175{
176 /* Check if this _is_ a function */
177 if(strpos($func, "(") === false)
178 return array();
179
180 /* Get rid of return value */
181 $func = preg_replace('/^((unsigned|const|struct|enum) [^ ]*|[a-z0-9 \*_]*) [\*]?/i', '', $func);
182
183 /* Get rid of function name */
184 if(strpos($func, "(") !== false)
185 $func = substr($func, strpos($func, "("));
186
187 /* Get rid of ATTRIBUTE_PRINTF */
188 if(strpos($func, "ATTRIBUTE_PRINTF") !== false)
189 $func = substr($func, 0, strpos($func, "ATTRIBUTE_PRINTF"));
190
191 $level = 0;
192 $args = array();
193 $buffer = "";
194 for($i=0; $i<strlen($func); $i++)
195 {
196 switch($func{$i})
197 {
198 case "(":
199 $level++;
200 if($level > 1)
201 $buffer .= "(";
202 break;
203 case ")":
204 $level--;
205 if($level > 0)
206 {
207 $buffer .= ")";
208 break;
209 }
210 case ",":
211 if($level <= 1)
212 {
213 if(strpos($buffer, "(,") !== false)
214 {
215 $tmp = array();
216 preg_match_all('/[^ ]*, [^)]*\)/', $buffer, $tmp);
217 $tmp = $tmp[0];
218 foreach($tmp as $el)
219 {
220 if(strlen($el) > 0)
221 $args[] = trim($el);
222 }
223 $tmp = preg_replace('/[^ ]*, [^)]*\)/', '', $buffer);
224 $args[] = trim($tmp);
225 }
226 else
227 $args[] = trim($buffer);
228 $buffer = "";
229 }
230 else
231 $buffer .= ",";
232 break;
233 default:
234 $buffer .= $func{$i};
235 break;
236 }
237 }
238
239 /* Filter out void */
240 for($i=0; $i<count($args); $i++)
241 {
242 if($args[$i] == "void")
243 unset($args[$i]);
244 }
245
246 return $args;
247}
248
249function get_return($func)
250{
251 $ret = array();
252 preg_match('/^((unsigned|const|struct|enum) [^ ]*|[a-z0-9 \*_]*) [\*]?/i', $func, $ret);
253
254 if(trim($ret[0]) == "void")
255 return false;
256 else
257 return trim($ret[0]);
258}
259
260function split_var($var)
261{
262 if(strpos($var, "(,") !== false)
263 {
264 $p1 = substr($var, 0, strrpos($var, " "));
265 $p2 = substr($var, strrpos($var, " "));
266 $p2 = substr($p2, 0, strlen($p2)-1);
267 }
268 else if(strpos($var, "(*") !== false)
269 {
270 $p2 = array();
271 preg_match('/\(\*\w*\)/', $var, $p2);
272 $p2 = $p2[0];
273
274 $p1 = substr($var, strpos($var, $p2));
275 $p2 = substr($p2, 2, strlen($p2)-3);
276 }
277 else
278 {
279 $p1 = substr($var, 0, strrpos($var, " "));
280 $p2 = substr($var, strrpos($var, " "));
281 }
282
283 if(strpos($p2, "*") !== false)
284 {
285 for($i=0; $i<substr_count($p2, "*"); $i++)
286 $p1 .= "*";
287 $p2 = str_replace("*", "", $p2);
288 }
289
290 return array(trim($p1), trim($p2));
291}
292
293function _simplify($text)
294{
295 $text = ereg_replace('\(!\( (.*)[ ]?\)\)', '!\1', $text);
296 $text = ereg_replace('\(\(([^ ])\)\)', '\1', $text);
297 return $text;
298}
299
300function clean_func($func)
301{
302 $func = str_replace(array(" ", " "), " ", $func);
303 $func = str_replace(" ", " ", $func);
304 return $func;
305}
306
307function do_see_markup($data)
308{
309 $ret = array();
310 foreach($data as $el)
311 {
312 $el = trim($el);
313
314 if(substr($el, 0, 1) != "[")
315 $ret[] = do_markup("[F[".$el."]]");
316 else
317 $ret[] = do_markup($el);
318 }
319
320 return implode(" &amp; ", $ret);
321}
322
323function do_markup($data)
324{
325 global $svn, $wiki;
326
327 $data = ereg_replace('=([^=]*)=', '<code>\1</code>', $data);
328 $data = ereg_replace('\[W\[([^#\[]*)([^\[]*)\]\]', '<a href="'.$wiki.'\1\2">\1</a>', $data);
329 $data = ereg_replace('\[S\[([^\[]*)\]\]', '<a href="'.$svn.'\1?content-type=text%2Fplain">\1</a>', $data);
330 $data = ereg_replace('\[F\[([^\[]*)\]\]', '<a href="#\1">\1</a>', $data);
331 $data = ereg_replace('\[\[([^#\[]*)([^\[]*)\]\]', '<a href="\1\2">\1</a>', $data);
332 $data = str_replace("%BR%", "<br />", $data);
333 $data = nl2br($data);
334
335 return $data;
336}
337?>
diff --git a/utils/rockbox_api/gen_html.php b/utils/rockbox_api/gen_html.php
new file mode 100755
index 0000000000..34e124f411
--- /dev/null
+++ b/utils/rockbox_api/gen_html.php
@@ -0,0 +1,110 @@
1#!/usr/bin/php
2<?
3require_once("functions.php");
4
5function get_group($text)
6{
7 return str_replace(array(" ", "/"), "_", $text);
8}
9
10$input = file_get_contents($argv[1]);
11
12$inh = parse_documentation($input);
13
14@mkdir("output");
15
16$h = fopen("output/index.html", "w");
17
18fwrite($h, '<html><head><link href="layout.css" rel="stylesheet" type="text/css" /><title>Plugin API - INDEX</title></head><body>');
19
20fwrite($h, "<h1>Plugin API reference</h1>");
21fwrite($h, "<ul>");
22
23foreach($inh as $group_name => $group)
24{
25 if(strlen($group_name) > 0)
26 {
27 fwrite($h, '<li>'.ucwords($group_name)."<ul>");
28
29 foreach($group as $el_name => $el)
30 fwrite($h, "<li><a href=\"".get_group($group_name).".html#".get_func($el_name)."\">".$el_name."</a></li>");
31
32 fwrite($h, "</ul></li>");
33 }
34}
35fwrite($h, "</ul></body></html>");
36
37fclose($h);
38
39$menu = '<ul><li><a href="index.html">INDEX</a></li><ul>';
40$_menu = array();
41foreach($inh as $group_name => $group)
42{
43 if(strlen($group_name) > 0)
44 $_menu[strtolower($group_name)] = '<li><a href="'.get_group($group_name).'.html">'.ucwords($group_name).'</a></li>';
45}
46
47ksort($_menu);
48$menu .= implode("\n", $_menu);
49$menu .= "</ul></ul>";
50
51foreach($inh as $group_name => $group)
52{
53 $h = fopen("output/".get_group($group_name).".html", "w");
54
55 fwrite($h, '<html><head><link href="layout.css" rel="stylesheet" type="text/css" /><title>Plugin API - '.ucwords($group_name).'</title></head><body>');
56 fwrite($h, '<div id="menu">'.ucwords($menu).'</div>');
57 fwrite($h, '<div id="content">');
58 fwrite($h, '<a link="top"></a>');
59
60 fwrite($h, "<h2>".ucwords($group_name)."</h2>");
61 fwrite($h, '<span class="group">');
62 foreach($group as $func_name => $func)
63 {
64 fwrite($h, '<a id="'.get_func($func_name).'"></a>');
65
66 fwrite($h, "<h3>$func_name</h3>");
67
68 if(strlen($func["description"][0]) > 0)
69 fwrite($h, do_markup($func["description"][0])."<br /><br />");
70
71 if(isset($func["param"]))
72 {
73 $params = "";
74 foreach($func["param"] as $param)
75 {
76 $param = trim($param);
77 $p1 = substr($param, 0, strpos($param, " "));
78 $p2 = substr($param, strpos($param, " "));
79 if(strlen($p1) > 0 && strlen($p2) > 0)
80 $params .= '<dt>'.$p1.'</dt><dd> '.do_markup($p2).'</dd>';
81 }
82
83 if(strlen($params) > 0)
84 {
85 fwrite($h, '<span class="extra">Parameters:</span><dl>');
86 fwrite($h, $params);
87 fwrite($h, "</dl>");
88 }
89 }
90
91 if(isset($func["return"]) && strlen($func["return"][0]) > 0)
92 fwrite($h, '<span class="extra">Returns:</span> '.do_markup($func["return"][0]).'<br /><br />');
93
94 if(isset($func["conditions"]))
95 fwrite($h, '<span class="extra">Conditions:</span> '.$func["conditions"][0].'<br /><br />');
96
97 if(isset($func["see"]))
98 fwrite($h, '<span class="see">Also see '.do_see_markup(explode(" ", trim($func["see"][0]))).'</span><br /><br />');
99
100 fwrite($h, '<a href="#top" class="top">To top</a><hr />');
101 }
102 fwrite($h, "</span>");
103
104 fwrite($h, "</div></body></html>");
105
106 fclose($h);
107}
108
109copy("layout.css", "output/layout.css");
110?> \ No newline at end of file
diff --git a/utils/rockbox_api/generate.php b/utils/rockbox_api/generate.php
new file mode 100755
index 0000000000..29dd69588a
--- /dev/null
+++ b/utils/rockbox_api/generate.php
@@ -0,0 +1,63 @@
1#!/usr/bin/php
2<?
3require_once("functions.php");
4
5echo '# Auto generated documentation by Rockbox plugin API generator v2'."\n";
6echo '# Made by Maurus Cuelenaere'."\n";
7echo <<<MOO
8# __________ __ ___.
9# Open \______ \ ____ ____ | | _\_ |__ _______ ___
10# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
11# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
12# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
13# \/ \/ \/ \/ \/
14# \$Id$
15#
16# Generated from $svn\x61pps/plugin.h
17#
18# Format:
19# \\group memory and strings
20# \\conditions defined(HAVE_BACKLIGHT)
21# \\param fmt
22# \\return
23# \\description
24# \\see func1 func2 [S[apps/plugin.c]]
25#
26# Markup:
27# [W[wiki url]]
28# [S[svn url]]
29# [F[function]]
30# [[url]]
31# %BR%
32# =code=
33
34MOO;
35
36foreach(get_newest() as $line)
37{
38 echo "\n".clean_func($line["func"])."\n";
39
40 if(strlen($line["group"]) > 0)
41 echo " \\group ".$line["group"]."\n";
42
43 if(strlen($line["cond"]) > 2)
44 echo " \\conditions "._simplify($line["cond"])."\n";
45
46 foreach(get_args($line["func"]) as $param)
47 {
48 if(strlen($param) > 0 && $param != "...")
49 {
50 $param = split_var($param);
51 $param = $param[1];
52 echo " \\param $param\n";
53 }
54 }
55
56 if(get_return($line["func"]) !== false)
57 echo " \\return\n";
58
59 echo " \\description\n";
60}
61
62echo "\n# END\n";
63?> \ No newline at end of file
diff --git a/utils/rockbox_api/layout.css b/utils/rockbox_api/layout.css
new file mode 100644
index 0000000000..09e7391197
--- /dev/null
+++ b/utils/rockbox_api/layout.css
@@ -0,0 +1,108 @@
1body
2{
3 font-family: Verdana;
4}
5
6li
7{
8 font-size: 10px;
9}
10
11code
12{
13 color: #00A;
14}
15
16.see, .see a
17{
18 color: #559;
19}
20
21.group
22{
23 font-size: 12px;
24}
25
26.group h3
27{
28 font-size: 14px;
29}
30
31h2
32{
33 color: #D11;
34}
35
36a
37{
38 color: blue;
39}
40
41a:hover
42{
43 color: red;
44}
45
46.top
47{
48 font-size: 10px;
49 color: green;
50}
51
52.extra
53{
54 font-weight: bold;
55 color: #992;
56}
57
58dl
59{
60 border-left: 1px solid #CCC;
61 padding-left: 10px;
62}
63
64dt, dd
65{
66 font-style: normal;
67}
68
69dd
70{
71 margin-left: 12em;
72}
73
74dt
75{
76 clear: left;
77 display: block;
78 float: left;
79 font-weight: bold;
80 width: 12em;
81}
82
83hr
84{
85 border: 1px solid #CCCCCC;
86 margin: 1em 0;
87}
88
89#content
90{
91 margin-left: 14em;
92 margin-right: 1em;
93 padding: 0;
94}
95
96#menu
97{
98 position: fixed;
99 top: 0px;
100 left: 0px;
101 width: 14em;
102 padding: 0;
103}
104
105#menu ul
106{
107 padding-left: 1em;
108} \ No newline at end of file
diff --git a/utils/rockbox_api/update.php b/utils/rockbox_api/update.php
new file mode 100755
index 0000000000..ef4a456d12
--- /dev/null
+++ b/utils/rockbox_api/update.php
@@ -0,0 +1,119 @@
1#!/usr/bin/php
2<?
3require_once("functions.php");
4
5$input = file_get_contents($argv[1]);
6
7$input = parse_documentation($input);
8
9foreach($input as $rootname => $rootel)
10{
11 foreach($rootel as $name => $el)
12 $input[$name] = $el;
13 unset($input[$rootname]);
14}
15
16$new = get_newest();
17
18foreach($new as $name => $el)
19{
20 unset($new[$name]);
21 $name = clean_func($el["func"]);
22
23 $new[$name] = array(
24 "group" => array($el["group"]),
25 "description" => array("")
26 );
27
28 if(strlen($el["cond"]) > 2)
29 $new[$name]["conditions"][0] = $el["cond"];
30
31 $args = get_args($el["func"]);
32 if(count($args) > 0)
33 {
34 foreach($args as $n => $arg)
35 {
36 $tmp = split_var($arg);
37 $args[$n] = $tmp[1];
38 }
39 $new[$name]["param"] = $args;
40 }
41
42 if(get_return($el["func"]) !== false)
43 $new[$name]["return"][0] = "";
44}
45
46
47$merged = array_merge($new, $input);
48
49uksort($merged, "func_sort");
50
51echo '# Auto generated documentation by Rockbox plugin API generator v2'."\n";
52echo '# Made by Maurus Cuelenaere'."\n";
53echo <<<MOO
54# __________ __ ___.
55# Open \______ \ ____ ____ | | _\_ |__ _______ ___
56# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
57# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
58# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
59# \/ \/ \/ \/ \/
60# \$Id$
61#
62# Generated from $svn\x61pps/plugin.h
63#
64# Format:
65# \\group memory and strings
66# \\conditions defined(HAVE_BACKLIGHT)
67# \\param fmt
68# \\return
69# \\description
70# \\see func1 func2 [S[apps/plugin.c]]
71#
72# Markup:
73# [W[wiki url]]
74# [S[svn url]]
75# [F[function]]
76# [[url]]
77# %BR%
78# =code=
79
80MOO;
81
82foreach($merged as $func => $line)
83{
84 echo "\n".clean_func($func)."\n";
85
86 if(strlen($line["group"]) > 0)
87 echo " \\group ".trim($line["group"][0])."\n";
88
89 if(strlen($line["conditions"]) > 2)
90 echo " \\conditions ".trim(_simplify($line["conditions"][0]))."\n";
91
92 if(isset($line["param"]))
93 {
94 foreach($line["param"] as $param)
95 {
96 if($param != "...")
97 echo " \\param ".trim($param)."\n";
98 }
99 }
100
101 if(isset($line["return"]))
102 {
103 if(trim($line["return"]) == "")
104 echo " \\return\n";
105 else
106 echo " \\return ".trim($line["return"][0])."\n";
107 }
108
109 if(trim($line["description"]) == "")
110 echo " \\description\n";
111 else
112 echo " \\description ".trim($line["description"][0])."\n";
113
114 if(isset($line["see"]))
115 echo " \\see ".trim($line["see"][0])."\n";
116}
117
118echo "\n# END\n";
119?> \ No newline at end of file