multiple config dirs (patch)
nikolaus klepp <[email protected]>
| Newsgroups | gmane.comp.multimedia.xmms.devel |
|---|---|
| Message-ID | <[email protected]> |
hi all! hope this is the right place to post this. Here's a small patch that allows you to use multiple config directories with xmms 1.2.9. I use it as a DJ-System with 2 soundcards and 2 XMMS-sessions: session 0) normalze plugin, /dev/dsp0, connected to ears session 1) crossfade + normalize plugin, /dev/dsp0, connected to amplifier & boxes. so I can preview a song before playing :-) suggestions? nik -- Mag. Dr. Nikolaus Klepp IT Consulting, EDV Service & Programmierung Herakhstraße 20/25 A-4810 Gmunden Tel.: +43 676 40 27 008 email: [email protected] www: www.klepp.info UID: ATU51611304 _______________________________________________ xmms-devel mailing list [email protected] http://lists.xmms.org/mailman/listinfo/xmms-devel
xmms-1.2.9-different-config-directories.diff
(text/x-diff, 3.5 KB)
--- xmms-1.2.9/xmms/main.c 2004-01-17 01:11:36.000000000 +0100
+++ xmms-1.2.9/xmms/main.c 2004-02-20 00:00:31.000000000 +0100
@@ -75,6 +75,7 @@
static int bitrate = 0, frequency = 0, numchannels = 0;
Config cfg;
+static gchar *config_dir = NULL;
static gboolean mainwin_force_redraw = FALSE;
static gchar *mainwin_title_text = NULL;
@@ -306,13 +307,11 @@
{
gchar *filename;
- filename = g_strconcat(g_get_home_dir(), "/.xmms", NULL);
+ mkdir(config_dir, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
+ filename = g_strconcat(config_dir, "/Skins", NULL);
mkdir(filename, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
g_free(filename);
- filename = g_strconcat(g_get_home_dir(), "/.xmms/Skins", NULL);
- mkdir(filename, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
- g_free(filename);
- filename = g_strconcat(g_get_home_dir(), "/.xmms/Plugins", NULL);
+ filename = g_strconcat(config_dir, "/Plugins", NULL);
mkdir(filename, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
g_free(filename);
}
@@ -376,7 +375,7 @@
cfg.gentitle_format = NULL;
- filename = g_strconcat(g_get_home_dir(), "/.xmms/config", NULL);
+ filename = g_strconcat(config_dir, "/config", NULL);
cfgfile = xmms_cfg_open_file(filename);
if (cfgfile)
{
@@ -540,7 +539,7 @@
}
else
cfg.disabled_iplugins = g_strdup("");
- filename = g_strconcat(g_get_home_dir(), "/.xmms/config", NULL);
+ filename = g_strconcat(config_dir, "/config", NULL);
cfgfile = xmms_cfg_open_file(filename);
if (!cfgfile)
cfgfile = xmms_cfg_new();
@@ -673,7 +672,7 @@
xmms_cfg_free(cfgfile);
g_free(filename);
- filename = g_strconcat(g_get_home_dir(), "/.xmms/xmms.m3u", NULL);
+ filename = g_strconcat(config_dir, "/xmms.m3u", NULL);
playlist_save(filename, FALSE);
g_free(filename);
}
@@ -3198,6 +3197,7 @@
{"show-main-window", 0, NULL, 'm'},
{"version", 0, NULL, 'v'},
{"sm-client-id", 1, NULL, 'i'},
+ {"config", 1, NULL, 'c'},
{0, 0, 0, 0}
};
@@ -3239,6 +3239,9 @@
fprintf(stderr, "\n-i, --sm-client-id ");
/* -i, --sm-client-id switch */
fprintf(stderr, _("Previous session ID"));
+ fprintf(stderr, "\n-c, --config ");
+ /* -c, --config switch */
+ fprintf(stderr, _("Use this config directory"));
fprintf(stderr, "\n-v, --version ");
/* -v, --version switch */
fprintf(stderr, _("Print version number and exit."));
@@ -3261,7 +3264,8 @@
memset(opt, 0, sizeof(struct cmdlineopt));
opt->session = -1;
- while ((c = getopt_long(argc, argv, "hn:rpusfemvt", long_options, NULL)) != -1)
+
+ while ((c = getopt_long(argc, argv, "hn:rpusfemvtc:", long_options, NULL)) != -1)
{
switch (c)
{
@@ -3302,8 +3306,15 @@
case 'i':
opt->previous_session_id = g_strdup(optarg);
break;
+ case 'c':
+ config_dir = g_strdup(optarg);
+ break;
}
}
+
+ if (!config_dir)
+ config_dir = g_strconcat(g_get_home_dir(), "/.xmms");
+
for (i = optind; i < argc; i++)
{
if (argv[i][0] == '/' || strstr(argv[i], "://"))
@@ -3568,7 +3579,7 @@
gdk_set_sm_client_id(sm_client_id);
mainwin_create();
- filename = g_strconcat(g_get_home_dir(), "/.xmms/gtkrc", NULL);
+ filename = g_strconcat(config_dir, "/gtkrc", NULL);
gtk_rc_init();
gtk_rc_parse(filename);
g_free(filename);
@@ -3587,7 +3598,7 @@
util_read_menu_rc();
read_volume(VOLSET_STARTUP);
- filename = g_strconcat(g_get_home_dir(), "/.xmms/xmms.m3u", NULL);
+ filename = g_strconcat(config_dir, "/xmms.m3u", NULL);
playlist_load(filename);
g_free(filename);
playlist_set_position(cfg.playlist_position);