mirror of
https://github.com/mpv-player/mpv
synced 2024-08-04 14:59:58 +02:00
add support for per protocol and per extension playback profile loading
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25663 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
7a4efd3ce7
commit
8944441a44
@ -151,6 +151,8 @@ static char help_text[]=
|
||||
" DOCS/HTML/en/bugreports.html and follow the instructions there. We can't and\n"\
|
||||
" won't help unless you provide this information when reporting a possible bug.\n"
|
||||
#define MSGTR_LoadingConfig "Loading config '%s'\n"
|
||||
#define MSGTR_LoadingProtocolProfile "Loading protocol-related profile '%s'\n"
|
||||
#define MSGTR_LoadingExtensionProfile "Loading extension-related profile '%s'\n"
|
||||
#define MSGTR_AddedSubtitleFile "SUB: Added subtitle file (%d): %s\n"
|
||||
#define MSGTR_RemovedSubtitleFile "SUB: Removed subtitle file (%d): %s\n"
|
||||
#define MSGTR_ErrorOpeningOutputFile "Error opening file [%s] for writing!\n"
|
||||
|
48
mplayer.c
48
mplayer.c
@ -836,6 +836,52 @@ if ((conffile = get_path("")) == NULL) {
|
||||
}
|
||||
}
|
||||
|
||||
#define PROFILE_CFG_PROTOCOL "protocol."
|
||||
|
||||
static void load_per_protocol_config (m_config_t* conf, const char *const file)
|
||||
{
|
||||
char *str;
|
||||
char protocol[strlen (PROFILE_CFG_PROTOCOL) + strlen (file) + 1];
|
||||
m_profile_t *p;
|
||||
|
||||
/* does filename actually uses a protocol ? */
|
||||
str = strstr (file, "://");
|
||||
if (!str)
|
||||
return;
|
||||
|
||||
sprintf (protocol, "%s%s", PROFILE_CFG_PROTOCOL, file);
|
||||
protocol[strlen (PROFILE_CFG_PROTOCOL)+strlen(file)-strlen(str)] = '\0';
|
||||
p = m_config_get_profile (conf, protocol);
|
||||
if (p)
|
||||
{
|
||||
mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_LoadingProtocolProfile, protocol);
|
||||
m_config_set_profile(conf,p);
|
||||
}
|
||||
}
|
||||
|
||||
#define PROFILE_CFG_EXTENSION "extension."
|
||||
|
||||
static void load_per_extension_config (m_config_t* conf, const char *const file)
|
||||
{
|
||||
char *str;
|
||||
char extension[strlen (PROFILE_CFG_EXTENSION) + 8];
|
||||
m_profile_t *p;
|
||||
|
||||
/* does filename actually have an extension ? */
|
||||
str = strrchr (filename, '.');
|
||||
if (!str)
|
||||
return;
|
||||
|
||||
sprintf (extension, PROFILE_CFG_EXTENSION);
|
||||
strncat (extension, ++str, 7);
|
||||
p = m_config_get_profile (conf, extension);
|
||||
if (p)
|
||||
{
|
||||
mp_msg(MSGT_CPLAYER,MSGL_INFO,MSGTR_LoadingExtensionProfile, extension);
|
||||
m_config_set_profile(conf,p);
|
||||
}
|
||||
}
|
||||
|
||||
static void load_per_file_config (m_config_t* conf, const char *const file)
|
||||
{
|
||||
char *confpath;
|
||||
@ -2695,6 +2741,8 @@ play_next_file:
|
||||
mpctx->global_sub_size = 0;
|
||||
{ int i; for (i = 0; i < SUB_SOURCES; i++) mpctx->global_sub_indices[i] = -1; }
|
||||
|
||||
if (filename) load_per_protocol_config (mconfig, filename);
|
||||
if (filename) load_per_extension_config (mconfig, filename);
|
||||
if (filename) load_per_file_config (mconfig, filename);
|
||||
|
||||
// We must enable getch2 here to be able to interrupt network connection
|
||||
|
Loading…
Reference in New Issue
Block a user