bool CPeripherals::OnAction(const CAction &action) { if (action.GetID() == ACTION_MUTE) { return ToggleMute(); } if (SupportsCEC() && action.GetAmount() && (action.GetID() == ACTION_VOLUME_UP || action.GetID() == ACTION_VOLUME_DOWN)) { vector<CPeripheral *> peripherals; if (GetPeripheralsWithFeature(peripherals, FEATURE_CEC)) { for (unsigned int iPeripheralPtr = 0; iPeripheralPtr < peripherals.size(); iPeripheralPtr++) { CPeripheralCecAdapter *cecDevice = (CPeripheralCecAdapter *) peripherals.at(iPeripheralPtr); if (cecDevice && cecDevice->HasConnectedAudioSystem()) { if (action.GetID() == ACTION_VOLUME_UP) cecDevice->ScheduleVolumeUp(); else cecDevice->ScheduleVolumeDown(); return true; } } } } return false; }
bool CPeripherals::ToggleMute(void) { vector<CPeripheral *> peripherals; if (SupportsCEC() && GetPeripheralsWithFeature(peripherals, FEATURE_CEC)) { for (unsigned int iPeripheralPtr = 0; iPeripheralPtr < peripherals.size(); iPeripheralPtr++) { CPeripheralCecAdapter *cecDevice = (CPeripheralCecAdapter *) peripherals.at(iPeripheralPtr); if (cecDevice && cecDevice->HasConnectedAudioSystem()) { cecDevice->ScheduleMute(); return true; } } } return false; }