#include <audacious/util.h>

void vgmstream_init();
void vgmstream_about();
void vgmstream_configure();
void vgmstream_destroy();
gboolean vgmstream_is_our_file(gchar *pFile);
void vgmstream_play(InputPlayback *context);
void vgmstream_stop(InputPlayback *context);
void vgmstream_pause(InputPlayback *context,gshort paused);
void vgmstream_seek(InputPlayback *context,gint time);
int vgmstream_get_time(InputPlayback *context);
void vgmstream_get_song_info(gchar *pFile,gchar **title,gint *length);
void vgmstream_mseek(InputPlayback *context,gulong ms);
void vgmstream_file_info_box(gchar *pFile);

gchar *vgmstream_exts [] = {
  "adx",
  "afc",
  "agsc",
  "ast",
  "brstm",
  "brstmspm",
  "hps",
  "strm",
  "adp",
  "rsf",
  "dsp",
  "gcw",
  "ads",
  "ss2",
  "npsf",
  "rwsd",
  "xa",
  "rxw",
  "int",
  "sts",
  "svag",
  "mib",
  "mi4",
  "mpdsp",
  "mic",
  "gcm",
  "mss",
  "raw",
  "vag",
  "gms",
  "str",
  "ild",
  "pnb",
  "wavm",
  "xwav",
  "wp2",
  "sng",
  "asf",
  "eam",
  "cfn",
  "vpk",
  "genh",
  "logg",
  "sad",
  "bmdx",
  "wsi",
  "aifc",
  "aud",
  "ahx",
  "ivb",
  "amts",
  "svs",
  "pos",
  "nwa",
  "xss",
  "sl3",
  "hgc1",
  "aus",
  "rws",
  "rsd",
  "fsb",
  "rwx",
  "xwb",
  "xa30",
  "musc",
  "leg",
  "filp",
  "ikm",
  "musx",
  "dvi",
  "bg00",
  "kcey",
  "rstm",
  "acm",
  "mus",
  "sli",
  "lwav",
  "vig",
  "sfl",
  "um3",
  "pcm",
  "rkv",
  "psw",
  "vas",
  "tec",
  "enth",
  "sdt",
  "aix",
  "tydsp",
  "sfs",
  "as4",
  "swd",
  "cnk",
  "vjdsp",
  "wvs",
  "stma",
  "matx",
  "de2",
  "xmu",
  "xvas",
  "bh2pcm",
  "sap",
  "rnd",
  "idvi",
  "omu",
  "xa2",
  "kraw",
  "idsp",
  "xsf",
  "ymf",
  "ccc",
  "fag",
  "mihb",
  "pdt",
  "asd",
  "spsd",
  "bgw",
  "spw",
  "ass",
  "waa",
  "wac",
  "wad",
  "wam",
  "seg",
  "asr",
  "zwdsp",
  "gca",
  "spd",
  "isd",
  "ydsp",
  "gsb",
  "msvp",
  "ssm",
  "joe",
  "vgs",
  "vs",
  "dcs",
  "smp",
  "emff",
  "thp",
  /* terminator */
  NULL
};


InputPlugin vgmstream_iplug = {
  .description = "VGMStream Decoder",
  .init = vgmstream_init,
  .about = vgmstream_about,
  .configure = vgmstream_configure,
  .cleanup = vgmstream_destroy,
  .is_our_file = vgmstream_is_our_file,
  .play_file = vgmstream_play,
  .stop = vgmstream_stop,
  .pause = vgmstream_pause,
  .seek = vgmstream_seek,
  .get_time = vgmstream_get_time,
  .get_song_info = vgmstream_get_song_info,
  .vfs_extensions = vgmstream_exts,
  .mseek = vgmstream_mseek,
  .file_info_box = vgmstream_file_info_box,
};


