summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-08-29 15:07:58 +0200
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-08-29 15:07:58 +0200
commitf71720f17371e196ed587174ab6ef1c9b7f7855e (patch)
tree026916cda5393db26b20da605a1448e2b0e31c3e
parent98ebd884f7646bfa7d3fea3604e165f04ca61ebb (diff)
added default freepats.cfg search pathes for debian and mandriva
-rw-r--r--plugins/wildmidi/wildmidiplug.c37
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;
}