summaryrefslogtreecommitdiff
path: root/src/core.cpp
diff options
context:
space:
mode:
authorMateusz Łukasik <mati75@linuxmint.pl>2018-03-08 20:48:47 +0100
committerMateusz Łukasik <mati75@linuxmint.pl>2018-03-08 20:48:47 +0100
commit6c3f8733e9723de625a14670a948419235504e64 (patch)
tree183ca1da081ae14e3e05d7ae4374c484e0ff9def /src/core.cpp
parent2a89e521054ca07840269f4c9457c664497e12bd (diff)
New upstream version 18.2.2~ds0
Diffstat (limited to 'src/core.cpp')
-rw-r--r--src/core.cpp48
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