| $Id$ |
| __________ __ ___. |
| Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| \/ \/ \/ \/ \/ |
| |
| Plugin API summmary |
| |
| Plugin API Version 26 |
| (backwards compability up to version 25) |
| |
| Info: To get the latest plugin api specs: |
| look at struct plugin_api in apps/plugin.h |
| (and apps/plugins/helloworld.c for an example) |
| |
| Plugin Skeleton |
| =============== |
| |
| #include "plugin.h" |
| |
| static struct plugin_api* rb; |
| |
| //plugin entry point |
| enum plugin_status plugin_start(struct plugin_api* api, void* parameter) |
| { |
| TEST_PLUGIN_API(api); |
| (void)parameter; |
| rb = api; |
| |
| //insert your code here |
| |
| return PLUGIN_OK; |
| } |
| |
| to call a function, use the plugin_api structure this way : rb->function() |
| |
| Plugin Internals |
| ================ |
| |
| int version; |
| |
| Plugin version number. |
| |
| int plugin_test(int api_version, int model, int memsize); |
| |
| This function is called by the TEST_PLUGIN_API() macro to test |
| compability of the plugin with current software. |
| Returns PLUGIN_OK if plugin is supported. |
| Returns PLUGIN_WRONG_API_VERSION if plugin version isn't compatible. |
| Returns PLUGIN_WRONG_MODEL if the model or memsize is wrong. |
| |
| LCD |
| === |
| |
| Generic |
| ------- |
| |
| Most LCD functions are specific for which output we work with, due to the |
| huge differences. |
| |
| void lcd_clear_display(void); |
| |
| Clear the whole display |
| |
| void backlight_on(void); |
| |
| Turn the backlight on |
| |
| void backlight_off(void); |
| |
| Turn the backlight off |
| |
| void splash(int ticks, bool center, char *fmt, ...); |
| |
| Display a formated string in a box durring time ticks. If center is |
| FALSE, the display is left justified. If center is TRUE, the display |
| is centered horizontaly and verticaly. The string is formated as with |
| the printf function. |
| (There are HZ ticks per second) |
| |
| void lcd_puts(int x, int y, const unsigned char *string); |
| |
| Write a string at given character position. |
| |
| void lcd_puts_scroll(int x, int y, unsigned char* string); |
| |
| Print a scrolling string at screen coordinates (x,y). The scrolling |
| style is STYLE_DEFAULT. |
| |
| void lcd_stop_scroll(void); |
| |
| Stop all scrolling lines on the screen. |
| |
| void lcd_set_contrast(int val); |
| |
| Set the screen contrast. Argument val should be a value between |
| MIN_CONTRAST_SETTING and MAX_CONTRAST_SETTING. |
| |
| Recorder |
| -------- |
| |
| All the functions operate on a display buffer. You make the buffer get |
| shown on screen by calling lcd_update(). |
| |
| void lcd_update(void); |
| |
| Update the LCD according to the internal buffer. |
| |
| void lcd_update_rect(int x, int y, int width, int height); |
| |
| Update the given rectangle to the LCD. Give arguments measured in |
| pixels. Notice that the smallest vertical resolution in updates that the |
| hardware supports is even 8 pixels. This function will adjust to those. |
| |
| void lcd_setfont(int font); |
| |
| Set default font |
| |
| struc font* font_get(int font); |
| |
| Return a pointer to an incore font structure. If the requested font |
| isn't loaded/compiled-in, decrement the font number and try again. |
| |
| void lcd_putsxy(int x, int y, const unsigned char *string); |
| |
| Put a string at given coordinates. |
| |
| void lcd_puts_style(int x, int y, const unsigned char *str, int style); |
| |
| Put a string at given coordinates. Intger style can be STYLE_DEFAULT |
| for black text display or STYLE_INVERT for white text display. |
| |
| void lcd_puts_scroll_style(int x, int y, unsigned char* string, int style); |
| |
| Same as lcd_puts_style and scrolling is enabled. |
| {new in plugin API version 26} |
| |
| void lcd_bitmap(const unsigned char *src, int x, int y, int width, |
| int height, bool clear); |
| |
| Put a bitmap at given coordinates. If clear is true, the area is |
| cleared before the bitmap is put. |
| Element src[i] is the binary representation of column number i of |
| the bitmap read from bottom to top. |
| |
| void lcd_clearrect(int x, int y, int width, int height); |
| |
| Clear a rectangle area. |
| |
| void lcd_fillrect(int x, int y, int width, int height); |
| |
| Fill a rectangle area. |
| |
| void lcd_drawrect(int x, int y, int width, int height); |
| |
| Draw a rectangle. |
| |
| void lcd_invertrect(int x, int y, int width, int height); |
| |
| Revert the graphics of the given area. |
| |
| void lcd_drawline(int x1, int y1, int x2, int y2); |
| |
| Draw a line between the coordinates. |
| |
| void lcd_clearline(int x1, int y1, int x2, int y2); |
| |
| Clear a line between two coordinates. |
| |
| void lcd_drawpixel(int x, int y); |
| |
| Draw a pixel on the given coordinate. |
| |
| void lcd_clearpixel(int x, int y); |
| |
| Clear the pixel at the given coordinate. |
| |
| int lcd_getstringsize(const unsigned char *str, int *w, int *h); |
| |
| Get the height and width of string str as it would appear on display. |
| Return value is the width. |
| |
| void scrollbar(int x, int y, int width, int height, int items, |
| int min_shown, int max_shown, int orientation); |
| |
| Print a scroll bar at coordinates (x,y) of size width*height. |
| orientation can be VERTICAL for a vertical scroll bar or anything else |
| for a horizontal scroll bar. |
| Item is the total number of items which the scroll bar refers to, |
| min_show the rank of the first item displayed and max_show the |
| rank of the last displayed item. |
| |
| void checkbox(int x, int y, int width, int height, bool checked); |
| |
| Draw a checkbox area. If checked is TRUE, the checkbox is drawn |
| checked ! |
| |
| void lcd_blit(unsigned char* p_data, int x, int y, int width, |
| int height, int stride); |
| |
| ??? (see firmware/drivers/lcd-recorder.c:168) |
| |
| void lcd_roll(int pixels); |
| |
| Rolls up the lcd display by the specified amount of lines. |
| Lines that are rolled out over the top of the screen are rolled in |
| from the bottom again. This is a hardware remapping only and all |
| operations on the lcd are affected. |
| The screen is rolled up of pixel lines. The value must be between |
| 0 and LCD_HEIGHT. |
| [Not for simulator] |
| |
| Player |
| ------ |
| |
| void lcd_define_pattern(int pat, char *pattern); |
| |
| Define a custom pattern of index pat. char *pattern is a 8x8 pixel |
| bitmap. |
| |
| unsigned char lcd_get_locked_pattern(void); |
| |
| Get a locked pattern index. |
| (see firmware/drivers/lcd-player.c:382) |
| |
| void lcd_unlock_pattern(unsigned char pat); |
| |
| Unlock pattern of index pat. |
| |
| void lcd_putc(int x, int y, unsigned char ch); |
| |
| Put character c at coordinates (x,y). |
| |
| void lcd_put_cursor(int x, int y, char cursor_char); |
| |
| Put cursor at coordinated (x,y). |
| See firmware/export/lcd.h for possible cursor_char values. |
| |
| void lcd_remove_cursor(void); |
| |
| Remove the cursor from the screen. |
| |
| void lcd_icon(int icon, bool enable); |
| |
| ??? (see firmware/drivers/lcd-player.c:463) |
| |
| |
| Buttons |
| ======= |
| |
| These functions work the same regardless of which keypad you have, but they |
| return a different set of values. Note that the Recorder keypad has 10 |
| keys, while the Player keypad only features 6. |
| |
| Possible return values can be found in the firmware/export/button.h file. |
| |
| int button_get(bool block); |
| |
| Returns a bitmask for which keys were pressed. If 'block' is set TRUE it |
| won't return until a key is pressed. |
| |
| int button_get_w_tmo(int ticks); |
| |
| Wait for a key press for ticks ticks. (There are HZ ticks per second) |
| Returns a bitmask for which keys were pressed. If no key was pressed, |
| return BUTTON_NONE. |
| |
| int button_status(void); |
| |
| Returns a bitmask for which keys are currently pressed. |
| |
| void button_clear_queue(void); |
| |
| Empty the button queue. |
| |
| |
| Files |
| ===== |
| |
| (These functions are POSIX look-alikes) |
| |
| int open(const char *pathname, int flags); |
| |
| 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. |
| |
| ssize_t read(int fd, void *buf, size_t count); |
| |
| 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. |
| |
| off_t lseek(int fd, off_t offset, int whence); |
| |
| The lseek() function sets the file pointer associated with the open file |
| descriptor specified by fd as follows: |
| |
| o If whence is SEEK_SET, the pointer is set to offset bytes. |
| |
| o If whence is SEEK_CUR, the pointer is set to its |
| current location plus offset. |
| |
| o If whence is SEEK_END, the pointer is set to the size |
| of the file plus offset. |
| |
| int creat(const char *pathname, mode_t mode) |
| |
| Create a file with mode O_RDONLY, O_WRONLY or O_RDWR. Returns the |
| file descriptor associated to this file. |
| |
| ssize_t write(int fd, const void *buf, size_t count); |
| |
| Write writes up to count bytes to the file referenced by the file |
| descriptor fd from the buffer starting at buf. |
| |
| int close(int fd); |
| |
| 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. |
| Returns 0 upon success. |
| |
| int rename(const char *path, const char *newname); |
| |
| The rename() function changes the name of a file. The path argument |
| points to the pathname of the file to be renamed. The newname argument |
| points to the new pathname of the file. |
| |
| int remove(const char *pathname); |
| |
| remove() deletes a name from the filesystem. It calls unlink for files, |
| and rmdir for directories. |
| |
| int ftruncate(int fd, off_t length); |
| |
| Truncate file to the specified length. |
| |
| int filesize(int fd); |
| |
| Returns size of a file. Upon error, returns -1. |
| |
| int fdprintf(int fd, const char *fmt, ...); |
| |
| Write a formated string in the fd. |
| Returns the number of characters writen to file. |
| Returns a negative value upon error. |
| |
| int read_line(int fd, char* buffer, int buffer_size); |
| |
| Read (up to) a line of text from fd into buffer and return number of bytes |
| read (which may be larger than the number of bytes stored in buffer). If |
| an error occurs, -1 is returned (and buffer contains whatever could be |
| read). A line is terminated by a LF char. Neither LF nor CR chars are |
| stored in buffer. |
| |
| int settings_parseline(char* line, char** name, char** value); |
| |
| 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. |
| Returns false if no valid config entry was found |
| |
| int ata_sleep(void) |
| |
| Give the disk some rest. |
| [Not for simulator] |
| |
| |
| Directories |
| =========== |
| |
| DIR *opendir(const char *name); |
| |
| The opendir() function opens a directory stream corresponding to the |
| directory name, and returns a pointer to the directory stream. The |
| stream is positioned at the first entry in the directory. |
| |
| struct dirent *readdir(DIR *dir); |
| |
| The readdir() function returns a pointer to a dirent structure |
| representing the next directory entry in the directory stream pointed to |
| by dir. It returns NULL on reaching the end-of-file or if an error |
| occurred. |
| |
| struct dirent { |
| unsigned char d_name[MAX_PATH]; |
| int attribute; |
| int size; |
| int startcluster; |
| unsigned short wrtdate; /* Last write date */ |
| unsigned short wrttime; /* Last write time */ |
| }; |
| |
| int closedir(DIR *dir); |
| |
| The closedir() function closes the directory stream associated with dir. |
| The directory stream descriptor dir is not available after this call. |
| |
| |
| Kernel |
| ====== |
| |
| void sleep(ticks); |
| |
| Sleep a specified number of ticks, we have HZ ticks per second. |
| |
| void yield(void); |
| |
| 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. |
| |
| void usb_screen(void); |
| |
| Show the usb connection screen. |
| |
| long current_tick; |
| |
| The global tick variable. |
| |
| int default_event_handler(int event); |
| |
| If event == SYS_USB_CONNECTED, call usb_screen and return |
| SYS_USB_CONNECTED. Else do nothing and return 0. |
| |
| int create_thread(void* function, void* stack, int stack_size, |
| const char *name IF_PRIO(int priority) |
| IF_COP(, unsigned int core, bool fallback)); |
| |
| Create a thread. |
| ??? (see firmware/thread.c:145) |
| Return its ID if context area could be allocated, else return -1. |
| |
| void remove_thread(int threadnum); |
| |
| Remove a thread from the scheduler. |
| Parameter is the ID as returned from create_thread(). |
| |
| void reset_poweroff_timer(void); |
| |
| The function name pretty much says what it's supposed to do. |
| |
| |
| String/Memory |
| ============= |
| |
| int strcmp(const char *a, const char *b); |
| |
| 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. |
| |
| char *strcpy(char *dst, const char *src); |
| |
| strcpy copies the string pointed to by src (including the terminating |
| null character) to the arra pointed to by dst. |
| This function returns the initial value of dst. |
| |
| void *memcpy(void *out, const void *in, size_t length); |
| |
| Copies length bytes of data in memory from source to dest. |
| |
| void *memset(void *dst, int c, size_t length); |
| |
| Fills a memory region with specified byte value. |
| |
| int snprintf(char *buf, size_t size, const char *fmt, ...); |
| |
| Write a formated formated string in buffer buf of size size |
| (including the trailing '\0'). |
| Upon success, return the number of characters printed or that would have |
| been printed if the output was truncated (not including the trailing |
| '\0'). |
| These support %c, %s, %d and %x only with the width and zero padding |
| flag only. |
| |
| char *strncpy(char *dst, const char *src, size_t length); |
| |
| 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 apended to the destination array until |
| a total of length characters have been written. |
| This function returns the initial value of dst. |
| |
| size_t strlen(const char *str); |
| |
| The strlen function works out the length of the string starting at str |
| by counting characters until it reaches a null character. |
| strlen returns the character count. |
| |
| char *strrchr(const char *string, int c); |
| |
| This function finds the last occurence of c (converted to a char) in the |
| string pointed to by string (including the terminating null character). |
| Returns a pointer to the located character, or a null pointer if c |
| does not occur in string. |
| |
| int strcasecmp(const char *s1, const char *s2); |
| |
| The strcasecmp() function compares the two strings s1 and s2, ignoring |
| the case of the characters. It returns 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. |
| |
| int strncasecmp(const char *s1, const char *s2, size_t n); |
| |
| Like strncasecmp() but only on the first n characters. |
| {new in plugin API version 26} |
| |
| const char *_ctype_; |
| |
| ??? (see firmware/common/ctype.c) |
| [Not for simulator] |
| |
| int atoi(const char *str); |
| |
| The atoi() function converts the initial portion of a string pointed |
| to by str to int. |
| |
| |
| Sound |
| ===== |
| |
| void mpeg_sound_set(int setting, int value); |
| |
| The function mpeg_sound_set() is used to set sound output characteristics. |
| This characterisitic is chosen with the setting argument. Possible |
| settings (and the effective values) are : |
| SOUND_VOLUME |
| 0 <= value <= 100 |
| SOUND_BALANCE (only effective with MAS3587F) |
| -100 <= value <= 100 |
| SOUND_BASS |
| -32 <= value <= 32 |
| SOUND_TREBLE |
| -32 <= value <= 32 |
| SOUND_CHANNEL |
| value : MPEG_SOUND_STEREO |
| MPEG_SOUND_MONO |
| MPEG_SOUND_MONO_LEFT |
| MPEG_SOUND_MONO_RIGHT |
| MPEG_SOUND_STEREO_NARROW |
| MPEG_SOUND_STEREO_WIDE |
| MPEG_SOUND_KARAOKE |
| |
| only available with MAS3587F : |
| SOUND_LOUDNESS |
| 0 <= value <= 17 |
| SOUND_AVC |
| value : 1 : 20ms |
| 2 : 2s |
| 3 : 4s |
| 4 : 8s |
| -1 : off then on |
| other : off |
| SOUND_MDB_STRENGTH |
| 0 <= value <= 127 |
| SOUND_MDB_HARMONICS |
| 0 <= value <= 100 |
| SOUND_MDB_CENTER |
| value : ??? |
| SOUND_MDB_SHAPE |
| value : ??? |
| SOUND_MDB_ENABLE |
| value == 0 : off |
| other : on |
| SOUND_SUPERBASS |
| value == 0 : off |
| other : on |
| |
| |
| void mp3_play_data(unsigned char* start, int size, |
| void (*get_more)(unsigned char** start, int* size)); |
| |
| Plays a chunk of an mp3 file. |
| start points to the begining of the file to play. |
| size is the size to play. |
| getmore is a callback function. |
| ??? (see firmware/mp3_playback.c:1062) |
| [Not for simulator] |
| |
| void mp3_play_pause(bool play); |
| |
| If playback was paused and play is TRUE, resume playback. |
| If playback isn't paused and play is FALSE, pause playback. |
| [Not for simulator] |
| |
| void mp3_play_stop(void); |
| |
| Stop playback. |
| [Not for simulator] |
| |
| bool mp3_is_playing(void); |
| |
| Return true if an mp3 is playing, else return false. Note : a paused |
| mp3 is considered as a playing mp3. |
| [Not for simulator] |
| |
| void bitswap(unsigned char *data, int length); |
| |
| Swap the bits for each element of array data of size length. |
| [Not for simulator] |
| |
| |
| Playback Control |
| ================ |
| |
| void mpeg_play(int offset); |
| |
| Start playback. |
| ??? what does offset do (see firmware/mpeg.c:2459) |
| |
| void mpeg_stop(void); |
| |
| Stop playback. |
| |
| void mpeg_pause(void); |
| |
| Pause playback. |
| |
| void mpeg_resume(void); |
| |
| Resume playback. |
| |
| void mpeg_next(void); |
| |
| Play the next item in playlist. |
| |
| void mpeg_prev(void); |
| |
| Play the previous item in playlist. |
| |
| void mpeg_ff_rewind(int newtime); |
| |
| Change playback time. |
| Has no effect in simulator. |
| |
| struct mp3entry *mpeg_next_track(void); |
| |
| Return info about the next track. |
| struct mp3entry is defined in file firmware/export/id3.h |
| |
| int playlist_amount(void); |
| |
| Returns the number of tracks in current playlist. |
| |
| int mpeg_status(void); |
| |
| Returns a bitmask about current mpeg stream status. |
| Possibilities are : |
| MPEG_STATUS_PLAY |
| MPEG_STATUS_PAUSE |
| MPEG_STATUS_RECORD [MAS3587F only] |
| MPEG_STATUS_PRERECORD [MAS3587F only] |
| MPEG_STATUS_ERROR |
| |
| bool mpeg_has_changed_track(void); |
| |
| Returns true if track has changed since last call of this function. |
| Else returns false. |
| |
| struct mp3entry *mpeg_current_track(void); |
| |
| Return info about current track |
| struct mp3entry is defined in file firmware/export/id3.h |
| |
| |
| MAS communication |
| ================= |
| |
| [Not for simulator] |
| |
| int mas_readmem(int bank, int addr, unsigned long* dest, int len); |
| |
| ??? |
| |
| int mas_writemem(int bank, int addr, unsigned long* src, int len); |
| |
| ??? |
| |
| int mas_readreg(int reg); |
| |
| ??? |
| |
| int mas_writereg(int reg, unsigned int val); |
| |
| ??? |
| |
| int mas_codec_writereg(int reg, unsigned int val); |
| |
| ??? |
| [MAS3587F only] |
| |
| int mas_codec_readreg(int reg); |
| |
| ??? |
| [MAS3587F only] |
| |
| |
| Misc |
| ==== |
| |
| void srand(unsigned int seed); |
| |
| Seed the random number generator. |
| |
| int rand(void); |
| |
| Return a pseudo random number between 0 and 0x7fffffff. |
| |
| void qsort(void *base, size_t nmemb, size_t size, |
| int(*compar)(const void *, const void *)); |
| |
| qsort sorts an array (begining at base) of nmemb objects, size |
| describes the size of each element of the array. |
| |
| You must supply a pointer to a comparison function, using the |
| argument shown as compar. (This permits the sorting objects of |
| unknown properties.) Define the comparison function to accept |
| two arguments, each a pointer to an element of the array starting |
| at base. The result of (*compar) must be negative if the first |
| argument is less than the second, zero if the two arguments match, |
| and positive if the first argument is greater than the second |
| (chere ``less than'' and ``greter than'' refer to whatever |
| arbitrary ordering is appropriate). |
| |
| The arra is sorted in place; that is, when qsort returns, the array |
| elements begining at base have been reordered. |
| |
| int kbd_input(char *buffer, int buflen); |
| |
| Prompt for a string to be stored in buffer which is of length buflen. |
| Return FALSE upon success. |
| |
| struct tm *get_time(void); |
| |
| Return current time. |
| struct tm |
| { |
| int tm_sec; |
| int tm_min; |
| int tm_hour; |
| int tm_mday; |
| int tm_mon; |
| int tm_year; |
| int tm_wday; |
| int tm_yday; |
| int tm_isdst; |
| }; |
| |
| int set_time(struct tm *tm); |
| |
| Set current time. |
| Return FALSE upon success. |
| (see get_time() for a description of struct tm) |
| |
| void *plugin_get_buffer(int *buffer_size); |
| |
| Returns 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. |
| Upon return, *buffer_size is the memory size left in plugin buffer. |
| |
| void *plugin_get_mp3_buffer(int *buffer_size); |
| |
| Returns a pointer to the mp3 buffer. |
| Playback gets stopped to avoid conflicts. |
| |
| int plugin_register_timer(int cycles, int prio, |
| void (*timer_callback)(void)); |
| |
| Register a periodic time callbeck, called every 'cycles' CPU clocks. |
| Note that this function will be called in interrupt context! |
| [Not for simulator] |
| |
| void plugin_unregister_timer(void); |
| |
| Disable the user timer. |
| [Not for simulator] |
| |
| void plugin_tsr(void (*exit_callback)(void)); |
| |
| The plugin wants to stay resdent after leaving its main function, e.g. |
| runs from timer or own thread. The callback is registered to later |
| instruct it to free its resources before a new plugin gets loaded. |
| |
| void debugf(char *fmt, ...); |
| |
| Debug output in formated string format. |
| [Simulator or debug only] |
| |
| struct user_settings *global_settings; |
| |
| Access to rockbox's settings. |
| struct user_settings is defined in apps/settings.h |
| |
| void backlight_set_timeout(int index); |
| |
| Set the backlight timeout. |
| index possible values : |
| 0 : backlight always off |
| 1 : no time out |
| 2 : 1s |
| 3 : 2s |
| 4 : 3s |
| 5 : 4s |
| 6 : 5s |
| 7 : 6s |
| 8 : 7s |
| 9 : 8s |
| 10 : 9s |
| 11 : 10s |
| 12 : 15s |
| 13 : 20s |
| 14 : 25s |
| 15 : 30s |
| 16 : 45s |
| 17 : 60s |
| 18 : 90s |
| other : backlight always off |
| |
| bool mp3info(mp3entry *entry, char *filename); |
| |
| Return FALSE if successful. The given mp3entry is then filled in with |
| whatever id3 info it could find about the given file. |
| struct mp3entry is defined in file firmware/export/id3.h |
| |
| int count_mp3_frames(int fd, int startpos, int filesize, |
| void (*progressfunc)(int)); |
| |
| ??? (see firmware/mp3data.c:531) |
| something related to VBR files |
| |
| int create_xing_header(int fd, int startpos, int filesize, |
| unsigned char *buf, int num_frames, |
| unsigned long header_template, |
| void (*progressfunc)(int), bool generate_toc); |
| |
| ??? (see firmware/mp3data.c:593) |
| |
| int battery_level(void); |
| |
| Returns battery level in percent. |
| On the simulator, battery_level always returns 75. |
| |
| void mpeg_set_pitch(int pitch); |
| |
| Change the pitch of audio playback. pitch is given in tenths of |
| percent. |
| [MAS3587F only] |
| {new in plugin API version 26} |
| |
| unsigned short peak_meter_scale_value(unsigned short val, int meterwidth); |
| |
| 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). |
| unsigned short val is the volume value. Range: 0 <= val < MAX_PEAK |
| int meterwidht is the widht of the meter in pixel |
| Returns an a value between 0 and meterwidth |
| [MAS3587F only] |
| {new in plugin API version 26} |
| |
| void peak_meter_set_use_dbfs(int use); |
| |
| Specifies wether the values displayed are scaled as dBfs or as |
| linear percent values. If use is 0 use linear percent scale, else |
| use dBfs. |
| [MAS3587F only] |
| {new in plugin API version 26} |
| |
| int peak_meter_get_use_dbfs(void); |
| |
| Returns 1 if the meter currently is displaying dBfs values, 0 |
| if the meter is displaying percent values. |
| [MAS3587F only] |
| {new in plugin API version 26} |
| |
| void mpeg_flush_and_reload_tracks(void); |
| |
| ??? Flush the mpeg buffer and reload data ??? |
| (see firmware/mpeg.c:2597) |
| (has no effect on simulator) |
| {new in plugin API version 26} |
| |
| int mpeg_get_file_pos(void); |
| |
| ??? Returns the current cursor position in mpeg file ??? |
| (see firmware/mpeg.c:260) |
| {new in plugin API version 26} |
| |
| unsigned long find_next_frame(int fd, int *offset, int max_offset, |
| unsigned long last_header); |
| |
| ??? |
| (see firmware/mp3data.c:262) |
| {new in plugin API version 26} |
| |
| unsigned long mpeg_get_last_header(void); |
| |
| ??? |
| (see firmware/mpeg.c:320) |
| {new in plugin API version 26} |