diff options
author | Mateusz Łukasik <mati75@linuxmint.pl> | 2018-03-08 20:48:47 +0100 |
---|---|---|
committer | Mateusz Łukasik <mati75@linuxmint.pl> | 2018-03-08 20:48:47 +0100 |
commit | 6c3f8733e9723de625a14670a948419235504e64 (patch) | |
tree | 183ca1da081ae14e3e05d7ae4374c484e0ff9def /src/core.cpp | |
parent | 2a89e521054ca07840269f4c9457c664497e12bd (diff) |
New upstream version 18.2.2~ds0
Diffstat (limited to 'src/core.cpp')
-rw-r--r-- | src/core.cpp | 48 |
1 files changed, 45 insertions, 3 deletions
diff --git a/src/core.cpp b/src/core.cpp index 2ff79de..bc0d4e3 100644 --- a/src/core.cpp +++ b/src/core.cpp @@ -1744,7 +1744,7 @@ void Core::startMplayer( QString file, double seek ) { } #ifdef Q_OS_WIN else { - if (proc->isMPlayer() && QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA) { + if ((proc->isMPlayer() && QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA) || proc->isMPV()) { proc->setOption("vo", "direct3d,"); } } @@ -4719,17 +4719,39 @@ void Core::initVideoTrack(const Tracks & videos, int selected_id) { #if NOTIFY_AUDIO_CHANGES void Core::initAudioTrack(const Tracks & audios, int selected_id) { + /* + int old_audios_count = mset.audios.numItems(); + qDebug() << "Core::initAudioTrack: old_audios_count:" << old_audios_count; + */ + mset.audios = audios; qDebug() << "Core::initAudioTrack: num_items:" << mset.audios.numItems() << "selected_id:" << selected_id; qDebug("Core::initAudioTrack: list of audios:"); mset.audios.list(); +#if SELECT_TRACKS_ON_STARTUP + int previous_selected_id = mset.current_audio_id; +#endif + if (selected_id != -1) mset.current_audio_id = selected_id; initializeMenus(); updateWidgets(); - emit audioTracksChanged(); + +#if SELECT_TRACKS_ON_STARTUP + qDebug() << "Core::initAudioTrack: preferred audio track:" << pref->initial_audio_track << "previous_selected_id:" << previous_selected_id; + if (previous_selected_id == MediaSettings::NoneSelected && pref->initial_audio_track > 0) { + if (mset.audios.existsItemAt(pref->initial_audio_track-1)) { + int audio_id = mset.audios.itemAt(pref->initial_audio_track-1).ID(); + qDebug() << "Core::initAudioTrack: changing audio track to" << audio_id; + changeAudio(audio_id); + } + } +#endif + + emit audioTracksInitialized(); + qDebug() << "Core::initAudioTrack: current_audio_id:" << mset.current_audio_id; } #endif // NOTIFY_AUDIO_CHANGES @@ -4741,6 +4763,10 @@ void Core::initSubtitleTrack(const SubTracks & subs, int selected_id) { qDebug("Core::initSubtitleTrack: list of subtitles:"); mset.subs.list(); +#if SELECT_TRACKS_ON_STARTUP + int previous_selected = mset.current_subtitle_track; +#endif + if (proc->isMPlayer()) { qDebug() << "Core::initSubtitleTrack: current_subtitle_track:" << mset.current_subtitle_track; bool restore_subs = (mset.current_subtitle_track != MediaSettings::NoneSelected); @@ -4761,6 +4787,18 @@ void Core::initSubtitleTrack(const SubTracks & subs, int selected_id) { initializeMenus(); updateWidgets(); + +#if SELECT_TRACKS_ON_STARTUP + qDebug() << "Core::initSubtitleTrack: preferred subtitle track:" << pref->initial_subtitle_track << "previous_selected:" << previous_selected; + if (previous_selected == MediaSettings::NoneSelected && pref->initial_subtitle_track > 0) { + if (pref->initial_subtitle_track <= mset.subs.numItems()) { + int subtitle_track = pref->initial_subtitle_track-1; + qDebug() << "Core::initSubtitleTrack: changing subtitle track to" << subtitle_track; + changeSubtitle(subtitle_track); + } + } +#endif + } #endif // NOTIFY_SUB_CHANGES @@ -4791,9 +4829,11 @@ void Core::initAudioTrack(const Tracks & audios, int selected_id) { bool change_audio = (mdat.type != TYPE_STREAM); // Don't change audio with streams unless strictly necessary int audio = mset.audios.itemAt(0).ID(); // First one + #if SELECT_TRACKS_ON_STARTUP if (mset.audios.existsItemAt(pref->initial_audio_track-1)) { audio = mset.audios.itemAt(pref->initial_audio_track-1).ID(); } + #endif // Check if one of the audio tracks is the user preferred. if (!pref->audio_lang.isEmpty()) { @@ -4815,7 +4855,7 @@ void Core::initAudioTrack(const Tracks & audios, int selected_id) { updateWidgets(); - emit audioTracksChanged(); + emit audioTracksInitialized(); } #endif // NOTIFY_AUDIO_CHANGES @@ -4891,9 +4931,11 @@ void Core::initSubtitleTrack(const SubTracks & subs, int selected_id) { if (!pref->autoload_sub) { changeSubtitle(MediaSettings::SubNone); } else { + #if SELECT_TRACKS_ON_STARTUP //Select first subtitle int sub = mset.subs.selectOne( pref->subtitle_lang, pref->initial_subtitle_track-1 ); changeSubtitle(sub); + #endif } } else { // Try to restore previous subtitle track |