yWeb: Synchronize volume/audiomute settings yWeb => GUI

Origin commit data
------------------
Commit: 92fce346c0
Author: Michael Liebmann <tuxcode.bbg@gmail.com>
Date: 2014-02-12 (Wed, 12 Feb 2014)
This commit is contained in:
Michael Liebmann
2014-02-12 05:45:51 +01:00
parent 9d5762395e
commit 308c8ce00a
7 changed files with 37 additions and 4 deletions

View File

@@ -865,6 +865,14 @@ void CRCInput::getMsg_us(neutrino_msg_t * msg, neutrino_msg_data_t * data, uint6
*msg = NeutrinoMessages::EVT_HDMI_CEC_STANDBY; *msg = NeutrinoMessages::EVT_HDMI_CEC_STANDBY;
*data = 0; *data = 0;
break; break;
case NeutrinoMessages::EVT_SET_MUTE :
*msg = NeutrinoMessages::EVT_SET_MUTE;
*data = *(char*) p;
break;
case NeutrinoMessages::EVT_SET_VOLUME :
*msg = NeutrinoMessages::EVT_SET_VOLUME;
*data = *(char*) p;
break;
default: default:
printf("[neutrino] event INITID_HTTPD - unknown eventID 0x%x\n", emsg.eventID ); printf("[neutrino] event INITID_HTTPD - unknown eventID 0x%x\n", emsg.eventID );
} }

View File

@@ -74,6 +74,15 @@ void CVolume::setvol(int vol)
CZapit::getInstance()->SetVolume(vol); CZapit::getInstance()->SetVolume(vol);
} }
void CVolume::setVolumeExt(int vol)
{
g_settings.current_volume = vol;
CZapit::getInstance()->SetVolume(vol);
CVFD::getInstance()->showVolume(vol);
if (CNeutrinoApp::getInstance()->isMuted() && vol > 0)
CAudioMute::getInstance()->AudioMute(false, true);
}
void CVolume::setVolume(const neutrino_msg_t key) void CVolume::setVolume(const neutrino_msg_t key)
{ {
neutrino_msg_t msg = key; neutrino_msg_t msg = key;

View File

@@ -48,6 +48,7 @@ class CVolume : public CChangeObserver
void setvol(int vol); void setvol(int vol);
void setVolume(const neutrino_msg_t key); void setVolume(const neutrino_msg_t key);
void setVolumeExt(int vol);
void SetCurrentPid(int pid) { apid = pid; } void SetCurrentPid(int pid) { apid = pid; }
void SetCurrentChannel(t_channel_id id) { channel_id = id; } void SetCurrentChannel(t_channel_id id) { channel_id = id; }

View File

@@ -3045,6 +3045,14 @@ int CNeutrinoApp::handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data)
return messages_return::handled; return messages_return::handled;
} }
else if (msg == NeutrinoMessages::EVT_SET_MUTE) {
g_audioMute->AudioMute((int)data, true);
return messages_return::handled;
}
else if (msg == NeutrinoMessages::EVT_SET_VOLUME) {
g_volume->setVolumeExt((int)data);
return messages_return::handled;
}
if ((msg >= CRCInput::RC_WithData) && (msg < CRCInput::RC_WithData + 0x10000000)) if ((msg >= CRCInput::RC_WithData) && (msg < CRCInput::RC_WithData + 0x10000000))
delete [] (unsigned char*) data; delete [] (unsigned char*) data;

View File

@@ -153,7 +153,10 @@ struct NeutrinoMessages {
EVT_BACK_ZAP_COMPLETE = CRCInput::RC_WithData + 25, /* data: (t_channel_id *) */ EVT_BACK_ZAP_COMPLETE = CRCInput::RC_WithData + 25, /* data: (t_channel_id *) */
EVT_HDMI_CEC_VIEW_ON = CRCInput::RC_WithData + 26, EVT_HDMI_CEC_VIEW_ON = CRCInput::RC_WithData + 26,
EVT_HDMI_CEC_STANDBY = CRCInput::RC_WithData + 27 EVT_HDMI_CEC_STANDBY = CRCInput::RC_WithData + 27,
EVT_SET_MUTE = CRCInput::RC_WithData + 28,
EVT_SET_VOLUME = CRCInput::RC_WithData + 29
}; };
enum enum
{ {

View File

@@ -781,12 +781,14 @@ void CControlAPI::VolumeCGI(CyhookHandler *hh)
} }
else if (hh->ParamList["1"].compare("mute") == 0) else if (hh->ParamList["1"].compare("mute") == 0)
{ {
NeutrinoAPI->Zapit->muteAudio(true); char mute = 1;
NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::EVT_SET_MUTE, CEventServer::INITID_HTTPD, (void *)&mute, sizeof(char));
hh->SendOk(); hh->SendOk();
} }
else if (hh->ParamList["1"].compare("unmute") == 0) else if (hh->ParamList["1"].compare("unmute") == 0)
{ {
NeutrinoAPI->Zapit->muteAudio(false); char mute = 0;
NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::EVT_SET_MUTE, CEventServer::INITID_HTTPD, (void *)&mute, sizeof(char));
hh->SendOk(); hh->SendOk();
} }
else if (hh->ParamList["1"].compare("status") == 0) { // Mute status else if (hh->ParamList["1"].compare("status") == 0) { // Mute status
@@ -794,7 +796,7 @@ void CControlAPI::VolumeCGI(CyhookHandler *hh)
} }
else if(hh->ParamList["1"]!="") { //set volume else if(hh->ParamList["1"]!="") { //set volume
char vol = atol( hh->ParamList["1"].c_str() ); char vol = atol( hh->ParamList["1"].c_str() );
NeutrinoAPI->Zapit->setVolume(vol,vol); NeutrinoAPI->EventServer->sendEvent(NeutrinoMessages::EVT_SET_VOLUME, CEventServer::INITID_HTTPD, (void *)&vol, sizeof(char));
hh->SendOk(); hh->SendOk();
} }
else else

View File

@@ -132,6 +132,8 @@ CNeutrinoAPI::CNeutrinoAPI()
EventServer->registerEvent2( NeutrinoMessages::RELOAD_SETUP, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");//reload neutrino conf EventServer->registerEvent2( NeutrinoMessages::RELOAD_SETUP, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");//reload neutrino conf
EventServer->registerEvent2( NeutrinoMessages::EVT_HDMI_CEC_VIEW_ON, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock"); EventServer->registerEvent2( NeutrinoMessages::EVT_HDMI_CEC_VIEW_ON, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
EventServer->registerEvent2( NeutrinoMessages::EVT_HDMI_CEC_STANDBY, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock"); EventServer->registerEvent2( NeutrinoMessages::EVT_HDMI_CEC_STANDBY, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
EventServer->registerEvent2( NeutrinoMessages::EVT_SET_MUTE, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
EventServer->registerEvent2( NeutrinoMessages::EVT_SET_VOLUME, CEventServer::INITID_HTTPD, "/tmp/neutrino.sock");
} }
//------------------------------------------------------------------------- //-------------------------------------------------------------------------