vgmstream/audacious/plugin.h
Christopher Snowhill 9bfc3c0672
Fix Audacious plugin
Ugh.
2019-10-19 14:40:33 -07:00

58 lines
1.6 KiB
C++

#ifndef __PLUGIN__
#define __PLUGIN__
#include <libaudcore/audstrings.h>
#include <libaudcore/i18n.h>
#include <libaudcore/plugin.h>
#include <libaudcore/preferences.h>
#include <libaudcore/runtime.h>
#ifndef AUDACIOUS_VGMSTREAM_PRIORITY
/* set higher than FFmpeg's 10 */
#define AUDACIOUS_VGMSTREAM_PRIORITY 9
#endif
class VgmstreamPlugin : public InputPlugin {
public:
static const char *const exts[];
static const char *const defaults[];
static const char about[];
static const PreferencesWidget widgets[];
static const PluginPreferences prefs;
static constexpr PluginInfo info = {
N_("vgmstream Decoder"), N_("vgmstream"), about, &prefs,
};
constexpr VgmstreamPlugin() : InputPlugin (info,
InputInfo() //InputInfo(FlagSubtunes) // allow subsongs
.with_priority(AUDACIOUS_VGMSTREAM_PRIORITY) // where 0=highest, 10=lowest
.with_exts(exts)) {} // priority exts (accepted exts are still validated at runtime)
bool init();
void cleanup();
bool is_our_file(const char *filename, VFSFile &file);
Tuple read_tuple(const char *filename, VFSFile &file);
bool read_tag(const char * filename, VFSFile & file, Tuple & tuple, Index<char> * image);
bool play(const char *filename, VFSFile &file);
};
typedef struct {
bool loop_forever;
int loop_count;
double fade_length;
double fade_delay;
int downmix_channels;
bool exts_unknown_on;
bool exts_common_on;
} audacious_settings;
extern audacious_settings settings;
void vgmstream_settings_load();
void vgmstream_settings_save();
#endif