2004-05-21 20:08:24 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* __________ __ ___.
|
|
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
|
|
* \/ \/ \/ \/ \/
|
2008-05-24 20:56:19 +00:00
|
|
|
* $Id$
|
2004-05-21 20:08:24 +00:00
|
|
|
*
|
|
|
|
* Copyright (C) 2002 Henrik Backe
|
|
|
|
*
|
2008-06-28 18:10:04 +00:00
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
* of the License, or (at your option) any later version.
|
2004-05-21 20:08:24 +00:00
|
|
|
*
|
|
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
|
* KIND, either express or implied.
|
|
|
|
*
|
|
|
|
****************************************************************************/
|
|
|
|
#ifndef _FILEHANDLE_H_
|
|
|
|
#define _FILEHANDLE_H_
|
|
|
|
|
|
|
|
#include <stdbool.h>
|
2011-12-19 20:12:52 +00:00
|
|
|
#include "config.h"
|
2004-05-21 20:08:24 +00:00
|
|
|
#include <tree.h>
|
2007-04-18 13:03:01 +00:00
|
|
|
|
|
|
|
/* using attribute bits not used by FAT (FAT uses lower 7) */
|
|
|
|
#define FILE_ATTR_THUMBNAIL 0x0080 /* corresponding .talk file exists */
|
|
|
|
/* (this also reflects the sort order if by type) */
|
|
|
|
#define FILE_ATTR_BMARK 0x0100 /* book mark file */
|
|
|
|
#define FILE_ATTR_M3U 0x0200 /* playlist */
|
|
|
|
#define FILE_ATTR_AUDIO 0x0300 /* audio file */
|
|
|
|
#define FILE_ATTR_CFG 0x0400 /* config file */
|
|
|
|
#define FILE_ATTR_WPS 0x0500 /* wps config file */
|
|
|
|
#define FILE_ATTR_FONT 0x0600 /* font file */
|
|
|
|
#define FILE_ATTR_LNG 0x0700 /* binary lang file */
|
|
|
|
#define FILE_ATTR_ROCK 0x0800 /* binary rockbox plugin */
|
|
|
|
#define FILE_ATTR_MOD 0x0900 /* firmware file */
|
|
|
|
#define FILE_ATTR_RWPS 0x0A00 /* remote-wps config file */
|
|
|
|
#define FILE_ATTR_BMP 0x0B00 /* backdrop bmp file */
|
|
|
|
#define FILE_ATTR_KBD 0x0C00 /* keyboard file */
|
|
|
|
#define FILE_ATTR_FMR 0x0D00 /* preset file */
|
|
|
|
#define FILE_ATTR_CUE 0x0E00 /* cuesheet file */
|
2009-10-19 15:28:15 +00:00
|
|
|
#define FILE_ATTR_SBS 0x0F00 /* statusbar file */
|
|
|
|
#define FILE_ATTR_RSBS 0x1000 /* remote statusbar file */
|
2009-10-28 23:31:42 +00:00
|
|
|
#define FILE_ATTR_LUA 0x1100 /* Lua rockbox plugin */
|
2010-05-12 10:38:00 +00:00
|
|
|
#define FILE_ATTR_FMS 0x1200 /* FM screen skin file */
|
|
|
|
#define FILE_ATTR_RFMS 0x1300 /* FM screen skin file */
|
2020-08-01 02:45:10 +00:00
|
|
|
#define FILE_ATTR_OPX 0x1400 /* open plugins shortcut */
|
2007-04-18 13:03:01 +00:00
|
|
|
#define FILE_ATTR_MASK 0xFF00 /* which bits tree.c uses for file types */
|
|
|
|
|
|
|
|
struct filetype {
|
|
|
|
char* extension;
|
|
|
|
int tree_attr;
|
2011-06-20 19:32:48 +00:00
|
|
|
enum themable_icons icon;
|
2011-06-20 19:33:08 +00:00
|
|
|
int voiceclip;
|
2007-04-18 13:03:01 +00:00
|
|
|
};
|
2011-12-19 20:12:52 +00:00
|
|
|
void tree_get_filetypes(const struct filetype**, int*) INIT_ATTR;
|
2007-04-18 13:03:01 +00:00
|
|
|
|
2007-03-29 06:16:00 +00:00
|
|
|
/* init the filetypes structs.
|
|
|
|
uses audio buffer for storage, so call early in init... */
|
2011-12-05 19:23:46 +00:00
|
|
|
void filetype_init(void) INIT_ATTR;
|
2007-04-16 09:14:36 +00:00
|
|
|
void read_viewer_theme_file(void);
|
2007-06-17 21:16:34 +00:00
|
|
|
#ifdef HAVE_LCD_COLOR
|
|
|
|
void read_color_theme_file(void);
|
|
|
|
#endif
|
2004-05-21 20:08:24 +00:00
|
|
|
|
2007-04-18 13:03:01 +00:00
|
|
|
/* Return the attribute (FILE_ATTR_*) of the file */
|
2007-03-29 06:16:00 +00:00
|
|
|
int filetype_get_attr(const char* file);
|
2007-06-17 21:16:34 +00:00
|
|
|
#ifdef HAVE_LCD_COLOR
|
2008-05-12 17:52:50 +00:00
|
|
|
int filetype_get_color(const char* name, int attr);
|
2007-06-17 21:16:34 +00:00
|
|
|
#endif
|
2007-04-16 09:14:36 +00:00
|
|
|
int filetype_get_icon(int attr);
|
2007-03-29 06:16:00 +00:00
|
|
|
/* return the plugin filename associated with the file */
|
|
|
|
char* filetype_get_plugin(const struct entry* file);
|
|
|
|
|
|
|
|
/* returns true if the attr is supported */
|
|
|
|
bool filetype_supported(int attr);
|
|
|
|
|
|
|
|
/* List avialable viewers */
|
|
|
|
int filetype_list_viewers(const char* current_file);
|
|
|
|
|
|
|
|
/* start a plugin with file as the argument (called from onplay.c) */
|
2011-12-05 19:23:46 +00:00
|
|
|
int filetype_load_plugin(const char* plugin, const char* file);
|
2004-05-21 20:08:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
#endif
|