summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanos Kovacs <janos.f.kovacs@nokia.com>2010-06-28 14:08:00 +0300
committerJanos Kovacs <janos.f.kovacs@nokia.com>2010-06-28 14:08:00 +0300
commit3f7ebe2f161b0d18f55d547b530f5a999488e03f (patch)
tree012b4edfcee65785ca752f4bc0a8e90f881f8170
parent5e7214d0fce9b9214a076d01b9e318d097aa41b4 (diff)
merging with the swp.plcy-357-harmattan branch
-rw-r--r--libresourceqt/include/qt4/policy/resource-set.h1
-rw-r--r--libresourceqt/include/qt4/policy/resource.h1
-rw-r--r--libresourceqt/include/qt4/policy/resources.h11
-rw-r--r--libresourceqt/libresourceqt1.pc2
-rw-r--r--libresourceqt/src/resource-engine.cpp7
-rw-r--r--libresourceqt/src/resource-set.cpp31
-rw-r--r--libresourceqt/src/resources.cpp20
-rw-r--r--resourceqt-client/client.cpp24
-rw-r--r--resourceqt-client/client.h2
-rw-r--r--resourceqt-client/resourceqt-client.cpp1
-rw-r--r--tests/test-resource-set/test-resource-set.cpp3
-rw-r--r--tests/test-resource-set/test-resource-set.h1
-rw-r--r--tests/test-resource/test-resource.cpp8
-rw-r--r--tests/test-resource/test-resource.h1
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);