void switch_vcr( bool vcr_on) { int activeAspectRatio; settings.vcr = vcr_on; if (vcr_on) { //turn to scart-input activeAspectRatio = settings.aspectRatio_vcr; disableVideoOutput(false); printf("[controld]: switch to scart-input... (%d)\n", settings.boxtype); #ifdef ENABLE_LIRC CIRSend irs("scarton"); irs.Send(); #endif } else { //turn to dvb... activeAspectRatio = settings.aspectRatio_dvb; printf("[controld]: switch to dvb-input... (%d)\n", settings.boxtype); #ifdef ENABLE_LIRC CIRSend irs("scartoff"); irs.Send(); #endif } routeVideo(); // recall AspectRatio when switching between DVB and VCR if ( settings.videoformat == 0 ) { switch (activeAspectRatio) { case 0 : // 4:3 videoDecoder->setVideoFormat(2); break; case 1 : // 16:9 case 2 : // 2,21:1 videoDecoder->setVideoFormat(1); break; default: printf("[controld] Unknown aspectRatio: %d", activeAspectRatio); } } }
void parse_command(int connfd, CControld::Header * rmessage) { if(rmessage->version != CControld::ACTVERSION) { perror("[controld] wrong version\n"); return; } switch (rmessage->cmd) { case CControld::CMD_SHUTDOWN: shutdownBox(); break; case CControld::CMD_SAVECONFIG: saveSettings(); break; case CControld::CMD_SETVOLUME: case CControld::CMD_SETVOLUME_AVS: CControld::commandVolume msg_commandVolume; read(connfd, &msg_commandVolume, sizeof(msg_commandVolume)); if (rmessage->cmd == CControld::CMD_SETVOLUME) { settings.volume = msg_commandVolume.volume; config->setInt32("volume", settings.volume); zapit.setVolume(map_volume(msg_commandVolume.volume, false), map_volume(msg_commandVolume.volume, false)); } else { settings.volume_avs = msg_commandVolume.volume; config->setInt32("volume_avs", settings.volume_avs); audioControl::setVolume(map_volume(msg_commandVolume.volume, true)); } lcdd.setVolume(msg_commandVolume.volume); eventServer->sendEvent(CControldClient::EVT_VOLUMECHANGED, CEventServer::INITID_CONTROLD, &msg_commandVolume.volume, sizeof(msg_commandVolume.volume)); break; case CControld::CMD_MUTE: settings.mute = true; config->setBool("mute", settings.mute); zapit.muteAudio(true); lcdd.setMute(true); eventServer->sendEvent(CControldClient::EVT_MUTECHANGED, CEventServer::INITID_CONTROLD, &settings.mute, sizeof(settings.mute)); break; case CControld::CMD_MUTE_AVS: settings.mute_avs = true; config->setBool("mute_avs", settings.mute_avs); audioControl::setMute(true); lcdd.setMute(true); eventServer->sendEvent(CControldClient::EVT_MUTECHANGED, CEventServer::INITID_CONTROLD, &settings.mute_avs, sizeof(settings.mute_avs)); break; case CControld::CMD_UNMUTE: settings.mute = false; config->setBool("mute", settings.mute); zapit.muteAudio(false); lcdd.setMute(settings.mute_avs); eventServer->sendEvent(CControldClient::EVT_MUTECHANGED, CEventServer::INITID_CONTROLD, &settings.mute_avs, sizeof(settings.mute_avs)); break; case CControld::CMD_UNMUTE_AVS: settings.mute_avs = false; config->setBool("mute_avs", settings.mute_avs); audioControl::setMute(false); lcdd.setMute(settings.mute); eventServer->sendEvent(CControldClient::EVT_MUTECHANGED, CEventServer::INITID_CONTROLD, &settings.mute, sizeof(settings.mute)); break; case CControld::CMD_SETANALOGMODE: CControld::commandAnalogMode msgmd; read(connfd, &msgmd, sizeof(msgmd)); zapit.setAudioMode(msgmd.mode); break; case CControld::CMD_SETVIDEOFORMAT: //printf("[controld] set videoformat\n"); CControld::commandVideoFormat msg2; read(connfd, &msg2, sizeof(msg2)); setVideoFormat(msg2.format); break; case CControld::CMD_SETVIDEOOUTPUT: //printf("[controld] set videooutput\n"); CControld::commandVideoOutput msg3; read(connfd, &msg3, sizeof(msg3)); setvideooutput(msg3.output); break; case CControld::CMD_SETBOXTYPE: //printf("[controld] set boxtype\n"); //-------------------dummy!!!!!!!!!! CControld::commandBoxType msg4; read(connfd, &msg4, sizeof(msg4)); setBoxType(); break; case CControld::CMD_SETSCARTMODE: //printf("[controld] set scartmode\n"); CControld::commandScartMode msg5; read(connfd, &msg5, sizeof(msg5)); setScartMode(msg5.mode); break; case CControld::CMD_SETVIDEOPOWERDOWN: //printf("[controld] set scartmode\n"); CControld::commandVideoPowerSave msg10; read(connfd, &msg10, sizeof(msg10)); disableVideoOutput(msg10.powerdown); break; case CControld::CMD_GETVOLUME: case CControld::CMD_GETVOLUME_AVS: CControld::responseVolume msg_responseVolume; msg_responseVolume.volume = (rmessage->cmd == CControld::CMD_GETVOLUME) ? settings.volume : settings.volume_avs; write(connfd, &msg_responseVolume, sizeof(msg_responseVolume)); break; case CControld::CMD_GETMUTESTATUS: case CControld::CMD_GETMUTESTATUS_AVS: CControld::responseMute msg_responseMute; msg_responseMute.mute = (rmessage->cmd == CControld::CMD_GETMUTESTATUS) ? settings.mute : settings.mute_avs; write(connfd, &msg_responseMute, sizeof(msg_responseMute)); break; case CControld::CMD_GETVIDEOFORMAT: //printf("[controld] get videoformat (fnc)\n"); CControld::responseVideoFormat msg8; msg8.format = settings.videoformat; write(connfd,&msg8,sizeof(msg8)); break; case CControld::CMD_GETASPECTRATIO: //printf("[controld] get videoformat (fnc)\n"); CControld::responseAspectRatio msga; msga.aspectRatio = aspectRatio; write(connfd,&msga,sizeof(msga)); break; case CControld::CMD_GETVIDEOOUTPUT: //printf("[controld] get videooutput (fblk)\n"); CControld::responseVideoOutput msg9; msg9.output = settings.videooutput; write(connfd,&msg9,sizeof(msg9)); break; case CControld::CMD_GETBOXTYPE: //printf("[controld] get boxtype\n"); CControld::responseBoxType msg0; msg0.boxtype = settings.boxtype; write(connfd,&msg0,sizeof(msg0)); break; case CControld::CMD_REGISTEREVENT: eventServer->registerEvent(connfd); break; case CControld::CMD_UNREGISTEREVENT: eventServer->unRegisterEvent(connfd); break; default: printf("[controld] unknown command\n"); } }