gui/movieplayer.cpp: pass subtitles charset to playback instance

This commit is contained in:
[CST] Focus
2016-01-25 18:13:11 +03:00
parent 766276df9f
commit 85c437fac3
3 changed files with 7 additions and 7 deletions

View File

@@ -66,7 +66,7 @@ public:
void FindAllPids(playback_audio_pid_info_t *audiopids, uint16_t size, uint16_t *numpida); void FindAllPids(playback_audio_pid_info_t *audiopids, uint16_t size, uint16_t *numpida);
void FindAllPids(uint16_t *apids, unsigned short *ac3flags, uint16_t *numpida, std::string *language); void FindAllPids(uint16_t *apids, unsigned short *ac3flags, uint16_t *numpida, std::string *language);
void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language); void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language);
bool SelectSubtitles(int pid); bool SelectSubtitles(int pid, std::string charset = "");
void GetChapters(std::vector<int> &positions, std::vector<std::string> &titles); void GetChapters(std::vector<int> &positions, std::vector<std::string> &titles);
void RequestAbort(); void RequestAbort();
void GetTitles(std::vector<int> &playlists, std::vector<std::string> &titles, int &current); void GetTitles(std::vector<int> &playlists, std::vector<std::string> &titles, int &current);

View File

@@ -67,7 +67,7 @@ public:
void FindAllPids(playback_audio_pid_info_t *audiopids, uint16_t size, uint16_t *numpida); void FindAllPids(playback_audio_pid_info_t *audiopids, uint16_t size, uint16_t *numpida);
void FindAllPids(uint16_t *apids, unsigned short *ac3flags, uint16_t *numpida, std::string *language); void FindAllPids(uint16_t *apids, unsigned short *ac3flags, uint16_t *numpida, std::string *language);
void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language); void FindAllSubs(uint16_t *pids, unsigned short *supported, uint16_t *numpida, std::string *language);
bool SelectSubtitles(int pid); bool SelectSubtitles(int pid, std::string charset = "");
void GetChapters(std::vector<int> &positions, std::vector<std::string> &titles); void GetChapters(std::vector<int> &positions, std::vector<std::string> &titles);
void RequestAbort(); void RequestAbort();
void GetTitles(std::vector<int> &playlists, std::vector<std::string> &titles, int &current); void GetTitles(std::vector<int> &playlists, std::vector<std::string> &titles, int &current);

View File

@@ -1858,7 +1858,7 @@ void CMoviePlayerGui::selectSubtitle()
if (!numsubs) if (!numsubs)
playback->FindAllSubs(spids, sub_supported, &numsubs, slanguage); playback->FindAllSubs(spids, sub_supported, &numsubs, slanguage);
CMenuOptionStringChooser * sc = new CMenuOptionStringChooser(LOCALE_SUBTITLES_CHARSET, &g_settings.subs_charset, true, NULL, CRCInput::RC_red, NULL, true); CMenuOptionStringChooser * sc = new CMenuOptionStringChooser(LOCALE_SUBTITLES_CHARSET, &g_settings.subs_charset, currentspid == -1, NULL, CRCInput::RC_red, NULL, true);
sc->addOption("UTF-8"); sc->addOption("UTF-8");
sc->addOption("UCS-2"); sc->addOption("UCS-2");
sc->addOption("CP1250"); sc->addOption("CP1250");
@@ -1886,7 +1886,7 @@ void CMoviePlayerGui::selectSubtitle()
APIDSelector.addItem(item); APIDSelector.addItem(item);
} }
sprintf(cnt, "%d", count); sprintf(cnt, "%d", count);
APIDSelector.addItem(new CMenuForwarder(LOCALE_SUBTITLES_STOP, true, NULL, selector, cnt, CRCInput::RC_stop), currentspid > 0); APIDSelector.addItem(new CMenuForwarder(LOCALE_SUBTITLES_STOP, currentspid != -1, NULL, selector, cnt, CRCInput::RC_stop), currentspid > 0);
APIDSelector.exec(NULL, ""); APIDSelector.exec(NULL, "");
delete selector; delete selector;
@@ -1895,12 +1895,12 @@ void CMoviePlayerGui::selectSubtitle()
currentspid = spids[select]; currentspid = spids[select];
/* external subtitles pid is 0x1FFF */ /* external subtitles pid is 0x1FFF */
ext_subs = (currentspid == 0x1FFF); ext_subs = (currentspid == 0x1FFF);
playback->SelectSubtitles(currentspid); playback->SelectSubtitles(currentspid, g_settings.subs_charset);
printf("[movieplayer] spid changed to %d\n", currentspid); printf("[movieplayer] spid changed to %d\n", currentspid);
} else if (select > 0) { } else if (select > 0) {
ext_subs = false; ext_subs = false;
currentspid = -1; currentspid = -1;
playback->SelectSubtitles(currentspid); playback->SelectSubtitles(currentspid, g_settings.subs_charset);
printf("[movieplayer] spid changed to %d\n", currentspid); printf("[movieplayer] spid changed to %d\n", currentspid);
} }
} }
@@ -2127,7 +2127,7 @@ void CMoviePlayerGui::selectAutoLang()
for (unsigned count = 0; count < numsubs; count++) { for (unsigned count = 0; count < numsubs; count++) {
if (spids[count] == 0x1FFF) { if (spids[count] == 0x1FFF) {
currentspid = spids[count]; currentspid = spids[count];
playback->SelectSubtitles(currentspid); playback->SelectSubtitles(currentspid, g_settings.subs_charset);
} }
} }
} }