bool CActiveAEDSP::GetMenuHooks(int iDSPAddonID, AE_DSP_MENUHOOK_CAT cat, AE_DSP_MENUHOOKS &hooks) { bool bReturn(false); if (iDSPAddonID < 0) return bReturn; AE_DSP_ADDON addon; if (GetReadyAudioDSPAddon(iDSPAddonID, addon) && addon->HaveMenuHooks(cat)) { AE_DSP_MENUHOOKS *addonhooks = addon->GetMenuHooks(); for (unsigned int i = 0; i < addonhooks->size(); ++i) { if (cat == AE_DSP_MENUHOOK_ALL || addonhooks->at(i).category == cat) { hooks.push_back(addonhooks->at(i)); bReturn = true; } } } return bReturn; }
void CAddonCallbacksADSP::ADSPRemoveMenuHook(void *addonData, AE_DSP_MENUHOOK *hook) { CActiveAEDSPAddon *client = GetAudioDSPAddon(addonData); if (!hook || !client) { CLog::Log(LOGERROR, "Audio DSP - %s - invalid handler data", __FUNCTION__); return; } AE_DSP_MENUHOOKS *hooks = client->GetMenuHooks(); if (hooks) { for (unsigned int i = 0; i < hooks->size(); i++) { if (hooks->at(i).iHookId == hook->iHookId) { /* remove this hook */ hooks->erase(hooks->begin()+i); break; } } } }
void CActiveAEDSPAddon::cb_remove_menu_hook(void *kodiInstance, AE_DSP_MENUHOOK *hook) { CActiveAEDSPAddon *client = static_cast<CActiveAEDSPAddon*>(kodiInstance); if (!hook || !client) { CLog::Log(LOGERROR, "Audio DSP - %s - invalid handler data", __FUNCTION__); return; } AE_DSP_MENUHOOKS *hooks = client->GetMenuHooks(); if (hooks) { for (unsigned int i = 0; i < hooks->size(); i++) { if (hooks->at(i).iHookId == hook->iHookId) { /* remove this hook */ hooks->erase(hooks->begin()+i); break; } } } }