diff --git a/src/zapit/include/zapit/client/msgtypes.h b/src/zapit/include/zapit/client/msgtypes.h index 52a0f8144..28da45cae 100644 --- a/src/zapit/include/zapit/client/msgtypes.h +++ b/src/zapit/include/zapit/client/msgtypes.h @@ -144,13 +144,15 @@ class CZapitMessages CMD_GET_VOLUME = 104, CMD_GET_AUDIO_MODE = 105, CMD_GET_MUTE_STATUS = 106, - CMD_GET_ASPECTRATIO = 107, - CMD_SET_ASPECTRATIO = 108, - CMD_GET_MODE43 = 109, - CMD_SET_MODE43 = 110, - CMD_STOP_PIP = 111, - CMD_ZAPTO_EPG = 112, - CMD_LOCKRC = 113 + CMD_GET_OSD_RES = 107, + CMD_SET_OSD_RES = 108, + CMD_GET_ASPECTRATIO = 109, + CMD_SET_ASPECTRATIO = 110, + CMD_GET_MODE43 = 111, + CMD_SET_MODE43 = 112, + CMD_STOP_PIP = 113, + CMD_ZAPTO_EPG = 114, + CMD_LOCKRC = 115 }; struct commandBoolean diff --git a/src/zapit/include/zapit/client/zapitclient.h b/src/zapit/include/zapit/client/zapitclient.h index 602385c97..84368c402 100644 --- a/src/zapit/include/zapit/client/zapitclient.h +++ b/src/zapit/include/zapit/client/zapitclient.h @@ -506,6 +506,8 @@ class CZapitClient:public CBasicClient void setAudioMode(int mode); //void getAudioMode(int * mode); void setVideoSystem(int video_system); + void getOSDres(int *mosd); + void setOSDres(int mosd); void getAspectRatio(int *ratio); void setAspectRatio(int ratio); void getMode43(int *m43); diff --git a/src/zapit/include/zapit/zapit.h b/src/zapit/include/zapit/zapit.h index 690374e13..2e6ea1f4c 100644 --- a/src/zapit/include/zapit/zapit.h +++ b/src/zapit/include/zapit/zapit.h @@ -114,6 +114,7 @@ class CZapit : public OpenThreads::Thread int audio_mode; int def_audio_mode; + int mosd; int aspectratio; int mode43; #if 0 diff --git a/src/zapit/lib/zapitclient.cpp b/src/zapit/lib/zapitclient.cpp index fc9c6b9da..fbc567d20 100644 --- a/src/zapit/lib/zapitclient.cpp +++ b/src/zapit/lib/zapitclient.cpp @@ -1260,6 +1260,27 @@ void CZapitClient::setAspectRatio(int ratio) close_connection(); } +void CZapitClient::getOSDres(int *mosd) +{ + CZapitMessages::commandInt msg; + VALGRIND_PARANOIA; + OpenThreads::ScopedLock lock(mutex); + send(CZapitMessages::CMD_GET_OSD_RES, 0, 0); + CBasicClient::receive_data((char* )&msg, sizeof(msg)); + * mosd = msg.val; + close_connection(); +} + +void CZapitClient::setOSDres(int mosd) +{ + CZapitMessages::commandInt msg; + VALGRIND_PARANOIA; + msg.val = mosd; + OpenThreads::ScopedLock lock(mutex); + send(CZapitMessages::CMD_SET_OSD_RES, (char*)&msg, sizeof(msg)); + close_connection(); +} + void CZapitClient::getMode43(int *m43) { CZapitMessages::commandInt msg; diff --git a/src/zapit/src/pzapit.cpp b/src/zapit/src/pzapit.cpp index b7bed516a..ee18694e0 100644 --- a/src/zapit/src/pzapit.cpp +++ b/src/zapit/src/pzapit.cpp @@ -45,7 +45,7 @@ int usage (const char * basename) << "\t-re\t\t\tswitch record mode on/off" << std::endl << "\t-p\t\t\tstart/stop playback" << std::endl << std::endl - << "\t-a \tchange audio pid" << std::endl + << "\t-a \t\tchange audio pid" << std::endl << std::endl << "\t-c\t\t\treload channels bouquets" << std::endl << "\t-sb\t\t\tsave bouquets" << std::endl @@ -62,6 +62,10 @@ int usage (const char * basename) << "\t-kill\t\t\tshutdown zapit" << std::endl << "\t-esb\t\t\tenter standby" << std::endl << "\t-lsb\t\t\tleave standby" << std::endl + << "\t-osd\t\t\tget osd resolution" << std::endl +#ifdef ENABLE_CHANGE_OSD_RESOLUTION + << "\t-osd \tset osd resolution" << std::endl +#endif << "\t-var\t\t\tget aspect ratio" << std::endl << "\t-var \tset aspect ratio" << std::endl << "\t-vm43\t\t\tget 4:3 mode" << std::endl @@ -98,6 +102,7 @@ int main (int argc, char** argv) int arat = -1; int m43 = -1; int lockrc = -1; + int mosd = -1; const char * channelName = NULL; bool playback = false; @@ -121,6 +126,7 @@ int main (int argc, char** argv) bool getmode = false; bool aspectratio = false; bool mode43 = false; + bool osd = false; uint8_t motorCmdType = 0; uint8_t motorCmd = 0; uint8_t motorNumParameters = 0; @@ -236,6 +242,18 @@ int main (int argc, char** argv) continue; } } + else if (!strncmp(argv[i], "-osd", 4)) + { + osd = true; +#ifdef ENABLE_CHANGE_OSD_RESOLUTION + if (i < argc - 1) + { + sscanf(argv[++i], "%d", &mosd); + continue; + } +#endif + continue; + } else if (!strncmp(argv[i], "-p", 2)) { playback = true; @@ -479,6 +497,20 @@ int main (int argc, char** argv) return 0; } + if (osd) + { +#ifdef ENABLE_CHANGE_OSD_RESOLUTION + if (mosd > -1) + zapit.setOSDres(mosd); + else +#endif + { + zapit.getOSDres(&mosd); + printf("%d\n", mosd); + } + return 0; + } + if (playback) { if (zapit.isPlayBackActive()) diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index 92424077f..159c08bf0 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -129,8 +129,9 @@ CZapit::CZapit() pmt_update_fd = -1; //volume_left = 0, volume_right = 0; audio_mode = 0; - aspectratio=0; - mode43=0; + mosd = 0; + aspectratio = 0; + mode43 = 0; def_audio_mode = 0; playbackStopForced = false; standby = true; @@ -1830,6 +1831,22 @@ bool CZapit::ParseCommand(CBasicMessage::Header &rmsg, int connfd) } #endif + case CZapitMessages::CMD_SET_OSD_RES: { + CZapitMessages::commandInt msg; + CBasicServer::receive_data(connfd, &msg, sizeof(msg)); + mosd=(int) msg.val; + COsdHelpers::getInstance()->changeOsdResolution(mosd); + break; + } + + case CZapitMessages::CMD_GET_OSD_RES: { + CZapitMessages::commandInt msg; + mosd = COsdHelpers::getInstance()->getOsdResolution(); + msg.val = mosd; + CBasicServer::send_data(connfd, &msg, sizeof(msg)); + break; + } + case CZapitMessages::CMD_SET_ASPECTRATIO: { CZapitMessages::commandInt msg; CBasicServer::receive_data(connfd, &msg, sizeof(msg));