A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 87 lines 3.6 kB view raw
1/*************************************************************************** 2 * __________ __ ___. 3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___ 4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / 5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 7 * \/ \/ \/ \/ \/ 8 * $Id$ 9 * 10 * Copyright (C) 2002 Henrik Backe 11 * 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. 16 * 17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 18 * KIND, either express or implied. 19 * 20 ****************************************************************************/ 21#ifndef _FILEHANDLE_H_ 22#define _FILEHANDLE_H_ 23 24#include <stdbool.h> 25#include "config.h" 26#include <tree.h> 27 28/* using attribute bits not used by FAT (FAT uses lower 7) */ 29#define FILE_ATTR_THUMBNAIL 0x0080 /* corresponding .talk file exists */ 30/* (this also reflects the sort order if by type) */ 31#define FILE_ATTR_BMARK 0x0100 /* book mark file */ 32#define FILE_ATTR_M3U 0x0200 /* playlist */ 33#define FILE_ATTR_AUDIO 0x0300 /* audio file */ 34#define FILE_ATTR_CFG 0x0400 /* config file */ 35#define FILE_ATTR_WPS 0x0500 /* wps config file */ 36#define FILE_ATTR_FONT 0x0600 /* font file */ 37#define FILE_ATTR_LNG 0x0700 /* binary lang file */ 38#define FILE_ATTR_ROCK 0x0800 /* binary rockbox plugin */ 39#define FILE_ATTR_MOD 0x0900 /* firmware file */ 40#define FILE_ATTR_RWPS 0x0A00 /* remote-wps config file */ 41#define FILE_ATTR_BMP 0x0B00 /* backdrop bmp file */ 42#define FILE_ATTR_KBD 0x0C00 /* keyboard file */ 43#define FILE_ATTR_FMR 0x0D00 /* preset file */ 44#define FILE_ATTR_CUE 0x0E00 /* cuesheet file */ 45#define FILE_ATTR_SBS 0x0F00 /* statusbar file */ 46#define FILE_ATTR_RSBS 0x1000 /* remote statusbar file */ 47#define FILE_ATTR_LUA 0x1100 /* Lua rockbox plugin */ 48#define FILE_ATTR_FMS 0x1200 /* FM screen skin file */ 49#define FILE_ATTR_RFMS 0x1300 /* FM screen skin file */ 50#define FILE_ATTR_OPX 0x1400 /* open plugins shortcut */ 51#define FILE_ATTR_LOG 0x1500 /* log file */ 52#define FILE_ATTR_MASK 0xFF00 /* which bits tree.c uses for file types */ 53 54long tree_get_filetype_voiceclip(int attr); 55 56/* init the filetypes structs. 57 uses audio buffer for storage, so call early in init... */ 58void filetype_init(void) INIT_ATTR; 59 60void read_viewer_theme_file(void); 61#ifdef HAVE_LCD_COLOR 62void read_color_theme_file(void); 63#endif 64 65/* Return the attribute (FILE_ATTR_*) of the file */ 66int filetype_get_attr(const char* file); 67#ifdef HAVE_LCD_COLOR 68int filetype_get_color(const char* name, int attr); 69#endif 70int filetype_get_icon(int attr); 71/* return the plugin filename associated with the file */ 72char* filetype_get_plugin(int attr, char *buffer, size_t buffer_len); 73 74/* returns true if the attr is supported */ 75bool filetype_supported(int attr); 76 77/* List avialable viewers and start selected plugin with current_file as argument */ 78int filetype_list_viewers(const char* current_file); 79 80/* return the plugin filename the user selected for the file Returns NULL if canceled */ 81char* filetype_get_viewer(char *buffer, size_t buffer_len, const char* current_file); 82 83/* start a plugin with file as the argument (called from onplay.c) */ 84int filetype_load_plugin(const char* plugin, const char* file); 85 86 87#endif