diff options
Diffstat (limited to 'AudioManagerDeamon/HookEngine.cpp')
-rw-r--r-- | AudioManagerDeamon/HookEngine.cpp | 341 |
1 files changed, 201 insertions, 140 deletions
diff --git a/AudioManagerDeamon/HookEngine.cpp b/AudioManagerDeamon/HookEngine.cpp index eeb469d..c03eadc 100644 --- a/AudioManagerDeamon/HookEngine.cpp +++ b/AudioManagerDeamon/HookEngine.cpp @@ -25,293 +25,354 @@ #include "HookEngine.h" -BaseHook::BaseHook() {} +BaseHook::BaseHook() { +} -BaseHook::~BaseHook() {} +BaseHook::~BaseHook() { +} -HookHandler::HookHandler() {} +HookHandler::HookHandler() { +} -HookHandler::~HookHandler() {} +HookHandler::~HookHandler() { +} void BaseHook::registerAudioManagerCore(AudioManagerCore* core) { - m_core=core; + m_core = core; } genError_t BaseHook::registerHookEngine(HookHandler* engine) { - m_hookhandler=engine; + m_hookhandler = engine; return GEN_OK; } -genError_t HookHandler::registerHook(hookprio_t prio, genHook_t hookType, BaseHook* hookClass) { +genError_t HookHandler::registerHook(hookprio_t prio, genHook_t hookType, + BaseHook* hookClass) { prioList newEntry; QList<prioList>* list; - if (prio<0 || prio >100) { + if (prio < 0 || prio > 100) { DLT_LOG(AudioManager,DLT_LOG_WARN, DLT_STRING("Register Hook: Priority out of range: "), DLT_INT(prio)); return GEN_OUTOFRANGE; } - newEntry.prio=prio; - newEntry.hook=hookClass; + newEntry.prio = prio; + newEntry.hook = hookClass; switch (hookType) { case HOOK_DOMAIN_REGISTER: - list=&m_domainRegisterList; + list = &m_domainRegisterList; break; case HOOK_DOMAIN_DEREGISTER: - list=&m_domainDeregisterList; + list = &m_domainDeregisterList; break; case HOOK_SINK_REGISTER: - list=&m_sinkRegisterList; + list = &m_sinkRegisterList; break; case HOOK_SINK_DEREGISTER: - list=&m_sinkDeregisterList; + list = &m_sinkDeregisterList; break; case HOOK_SOURCE_REGISTER: - list=&m_sourceRegisterList; + list = &m_sourceRegisterList; break; case HOOK_SOURCE_DEREGISTER: - list=&m_sourceDeregisterList; + list = &m_sourceDeregisterList; break; case HOOK_GATEWAY_REGISTER: - list=&m_gatewayRegisterList; + list = &m_gatewayRegisterList; break; case HOOK_GATEWAY_DERGISTER: - list=&m_gatewayDeregisterList; + list = &m_gatewayDeregisterList; break; case HOOK_ROUTING_REQUEST: - list=&m_routingRequestList; + list = &m_routingRequestList; break; case HOOK_ROUTING_COMPLETE: - list=&m_routingCompleteList; + list = &m_routingCompleteList; break; case HOOK_SYSTEM_READY: - list=&m_systemReadyList; + list = &m_systemReadyList; break; case HOOK_SYSTEM_DOWN: - list=&m_systemDownList; + list = &m_systemDownList; break; case HOOK_VOLUME_CHANGE: - list=&m_volumeChangeList; + list = &m_volumeChangeList; break; case HOOK_MUTE_SOURCE: - list=&m_muteSourceList; + list = &m_muteSourceList; break; case HOOK_UNMUTE_SOURCE: - list=&m_unmuteSourceList; + list = &m_unmuteSourceList; break; case HOOK_MUTE_SINK: - list=&m_muteSinkList; + list = &m_muteSinkList; break; case HOOK_UNMUTE_SINK: - list=&m_unmuteSinkList; + list = &m_unmuteSinkList; break; case HOOK_USER_CONNECTION_REQUEST: - list=&m_userConnectionRequestList; + list = &m_userConnectionRequestList; break; case HOOK_USER_DISCONNECTION_REQUEST: - list=&m_userDisconnectionReuestList; + list = &m_userDisconnectionReuestList; break; case HOOK_CONNECTION_REQUEST: - list=&m_connectionRequestList; + list = &m_connectionRequestList; break; case HOOK_DISCONNECTION_REQUEST: - list=&m_disconnectionReuestList; + list = &m_disconnectionReuestList; break; case HOOK_INTERRUPT_REQUEST: - list=&m_interruptRequestList; + list = &m_interruptRequestList; break; default: - DLT_LOG(AudioManager,DLT_LOG_WARN, DLT_STRING("Trying to register unknown Hook ")); + DLT_LOG(AudioManager,DLT_LOG_WARN, DLT_STRING("Trying to register unknown Hook ")) + ; return GEN_OUTOFRANGE; } - int index=0; - foreach(prioList l,*list) { - if(l.prio>prio) { - index++; + int index = 0; + foreach(prioList l,*list) + { + if (l.prio > prio) { + index++; + } } - } - list->insert(index,newEntry); + list->insert(index, newEntry); //TODO test the sorting of the hooks with more than one plugin return GEN_OK; } genError_t HookHandler::fireHookDomainRegister(char* Name, domain_t ID) { - foreach (prioList hook,m_domainRegisterList) { - if (hook.hook->hookDomainRegister(Name,ID)==HOOK_STOP) break; - } + foreach (prioList hook,m_domainRegisterList) + { + if (hook.hook->hookDomainRegister(Name, ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookDomainDeregister (domain_t ID) { - foreach (prioList hook,m_domainDeregisterList) { - if (hook.hook->hookDomainDeregister(ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookDomainDeregister(domain_t ID) { + foreach (prioList hook,m_domainDeregisterList) + { + if (hook.hook->hookDomainDeregister(ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookSinkRegister (char* Name, sink_t ID) { - foreach (prioList hook,m_sinkRegisterList) { - if (hook.hook->hookSinkRegister(Name,ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookSinkRegister(char* Name, sink_t ID) { + foreach (prioList hook,m_sinkRegisterList) + { + if (hook.hook->hookSinkRegister(Name, ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookSinkDeregister (sink_t ID) { - foreach (prioList hook,m_sinkDeregisterList) { - if (hook.hook->hookSinkDeregister(ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookSinkDeregister(sink_t ID) { + foreach (prioList hook,m_sinkDeregisterList) + { + if (hook.hook->hookSinkDeregister(ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookSourceRegister (char* Name, source_t ID) { - foreach (prioList hook,m_sourceRegisterList) { - if (hook.hook->hookSinkRegister(Name,ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookSourceRegister(char* Name, source_t ID) { + foreach (prioList hook,m_sourceRegisterList) + { + if (hook.hook->hookSinkRegister(Name, ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookSourceDeregister (source_t ID) { - foreach (prioList hook,m_sourceDeregisterList) { - if (hook.hook->hookSourceDeregister(ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookSourceDeregister(source_t ID) { + foreach (prioList hook,m_sourceDeregisterList) + { + if (hook.hook->hookSourceDeregister(ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookGatewayRegister (char* Name, gateway_t ID) { - foreach (prioList hook,m_gatewayRegisterList) { - if (hook.hook->hookGatewayRegister(Name,ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookGatewayRegister(char* Name, gateway_t ID) { + foreach (prioList hook,m_gatewayRegisterList) + { + if (hook.hook->hookGatewayRegister(Name, ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookGatewayDeregister (gateway_t ID) { - foreach (prioList hook,m_gatewayDeregisterList) { - if (hook.hook->hookGatewayDeregister(ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookGatewayDeregister(gateway_t ID) { + foreach (prioList hook,m_gatewayDeregisterList) + { + if (hook.hook->hookGatewayDeregister(ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookSystemReady (void) { - foreach (prioList hook,m_systemReadyList) { - if (hook.hook->hookSystemReady()==HOOK_STOP) break; - } +genError_t HookHandler::fireHookSystemReady(void) { + foreach (prioList hook,m_systemReadyList) + { + if (hook.hook->hookSystemReady() == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookSystemDown (void) { - foreach (prioList hook,m_systemDownList) { - if (hook.hook->hookSystemDown()==HOOK_STOP) break; - } +genError_t HookHandler::fireHookSystemDown(void) { + foreach (prioList hook,m_systemDownList) + { + if (hook.hook->hookSystemDown() == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookConnectionRequest (source_t SourceID, sink_t SinkID) { - foreach (prioList hook,m_connectionRequestList) { - if (hook.hook->hookConnectionRequest(SourceID,SinkID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookConnectionRequest(source_t SourceID, + sink_t SinkID) { + foreach (prioList hook,m_connectionRequestList) + { + if (hook.hook->hookConnectionRequest(SourceID, SinkID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookDisconnectionRequest (connection_t ID) { - foreach (prioList hook,m_disconnectionReuestList) { - if (hook.hook->hookDisconnectionRequest(ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookDisconnectionRequest(connection_t ID) { + foreach (prioList hook,m_disconnectionReuestList) + { + if (hook.hook->hookDisconnectionRequest(ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookUserConnectionRequest (Queue* queue, source_t SourceID, sink_t SinkID) { - foreach (prioList hook,m_userConnectionRequestList) { - if (hook.hook->hookUserConnectionRequest(queue,SourceID,SinkID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookUserConnectionRequest(Queue* queue, + source_t SourceID, sink_t SinkID) { + foreach (prioList hook,m_userConnectionRequestList) + { + if (hook.hook->hookUserConnectionRequest(queue, SourceID, SinkID) + == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookUserDisconnectionRequest (Queue* queue, connection_t connID) { - foreach (prioList hook,m_userDisconnectionReuestList) { - if (hook.hook->hookUserDisconnectionRequest(queue, connID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookUserDisconnectionRequest(Queue* queue, + connection_t connID) { + foreach (prioList hook,m_userDisconnectionReuestList) + { + if (hook.hook->hookUserDisconnectionRequest(queue, connID) + == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookRoutingRequest (bool onlyfree,source_t source, sink_t sink,QList<genRoute_t>* ReturnList) { - foreach (prioList hook,m_routingRequestList) { - if (hook.hook->hookRoutingRequest(onlyfree,source,sink,ReturnList)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookRoutingRequest(bool onlyfree, source_t source, + sink_t sink, QList<genRoute_t>* ReturnList) { + foreach (prioList hook,m_routingRequestList) + { + if (hook.hook->hookRoutingRequest(onlyfree, source, sink, + ReturnList) == HOOK_STOP) + break; + } return GEN_OK; } //todo change type -genError_t HookHandler::fireHookRoutingComplete (genRoute_t route) { - foreach (prioList hook,m_routingCompleteList) { - if (hook.hook->hookRoutingComplete(route)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookRoutingComplete(genRoute_t route) { + foreach (prioList hook,m_routingCompleteList) + { + if (hook.hook->hookRoutingComplete(route) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookVolumeChange (volume_t newVolume, sink_t SinkID) { - foreach (prioList hook,m_volumeChangeList) { - if (hook.hook->hookVolumeChange(newVolume,SinkID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookVolumeChange(volume_t newVolume, sink_t SinkID) { + foreach (prioList hook,m_volumeChangeList) + { + if (hook.hook->hookVolumeChange(newVolume, SinkID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookMuteSource (source_t ID) { - foreach (prioList hook,m_muteSourceList) { - if (hook.hook->hookMuteSource(ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookMuteSource(source_t ID) { + foreach (prioList hook,m_muteSourceList) + { + if (hook.hook->hookMuteSource(ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookUnmuteSource (source_t ID) { - foreach (prioList hook,m_unmuteSourceList) { - if (hook.hook->hookUnmuteSource(ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookUnmuteSource(source_t ID) { + foreach (prioList hook,m_unmuteSourceList) + { + if (hook.hook->hookUnmuteSource(ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookMuteSink (sink_t ID) { - foreach (prioList hook,m_muteSinkList) { - if (hook.hook->hookMuteSink(ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookMuteSink(sink_t ID) { + foreach (prioList hook,m_muteSinkList) + { + if (hook.hook->hookMuteSink(ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookUnmuteSink (sink_t ID) { - foreach (prioList hook,m_unmuteSinkList) { - if (hook.hook->hookUnmuteSink(ID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookUnmuteSink(sink_t ID) { + foreach (prioList hook,m_unmuteSinkList) + { + if (hook.hook->hookUnmuteSink(ID) == HOOK_STOP) + break; + } return GEN_OK; } -genError_t HookHandler::fireHookInterruptRequest (Queue* queue, source_t interruptSource, sink_t sink, genInt_t* interruptID) { - foreach (prioList hook,m_interruptRequestList) { - if (hook.hook->hookInterruptRequest(queue,interruptSource, sink, interruptID)==HOOK_STOP) break; - } +genError_t HookHandler::fireHookInterruptRequest(Queue* queue, + source_t interruptSource, sink_t sink, genInt_t* interruptID) { + foreach (prioList hook,m_interruptRequestList) + { + if (hook.hook->hookInterruptRequest(queue, interruptSource, sink, + interruptID) == HOOK_STOP) + break; + } return GEN_OK; } void HookHandler::registerAudioManagerCore(AudioManagerCore* core) { - m_core=core; + m_core = core; } void HookHandler::loadHookPlugins() { - BaseHook *b=NULL; - foreach (QObject *plugin, QPluginLoader::staticInstances()) { - HookPluginFactory* HookPluginFactory_ = qobject_cast<HookPluginFactory *>(plugin); - if (HookPluginFactory_) { - b=HookPluginFactory_->returnInstance(); - b->registerHookEngine(this); - b->registerAudioManagerCore(m_core); - b->InitHook(); - char pName[40]; - if (b->returnPluginName(pName)==GEN_OK) { - DLT_LOG(AudioManager,DLT_LOG_INFO, DLT_STRING("Registered Hook Plugin:"), DLT_STRING(pName)); + BaseHook *b = NULL; + foreach (QObject *plugin, QPluginLoader::staticInstances()) + { + HookPluginFactory* HookPluginFactory_ = qobject_cast< + HookPluginFactory *> (plugin); + if (HookPluginFactory_) { + b = HookPluginFactory_->returnInstance(); + b->registerHookEngine(this); + b->registerAudioManagerCore(m_core); + b->InitHook(); + char pName[40]; + if (b->returnPluginName(pName) == GEN_OK) { + DLT_LOG(AudioManager,DLT_LOG_INFO, DLT_STRING("Registered Hook Plugin:"), DLT_STRING(pName)); + } } } - } } - |