diff options
author | 2010-08-29 15:07:58 +0200 | |
---|---|---|
committer | 2010-08-29 15:07:58 +0200 | |
commit | f71720f17371e196ed587174ab6ef1c9b7f7855e (patch) | |
tree | 026916cda5393db26b20da605a1448e2b0e31c3e | |
parent | 98ebd884f7646bfa7d3fea3604e165f04ca61ebb (diff) |
added default freepats.cfg search pathes for debian and mandriva
-rw-r--r-- | plugins/wildmidi/wildmidiplug.c | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/plugins/wildmidi/wildmidiplug.c b/plugins/wildmidi/wildmidiplug.c index bea0a6fb..f807eda9 100644 --- a/plugins/wildmidi/wildmidiplug.c +++ b/plugins/wildmidi/wildmidiplug.c @@ -21,6 +21,10 @@ #include <string.h> #include "../../deadbeef.h" #include "wildmidi_lib.h" +#ifdef HAVE_CONFIG_H +#include "../../config.h" +#endif +#include "../../gettext.h" extern DB_decoder_t wmidi_plugin; @@ -124,12 +128,39 @@ wmidi_insert (DB_playItem_t *after, const char *fname) { return after; } -#define DEFAULT_TIMIDITY_CONFIG "/etc/timidity++/timidity-freepats.cfg" +#define DEFAULT_TIMIDITY_CONFIG "/etc/timidity++/timidity-freepats.cfg:/etc/timidity/freepats.cfg:/etc/timidity/freepats/freepats.cfg:::" int wmidi_start (void) { - const char *config_file = deadbeef->conf_get_str ("wildmidi.config", DEFAULT_TIMIDITY_CONFIG); - WildMidi_Init (config_file, 44100, 0); + const char *config_files = deadbeef->conf_get_str ("wildmidi.config", DEFAULT_TIMIDITY_CONFIG); + char config[1024] = ""; + const char *p = config_files; + while (p) { + *config = 0; + char *e = strchr (p, ':'); + if (e) { + strncpy (config, p, e-p); + config[e-p] = 0; + e++; + } + else { + strcpy (config, p); + } + if (*config) { + FILE *f = fopen (config, "rb"); + if (f) { + fclose (f); + break; + } + } + p = e; + } + if (*config) { + WildMidi_Init (config, 44100, 0); + } + else { + fprintf (stderr, _("wildmidi: freepats config file not found. Please install timidity-freepats package, or specify path to freepats.cfg in the plugin settings.")); + } return 0; } |