summaryrefslogtreecommitdiffstats
path: root/stream/stream_dvb.c
diff options
context:
space:
mode:
Diffstat (limited to 'stream/stream_dvb.c')
-rw-r--r--stream/stream_dvb.c63
1 files changed, 34 insertions, 29 deletions
diff --git a/stream/stream_dvb.c b/stream/stream_dvb.c
index 6a73e5db42..7cbd690ee6 100644
--- a/stream/stream_dvb.c
+++ b/stream/stream_dvb.c
@@ -777,36 +777,41 @@ dvb_config_t *dvb_get_config(void)
continue;
}
- conf_file = get_path("channels.conf");
- switch(type)
- {
- case TUNER_TER:
- conf_file = get_path("channels.conf.ter");
- break;
- case TUNER_CBL:
- conf_file = get_path("channels.conf.cbl");
- break;
- case TUNER_SAT:
- conf_file = get_path("channels.conf.sat");
- break;
- case TUNER_ATSC:
- conf_file = get_path("channels.conf.atsc");
- break;
- }
-
- if((access(conf_file, F_OK | R_OK) != 0))
- {
- free(conf_file);
- conf_file = get_path("channels.conf");
- if((access(conf_file, F_OK | R_OK) != 0))
- {
- free(conf_file);
- conf_file = strdup(MPLAYER_CONFDIR "/channels.conf");
- }
- }
+ void *talloc_ctx = talloc_new(NULL);
+ conf_file = talloc_steal(talloc_ctx,
+ mp_find_user_config_file("channels.conf"));
+ switch(type) {
+ case TUNER_TER:
+ conf_file = talloc_steal(talloc_ctx,
+ mp_find_user_config_file("channels.conf.ter"));
+ break;
+ case TUNER_CBL:
+ conf_file = talloc_steal(talloc_ctx,
+ mp_find_user_config_file("channels.conf.cbl"));
+ break;
+ case TUNER_SAT:
+ conf_file = talloc_steal(talloc_ctx,
+ mp_find_user_config_file("channels.conf.sat"));
+ break;
+ case TUNER_ATSC:
+ conf_file = talloc_steal(talloc_ctx,
+ mp_find_user_config_file("channels.conf.atsc"));
+ break;
+ }
+
+ if((access(conf_file, F_OK | R_OK) != 0)) {
+ conf_file = talloc_steal(talloc_ctx,
+ mp_find_user_config_file("channels.conf"));
+
+ if((access(conf_file, F_OK | R_OK) != 0)) {
+ conf_file = talloc_steal(talloc_ctx,
+ mp_find_global_config_file("channels.conf"));
+ }
+ }
+
+ list = dvb_get_channels(conf_file, type);
+ talloc_free(talloc_ctx);
- list = dvb_get_channels(conf_file, type);
- free(conf_file);
if(list == NULL)
continue;