Accept FS#9231 - viewportify the pitch screen by Thomas Martitz.
[kugel-rb.git] / apps / filetypes.h
blobf872cf86f055cd17e336665129f14cf7a056b6ec
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * Copyright (C) 2002 Henrik Backe
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
21 #ifndef _FILEHANDLE_H_
22 #define _FILEHANDLE_H_
24 #include <stdbool.h>
25 #include <tree.h>
27 /* using attribute bits not used by FAT (FAT uses lower 7) */
28 #define FILE_ATTR_THUMBNAIL 0x0080 /* corresponding .talk file exists */
29 /* (this also reflects the sort order if by type) */
30 #define FILE_ATTR_BMARK 0x0100 /* book mark file */
31 #define FILE_ATTR_M3U 0x0200 /* playlist */
32 #define FILE_ATTR_AUDIO 0x0300 /* audio file */
33 #define FILE_ATTR_CFG 0x0400 /* config file */
34 #define FILE_ATTR_WPS 0x0500 /* wps config file */
35 #define FILE_ATTR_FONT 0x0600 /* font file */
36 #define FILE_ATTR_LNG 0x0700 /* binary lang file */
37 #define FILE_ATTR_ROCK 0x0800 /* binary rockbox plugin */
38 #define FILE_ATTR_MOD 0x0900 /* firmware file */
39 #define FILE_ATTR_RWPS 0x0A00 /* remote-wps config file */
40 #define FILE_ATTR_BMP 0x0B00 /* backdrop bmp file */
41 #define FILE_ATTR_KBD 0x0C00 /* keyboard file */
42 #define FILE_ATTR_FMR 0x0D00 /* preset file */
43 #define FILE_ATTR_CUE 0x0E00 /* cuesheet file */
44 #define FILE_ATTR_MASK 0xFF00 /* which bits tree.c uses for file types */
46 struct filetype {
47 char* extension;
48 int tree_attr;
49 int icon;
50 int voiceclip;
52 void tree_get_filetypes(const struct filetype**, int*);
54 /* init the filetypes structs.
55 uses audio buffer for storage, so call early in init... */
56 void filetype_init(void);
57 void read_viewer_theme_file(void);
58 #ifdef HAVE_LCD_COLOR
59 void read_color_theme_file(void);
60 #endif
62 /* Return the attribute (FILE_ATTR_*) of the file */
63 int filetype_get_attr(const char* file);
64 #ifdef HAVE_LCD_COLOR
65 int filetype_get_color(const char* name, int attr);
66 #endif
67 int filetype_get_icon(int attr);
68 /* return the plugin filename associated with the file */
69 char* filetype_get_plugin(const struct entry* file);
71 /* returns true if the attr is supported */
72 bool filetype_supported(int attr);
74 /* List avialable viewers */
75 int filetype_list_viewers(const char* current_file);
77 /* start a plugin with file as the argument (called from onplay.c) */
78 int filetype_load_plugin(const char* plugin, char* file);
81 #endif