summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Grimm <git@e-tobi.net>2012-04-04 00:18:43 +0200
committerTobias Grimm <git@e-tobi.net>2012-04-04 00:18:43 +0200
commit886cbbb15ebaf0fbb07e1fe4e8a93719a78d971f (patch)
tree05b2cf65daf07b17ef31a07eba7af4744034958d
parentaab68060df37876eea365eef4c8e8edf793d7b21 (diff)
downloadvdr-plugin-ttxtsubs-886cbbb15ebaf0fbb07e1fe4e8a93719a78d971f.tar.gz
vdr-plugin-ttxtsubs-886cbbb15ebaf0fbb07e1fe4e8a93719a78d971f.tar.bz2
Extracted SetPreferredPage() method
-rw-r--r--ttxtsubsdisplayer.c30
-rw-r--r--ttxtsubsdisplayer.h3
2 files changed, 16 insertions, 17 deletions
diff --git a/ttxtsubsdisplayer.c b/ttxtsubsdisplayer.c
index 01381b0..d506473 100644
--- a/ttxtsubsdisplayer.c
+++ b/ttxtsubsdisplayer.c
@@ -117,14 +117,8 @@ void cTtxtSubsPlayer::PES_data(uchar *p, int Length, bool IsPesRecording, const
for (int p=0; p < pageCount; p++) {
// isyslog("ttxtsubs: got page info from vdr: %s 0x%02X 0x%2X.0x%02X", teletextSubtitlePages[p].ttxtLanguage, teletextSubtitlePages[p].ttxtType,
// teletextSubtitlePages[p].ttxtMagazine, teletextSubtitlePages[p].ttxtPage);
- int ch = globals.langChoise(teletextSubtitlePages[p].ttxtLanguage, teletextSubtitlePages[p].ttxtType == 0x05);
- if (ch >= 0 && ch < mLangChoise) {
- mLangChoise = ch;
- int bcdPage = (teletextSubtitlePages[p].ttxtMagazine << 8) + teletextSubtitlePages[p].ttxtPage;
- mDisp->SetPage(bcdPage);
- mFoundLangPage = 1;
- isyslog("Found subtitle page: %03x\n", bcdPage);
- }
+ SetPreferredPage(teletextSubtitlePages[p].ttxtLanguage, teletextSubtitlePages[p].ttxtType == 0x05,
+ (teletextSubtitlePages[p].ttxtMagazine << 8) + teletextSubtitlePages[p].ttxtPage);
}
}
}
@@ -221,7 +215,6 @@ void cTtxtSubsPlayer::SearchLanguagePage(uint8_t *p, int len)
buf[i+5] >= '0' && buf[i+5] <= '9' &&
buf[i+6] >= '0' && buf[i+6] <= '9' &&
buf[i+7] == ' ') {
- int ch = globals.langChoise((char *)buf+i, buf[i+3] == 'h');
unsigned int page =
((buf[i+4] - '0') << 8) +
((buf[i+5] - '0') << 4) +
@@ -229,13 +222,7 @@ void cTtxtSubsPlayer::SearchLanguagePage(uint8_t *p, int len)
if(page >= 0x100 && page < 0x900) {
if(page >= 0x800)
page -= 0x800;
-
- if(ch >= 0 && ch < mLangChoise) {
- mLangChoise = ch;
- mDisp->SetPage(page);
- mFoundLangPage = 1;
- fprintf(stderr, "Found subtitle page: %03x\n", page); // XXX
- }
+ SetPreferredPage((char *)buf+i, buf[i+3] == 'h', page);
}
}
}
@@ -243,3 +230,14 @@ void cTtxtSubsPlayer::SearchLanguagePage(uint8_t *p, int len)
}
}
}
+
+bool cTtxtSubsPlayer::SetPreferredPage(const char* language, bool hearingImpaired, unsigned int page)
+{
+ int ch = globals.langChoise(language, hearingImpaired);
+ if (ch >= 0 && ch < mLangChoise) {
+ mLangChoise = ch;
+ mDisp->SetPage(page);
+ mFoundLangPage = 1;
+ isyslog("Found subtitle page: %03x\n", page);
+ }
+}
diff --git a/ttxtsubsdisplayer.h b/ttxtsubsdisplayer.h
index 3dda8a1..1feda0f 100644
--- a/ttxtsubsdisplayer.h
+++ b/ttxtsubsdisplayer.h
@@ -47,7 +47,8 @@ class cTtxtSubsPlayer : public cTtxtSubsDisplayer {
private:
void SearchLanguagePage(uint8_t *p, int len);
-
+ bool SetPreferredPage(const char* language, bool hearingImpaired, unsigned int page);
+
int mHasFilteredStream;
int mFoundLangPage;
int mLangChoise;