#ifndef RESOURCE_ENGINE_H #define RESOURCE_ENGINE_H #include #include #include #include #include #include namespace ResourcePolicy { quint32 resourceTypeToLibresourceType(ResourceType type); class ResourceEngine: public QObject { Q_OBJECT Q_DISABLE_COPY( ResourceEngine ) #ifndef QT_NO_DEBUG friend class TestResourceEngine; #endif public: ResourceEngine(ResourceSet *resourceSet); ~ResourceEngine(); bool initialize(); bool connect(); bool disconnect(); bool isConnected(); bool acquireResources(); bool releaseResources(); bool updateResources(); bool registerAudioProperties(quint32 pid, QString streamName); void handleConnectionIsUp(); void disconnected(); void receivedGrant(resmsg_notify_t *notifyMessage); void receivedAdvice(resmsg_notify_t *notifyMessage); void handleStatusMessage(quint32 requestNo); void handleError(quint32 requestNo, quint32 code, const char *message); void setMode(quint32 newMode); signals: void resourcesBecameAvailable(QList availableResources); void resourcesAcquired(quint32 bitmaskOfGrantedResources); void resourcesDenied(); void connectedToManager(); void disconnectedFromManager(); private: bool connected; ResourceSet *resourceSet; DBusConnection *dbusConnection; resconn_t *libresourceConnection; resset_t *libresourceSet; quint32 requestId; QMap messageMap; quint32 mode; }; } #endif