diff options
author | Janos Kovacs <janos.f.kovacs@nokia.com> | 2010-06-28 14:08:00 +0300 |
---|---|---|
committer | Janos Kovacs <janos.f.kovacs@nokia.com> | 2010-06-28 14:08:00 +0300 |
commit | 3f7ebe2f161b0d18f55d547b530f5a999488e03f (patch) | |
tree | 012b4edfcee65785ca752f4bc0a8e90f881f8170 | |
parent | 5e7214d0fce9b9214a076d01b9e318d097aa41b4 (diff) | |
download | libresourceqt-3f7ebe2f161b0d18f55d547b530f5a999488e03f.tar.gz |
merging with the swp.plcy-357-harmattan branch
-rw-r--r-- | libresourceqt/include/qt4/policy/resource-set.h | 1 | ||||
-rw-r--r-- | libresourceqt/include/qt4/policy/resource.h | 1 | ||||
-rw-r--r-- | libresourceqt/include/qt4/policy/resources.h | 11 | ||||
-rw-r--r-- | libresourceqt/libresourceqt1.pc | 2 | ||||
-rw-r--r-- | libresourceqt/src/resource-engine.cpp | 7 | ||||
-rw-r--r-- | libresourceqt/src/resource-set.cpp | 31 | ||||
-rw-r--r-- | libresourceqt/src/resources.cpp | 20 | ||||
-rw-r--r-- | resourceqt-client/client.cpp | 24 | ||||
-rw-r--r-- | resourceqt-client/client.h | 2 | ||||
-rw-r--r-- | resourceqt-client/resourceqt-client.cpp | 1 | ||||
-rw-r--r-- | tests/test-resource-set/test-resource-set.cpp | 3 | ||||
-rw-r--r-- | tests/test-resource-set/test-resource-set.h | 1 | ||||
-rw-r--r-- | tests/test-resource/test-resource.cpp | 8 | ||||
-rw-r--r-- | tests/test-resource/test-resource.h | 1 |
14 files changed, 94 insertions, 19 deletions
diff --git a/libresourceqt/include/qt4/policy/resource-set.h b/libresourceqt/include/qt4/policy/resource-set.h index ad5aa44..b3da922 100644 --- a/libresourceqt/include/qt4/policy/resource-set.h +++ b/libresourceqt/include/qt4/policy/resource-set.h @@ -242,6 +242,7 @@ private: bool pendingAcquire; bool pendingUpdate; bool pendingAudioProperties; + bool haveAudioProperties; void registerAudioProperties(); diff --git a/libresourceqt/include/qt4/policy/resource.h b/libresourceqt/include/qt4/policy/resource.h index 4f9b02e..7f10b97 100644 --- a/libresourceqt/include/qt4/policy/resource.h +++ b/libresourceqt/include/qt4/policy/resource.h @@ -23,6 +23,7 @@ enum ResourceType { ScaleButtonType, ///< The scale (zoom) button SnapButtonType, ///< Use this if you are a camera application LensCoverType, + HeadsetButtonsType, ///< Use this to reserve the headset buttons NumberOfTypes }; diff --git a/libresourceqt/include/qt4/policy/resources.h b/libresourceqt/include/qt4/policy/resources.h index c0d0eab..acd816f 100644 --- a/libresourceqt/include/qt4/policy/resources.h +++ b/libresourceqt/include/qt4/policy/resources.h @@ -120,6 +120,17 @@ public: virtual ResourceType type() const; }; + +class HeadsetButtonsResource: public Resource +{ +public: + HeadsetButtonsResource(); + HeadsetButtonsResource(const HeadsetButtonsResource &other); + virtual ~HeadsetButtonsResource(); + + virtual ResourceType type() const; +}; + } #endif diff --git a/libresourceqt/libresourceqt1.pc b/libresourceqt/libresourceqt1.pc index d4e36c8..80e4b07 100644 --- a/libresourceqt/libresourceqt1.pc +++ b/libresourceqt/libresourceqt1.pc @@ -5,7 +5,7 @@ includedir=${prefix}/include/resource/qt4 Name: libresourceqt1 Description: Maemo resource management Qt API -Version: 1.8 +Version: 1.10 Libs: -L${libdir} -lresourceqt Cflags: -I${includedir} Requires: dbus-1 libdbus-qeventloop1 libresource0 diff --git a/libresourceqt/src/resource-engine.cpp b/libresourceqt/src/resource-engine.cpp index 711669b..7687b8f 100644 --- a/libresourceqt/src/resource-engine.cpp +++ b/libresourceqt/src/resource-engine.cpp @@ -237,7 +237,7 @@ bool ResourceEngine::connectToManager() resourceMessage.record.rset.all = allResources; resourceMessage.record.rset.opt = optionalResources; resourceMessage.record.rset.share = 0; - resourceMessage.record.rset.mask = connectionMode; + resourceMessage.record.rset.mask = 0; QByteArray ba = resourceSet->applicationClass().toLatin1(); resourceMessage.record.klass = ba.data(); @@ -325,6 +325,8 @@ quint32 ResourcePolicy::resourceTypeToLibresourceType(ResourceType type) return RESMSG_SNAP_BUTTON; case LensCoverType: return RESMSG_LENS_COVER; + case HeadsetButtonsType: + return RESMSG_HEADSET_BUTTONS; default: return 0; } @@ -492,7 +494,7 @@ bool ResourceEngine::updateResources() message.record.rset.all = allResources; message.record.rset.opt = optionalResources; message.record.rset.share = 0; - message.record.rset.mask = connectionMode; + message.record.rset.mask = 0; QByteArray ba = resourceSet->applicationClass().toLatin1(); message.record.klass = ba.data(); @@ -548,6 +550,7 @@ bool ResourceEngine::registerAudioProperties(const QString &audioGroup, quint32 qDebug("ResourceEngine(%d) - audio %u:%u", identifier, resourceSet->id(), requestId); int success = resproto_send_message(libresourceSet, &message, statusCallbackHandler); + qDebug("ResourceEngine(%d) - resproto_send_message returned %d", identifier, success); if(!success) return false; diff --git a/libresourceqt/src/resource-set.cpp b/libresourceqt/src/resource-set.cpp index 7dfd5d7..8ddb54b 100644 --- a/libresourceqt/src/resource-set.cpp +++ b/libresourceqt/src/resource-set.cpp @@ -84,7 +84,7 @@ void ResourceSet::addResourceObject(Resource *resource) } else if (audioResource->audioGroupIsSet()) { qDebug("ResourceSet::%s().... %d registering audio proprerties later", __FUNCTION__, __LINE__); - pendingAudioProperties = true; + pendingAudioProperties = true; } } } @@ -129,6 +129,9 @@ bool ResourceSet::addResource(ResourceType type) case LensCoverType: resource = new LensCoverResource; break; + case HeadsetButtonsType: + resource = new HeadsetButtonsResource; + break; default: return false; } @@ -290,14 +293,9 @@ void ResourceSet::registerAudioProperties() qDebug("%s(): initializing...", __FUNCTION__); pendingAudioProperties = true; initialize(); + return; } - if (!resourceEngine->isConnectedToManager() && !resourceEngine->isConnectingToManager()) { - qDebug("%s(): Connecting to Manager...", __FUNCTION__); - - pendingAudioProperties = true; - resourceEngine->connectToManager(); - } - else { + else if (resourceEngine->isConnectedToManager()) { qDebug("Registering new audio settings:"); qDebug() << "\taudio group: " << audioResource->audioGroup(); qDebug() << "\tPID: " << audioResource->processID(); @@ -306,12 +304,21 @@ void ResourceSet::registerAudioProperties() if((audioResource->processID() > 0) && audioResource->streamTagName() != "media.name") { qWarning() << "streamTagName should be 'media.name' it is '" << audioResource->streamTagName() << "'"; } - resourceEngine->registerAudioProperties(audioResource->audioGroup(), - audioResource->processID(), - audioResource->streamTagName(), - audioResource->streamTagValue()); + bool r = resourceEngine->registerAudioProperties(audioResource->audioGroup(), + audioResource->processID(), + audioResource->streamTagName(), + audioResource->streamTagValue()); + qDebug("resourceEngine->registerAudioProperties returned %s", r?"true":"false"); + pendingAudioProperties = false; } + else { //if (!resourceEngine->isConnectedToManager() && !resourceEngine->isConnectingToManager()) { + qDebug("%s(): Connecting to Manager...", __FUNCTION__); + + pendingAudioProperties = true; + resourceEngine->connectToManager(); + return; + } } void ResourceSet::handleGranted(quint32 bitmaskOfGrantedResources) diff --git a/libresourceqt/src/resources.cpp b/libresourceqt/src/resources.cpp index d0ac8f0..404d634 100644 --- a/libresourceqt/src/resources.cpp +++ b/libresourceqt/src/resources.cpp @@ -210,3 +210,23 @@ ResourceType LensCoverResource::type() const { return LensCoverType; } + +HeadsetButtonsResource::HeadsetButtonsResource() + : Resource() +{ +} + +HeadsetButtonsResource::HeadsetButtonsResource(const HeadsetButtonsResource &other) + : Resource(other) +{ +} + +HeadsetButtonsResource::~HeadsetButtonsResource() +{ +} + +ResourceType HeadsetButtonsResource::type() const +{ + return HeadsetButtonsType; +} + diff --git a/resourceqt-client/client.cpp b/resourceqt-client/client.cpp index 46fd8c9..5f1875b 100644 --- a/resourceqt-client/client.cpp +++ b/resourceqt-client/client.cpp @@ -52,6 +52,7 @@ uint32_t Client::parseResourceList(QString resourceListStr) { RES_SCALE_BUTTON , "ScaleButton" }, { RES_SNAP_BUTTON , "SnapButton" }, { RES_LENS_COVER , "LensCover" }, + { RES_HEADSET_BUTTONS, "HeadsetButtons" }, { 0 , NULL } }; @@ -96,7 +97,7 @@ void Client::updateSet(uint32_t list, uint32_t optional, bool remove) uint32_t resources[] = { RES_AUDIO_PLAYBACK, RES_VIDEO_PLAYBACK, RES_AUDIO_RECORDING, RES_VIDEO_RECORDING, RES_VIBRA, RES_LEDS, RES_BACKLIGHT, RES_SYSTEM_BUTTON, RES_LOCK_BUTTON, - RES_SCALE_BUTTON, RES_SNAP_BUTTON, RES_LENS_COVER, 0 + RES_SCALE_BUTTON, RES_SNAP_BUTTON, RES_LENS_COVER, RES_HEADSET_BUTTONS, 0 }; int pos = 0; @@ -174,6 +175,9 @@ bool Client::initialize(uint32_t all, uint32_t optional, bool alwaysReply, bool } connect(resourceSet, SIGNAL(resourcesReleased()), this, SLOT(resourceReleasedHandler())); + connect(resourceSet, SIGNAL(resourcesBecameAvailable(const QList<ResourcePolicy::ResourceType> &)), + this, SLOT(resourcesBecameAvailableHandler(const QList<ResourcePolicy::ResourceType> &))); + showPrompt(); return true; @@ -220,6 +224,9 @@ Resource* Client::allocateResource(ResourceType resource, bool optional) case LensCoverType: retValue = new LensCoverResource(); break; + case HeadsetButtonsType: + retValue = new HeadsetButtonsResource(); + break; case NumberOfTypes: return NULL; } @@ -261,6 +268,8 @@ ResourceType Client::getResourceType(uint32_t resource) return SnapButtonType; case RES_LENS_COVER: return LensCoverType; + case RES_HEADSET_BUTTONS: + return HeadsetButtonsType; } return NumberOfTypes; @@ -271,7 +280,7 @@ void Client::showResources(const QList<ResourceType> resList) const char* resTypes[] = { "AudioPlayback", "VideoPlayback", "AudioRecorder", "VideoRecorder", "Vibra", "Leds", "Backlight", "SystemButton", "LockButton", "ScaleButton", "SnapButton", - "LensCover" + "LensCover", "HeadsetButtons" }; for (int i = 0; i < resList.count(); i++) { @@ -284,7 +293,7 @@ void Client::showResources(const QList<Resource*> resList) const char* resTypes[] = { "AudioPlayback", "VideoPlayback", "AudioRecorder", "VideoRecorder", "Vibra", "Leds", "Backlight", "SystemButton", "LockButton", "ScaleButton", "SnapButton", - "LensCover" + "LensCover", "HeadsetButtons" }; for (int i = 0; i < resList.count(); i++) { @@ -343,6 +352,14 @@ void Client::resourceReleasedHandler() showPrompt(); } +void Client::resourcesBecameAvailableHandler(const QList<ResourcePolicy::ResourceType> &availableResources) +{ + printf("\nManager advice: These resources are available:\n"); + printf("Resource set:\n"); + showResources(availableResources); + showPrompt(); +} + void Client::timerEvent(QTimerEvent*) { bool quitFlag = false; @@ -530,3 +547,4 @@ void Client::timerEvent(QTimerEvent*) } } } + diff --git a/resourceqt-client/client.h b/resourceqt-client/client.h index c61a74c..3100160 100644 --- a/resourceqt-client/client.h +++ b/resourceqt-client/client.h @@ -19,6 +19,7 @@ #define RES_SCALE_BUTTON (1<<9) #define RES_SNAP_BUTTON (1<<10) #define RES_LENS_COVER (1<<11) +#define RES_HEADSET_BUTTONS (1<<12) class TimeStat { @@ -94,6 +95,7 @@ private slots: void resourceDeniedHandler(); void resourceLostHandler(); void resourceReleasedHandler(); + void resourcesBecameAvailableHandler(const QList<ResourcePolicy::ResourceType> &availableResources); protected: void timerEvent(QTimerEvent *e); diff --git a/resourceqt-client/resourceqt-client.cpp b/resourceqt-client/resourceqt-client.cpp index 02bfbc3..522ce8d 100644 --- a/resourceqt-client/resourceqt-client.cpp +++ b/resourceqt-client/resourceqt-client.cpp @@ -178,6 +178,7 @@ private: printf("\t\tScaleButton\n"); printf("\t\tSnapButton\n"); printf("\t\tLensCover\n"); + printf("\t\tHeadsetButtons\n"); printf("\t no whitespace allowed in the resource list.\n"); printf("\tmodes:\n"); printf("\t comma separated list of the following modes\n"); diff --git a/tests/test-resource-set/test-resource-set.cpp b/tests/test-resource-set/test-resource-set.cpp index e5030df..646b90b 100644 --- a/tests/test-resource-set/test-resource-set.cpp +++ b/tests/test-resource-set/test-resource-set.cpp @@ -29,6 +29,8 @@ Resource * TestResourceSet::resourceFromType(ResourceType type) return new SnapButtonResource; case LensCoverType: return new LensCoverResource; + case HeadsetButtonsType: + return headsetButtonsResource; default: return NULL; } @@ -181,6 +183,5 @@ void TestResourceSet::handleLostResources() { } - QTEST_MAIN(TestResourceSet) diff --git a/tests/test-resource-set/test-resource-set.h b/tests/test-resource-set/test-resource-set.h index c112b6c..cba244d 100644 --- a/tests/test-resource-set/test-resource-set.h +++ b/tests/test-resource-set/test-resource-set.h @@ -22,6 +22,7 @@ private: ResourcePolicy::Resource *scaleButtonResource; ResourcePolicy::Resource *snapButtonResource; ResourcePolicy::Resource *lensCoverResource; + ResourcePolicy::Resource *headsetButtonsResource; ResourcePolicy::Resource * resourceFromType(ResourcePolicy::ResourceType type); public: diff --git a/tests/test-resource/test-resource.cpp b/tests/test-resource/test-resource.cpp index 44d6c7c..3c8f397 100644 --- a/tests/test-resource/test-resource.cpp +++ b/tests/test-resource/test-resource.cpp @@ -30,6 +30,8 @@ Resource * TestResource::resourceFromType(ResourceType type) return snapButtonResource; case LensCoverType: return lensCoverResource; + case HeadsetButtonsType: + return headsetButtonsResource; default: return NULL; } @@ -62,6 +64,8 @@ const char * TestResource::stringFromType(ResourceType type) return "SnapButtonType"; case LensCoverType: return "LensCoverType"; + case HeadsetButtonsType: + return "HeadsetButtonsType"; default: qDebug("Unknown Type 0x%02x requested", type); return NULL; @@ -90,6 +94,7 @@ void TestResource::init() scaleButtonResource = new ScaleButtonResource; snapButtonResource = new SnapButtonResource; lensCoverResource = new LensCoverResource; + headsetButtonsResource = new HeadsetButtonsResource; } void TestResource::cleanup() @@ -106,6 +111,7 @@ void TestResource::cleanup() delete scaleButtonResource; delete snapButtonResource; delete lensCoverResource; + delete headsetButtonsResource; } void TestResource::testType() @@ -151,6 +157,8 @@ void TestResource::testOptional_data() QTest::newRow("Resource is not optional") << SnapButtonType << false << false; QTest::newRow("Resource is optional") << LensCoverType << true << true; QTest::newRow("Resource is not optional") << LensCoverType << false << false; + QTest::newRow("Resource is optional") << HeadsetButtonsType << true << true; + QTest::newRow("Resource is not optional") << HeadsetButtonsType << false << false; } void TestResource::testOptional() diff --git a/tests/test-resource/test-resource.h b/tests/test-resource/test-resource.h index 2eb1df0..e301cc3 100644 --- a/tests/test-resource/test-resource.h +++ b/tests/test-resource/test-resource.h @@ -26,6 +26,7 @@ private: Resource *scaleButtonResource; Resource *snapButtonResource; Resource *lensCoverResource; + Resource *headsetButtonsResource; Resource * resourceFromType(ResourceType type); const char * stringFromType(ResourceType type); |