Merge branch 'mer-5.6-dev' into 'mer-5.6'
Resource policy improvements. See merge request mer-core/qtmultimedia!26
This commit is contained in:
@@ -56,16 +56,36 @@ ResourcePolicyInt::ResourcePolicyInt(QObject *parent)
|
|||||||
{
|
{
|
||||||
const char *resourceClass = "player";
|
const char *resourceClass = "player";
|
||||||
|
|
||||||
QByteArray envVar = qgetenv("NEMO_RESOURCE_CLASS_OVERRIDE");
|
QByteArray envVar = qgetenv("NEMO_RESOURCE_DISABLE");
|
||||||
|
|
||||||
|
if (!envVar.isEmpty()) {
|
||||||
|
#ifdef RESOURCE_DEBUG
|
||||||
|
qDebug() << "##### Disable internal resource handling.";
|
||||||
|
#endif
|
||||||
|
m_status = GrantedResource;
|
||||||
|
m_available = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
envVar = qgetenv("NEMO_RESOURCE_CLASS_OVERRIDE");
|
||||||
if (!envVar.isEmpty()) {
|
if (!envVar.isEmpty()) {
|
||||||
QString data(envVar);
|
QString data(envVar);
|
||||||
// Only allow few resource classes
|
// Only allow known resource classes
|
||||||
if (data == "navigator" ||
|
if (data == "proclaimer" ||
|
||||||
|
data == "navigator" ||
|
||||||
data == "call" ||
|
data == "call" ||
|
||||||
|
data == "videoeditor" ||
|
||||||
data == "camera" ||
|
data == "camera" ||
|
||||||
|
data == "ringtone" ||
|
||||||
|
data == "alarm" ||
|
||||||
data == "game" ||
|
data == "game" ||
|
||||||
data == "player" ||
|
data == "player" ||
|
||||||
data == "event")
|
data == "implicit" ||
|
||||||
|
data == "event" ||
|
||||||
|
data == "background" ||
|
||||||
|
data == "alien" ||
|
||||||
|
data == "aliencall" ||
|
||||||
|
data == "nobody")
|
||||||
resourceClass = envVar.constData();
|
resourceClass = envVar.constData();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,7 +152,7 @@ void ResourcePolicyInt::removeClient(ResourcePolicyImpl *client)
|
|||||||
|
|
||||||
if (i.value().videoEnabled) {
|
if (i.value().videoEnabled) {
|
||||||
--m_video;
|
--m_video;
|
||||||
if (m_video == 0) {
|
if (m_video == 0 && m_resourceSet) {
|
||||||
m_resourceSet->deleteResource(ResourcePolicy::VideoPlaybackType);
|
m_resourceSet->deleteResource(ResourcePolicy::VideoPlaybackType);
|
||||||
m_resourceSet->update();
|
m_resourceSet->update();
|
||||||
}
|
}
|
||||||
@@ -161,6 +181,9 @@ bool ResourcePolicyInt::isVideoEnabled(const ResourcePolicyImpl *client) const
|
|||||||
|
|
||||||
void ResourcePolicyInt::setVideoEnabled(const ResourcePolicyImpl *client, bool videoEnabled)
|
void ResourcePolicyInt::setVideoEnabled(const ResourcePolicyImpl *client, bool videoEnabled)
|
||||||
{
|
{
|
||||||
|
if (!m_resourceSet)
|
||||||
|
return;
|
||||||
|
|
||||||
bool update = false;
|
bool update = false;
|
||||||
|
|
||||||
QMap<const ResourcePolicyImpl*, clientEntry>::iterator i = m_clients.find(client);
|
QMap<const ResourcePolicyImpl*, clientEntry>::iterator i = m_clients.find(client);
|
||||||
@@ -284,11 +307,13 @@ void ResourcePolicyInt::release(const ResourcePolicyImpl *client)
|
|||||||
#ifdef RESOURCE_DEBUG
|
#ifdef RESOURCE_DEBUG
|
||||||
qDebug() << "##### " << i.value().id << ": RELEASE call resourceSet->release()";
|
qDebug() << "##### " << i.value().id << ": RELEASE call resourceSet->release()";
|
||||||
#endif
|
#endif
|
||||||
|
if (m_resourceSet) {
|
||||||
m_resourceSet->release();
|
m_resourceSet->release();
|
||||||
m_status = Initial;
|
m_status = Initial;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ResourcePolicyInt::isGranted(const ResourcePolicyImpl *client) const
|
bool ResourcePolicyInt::isGranted(const ResourcePolicyImpl *client) const
|
||||||
|
|||||||
Reference in New Issue
Block a user