radiohswidget/src/radiohswidgetradioserviceclient.cpp
author hgs
Thu, 08 Jul 2010 12:44:18 +0300
changeset 36 ba22309243a1
parent 34 bc10a61bd7d3
permissions -rw-r--r--
201027
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: FM Radio widget radio service client
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// System includes
hgs
parents:
diff changeset
    19
#include <xqserviceglobal.h>
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// User includes
hgs
parents:
diff changeset
    22
#include "radiohswidgetradioserviceclient.h"
hgs
parents:
diff changeset
    23
#include "radiohswidget.h"
hgs
parents:
diff changeset
    24
#include "radionotificationdata.h"
hgs
parents:
diff changeset
    25
#include "radioservicedef.h"
hgs
parents:
diff changeset
    26
#include "radiologger.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
/*!
hgs
parents:
diff changeset
    29
    \class RadioHsWidgetRadioServiceClient
hgs
parents:
diff changeset
    30
    \brief Implementation of QtHighway based communicator with radio application.
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
    RadioHsWidgetRadioServiceClient implements monitoring of radio
hgs
parents:
diff changeset
    33
    information and controlling of radio. This is done by service request
hgs
parents:
diff changeset
    34
    through QtHighway.
hgs
parents:
diff changeset
    35
*/
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
/*!
hgs
parents:
diff changeset
    40
    Constructs a profile reader which is a child of \a parent.
hgs
parents:
diff changeset
    41
 */
hgs
parents:
diff changeset
    42
RadioHsWidgetRadioServiceClient::RadioHsWidgetRadioServiceClient(
hgs
parents:
diff changeset
    43
    RadioHsWidget *parent) :
hgs
parents:
diff changeset
    44
    QObject(parent),
hgs
parents:
diff changeset
    45
    mParent(*parent),
hgs
parents:
diff changeset
    46
    mRequestPending(false),
hgs
parents:
diff changeset
    47
    mRadioMonitorRequest(NULL),
hgs
parents:
diff changeset
    48
    mRadioControlRequest(NULL),
hgs
parents:
diff changeset
    49
    mDataInitialized(false)
hgs
parents:
diff changeset
    50
{
hgs
parents:
diff changeset
    51
    LOG_METHOD;
hgs
parents:
diff changeset
    52
}
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
/*!
hgs
parents:
diff changeset
    55
    Destructor 
hgs
parents:
diff changeset
    56
 */
hgs
parents:
diff changeset
    57
RadioHsWidgetRadioServiceClient::~RadioHsWidgetRadioServiceClient()
hgs
parents:
diff changeset
    58
{
hgs
parents:
diff changeset
    59
    LOG_METHOD;
hgs
parents:
diff changeset
    60
    stopMonitoring();
hgs
parents:
diff changeset
    61
}
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
/*!
hgs
parents:
diff changeset
    64
    Command FM Radio station.
hgs
parents:
diff changeset
    65
 
hgs
parents:
diff changeset
    66
    \param command Command to request radio to perform.
hgs
parents:
diff changeset
    67
 */
hgs
parents:
diff changeset
    68
void RadioHsWidgetRadioServiceClient::commandFmRadio(
hgs
parents:
diff changeset
    69
    const RadioServiceCommand::CommandId command)
hgs
parents:
diff changeset
    70
{
hgs
parents:
diff changeset
    71
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
    72
    QVariant commandArgument;
hgs
parents:
diff changeset
    73
    commandArgument.setValue(static_cast<int>(command));
hgs
parents:
diff changeset
    74
    FmRadio::VisibiltyAfterRequest visibility;
hgs
parents:
diff changeset
    75
    if (command == RadioServiceCommand::Foreground) {
hgs
parents:
diff changeset
    76
        visibility = FmRadio::VisibiltyToForeground;
hgs
parents:
diff changeset
    77
    } else if (command == RadioServiceCommand::Background) {
hgs
parents:
diff changeset
    78
        visibility = FmRadio::VisibiltyToBackground;
hgs
parents:
diff changeset
    79
    }  else {
hgs
parents:
diff changeset
    80
        visibility = FmRadio::VisibiltyDoNotChange;
hgs
parents:
diff changeset
    81
    }
hgs
parents:
diff changeset
    82
    sendControlRequest(commandArgument, visibility);
hgs
parents:
diff changeset
    83
}
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
/*!
hgs
parents:
diff changeset
    86
    Start radio monitoring.
hgs
parents:
diff changeset
    87
    
hgs
parents:
diff changeset
    88
    \param visibility Desired visibility for the radio after the request.
hgs
parents:
diff changeset
    89
 */
hgs
parents:
diff changeset
    90
void RadioHsWidgetRadioServiceClient::startMonitoring(
hgs
parents:
diff changeset
    91
    FmRadio::VisibiltyAfterRequest visibility)
hgs
parents:
diff changeset
    92
{
hgs
parents:
diff changeset
    93
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
    94
    createMonitorServiceRequest();
hgs
parents:
diff changeset
    95
    sendMonitorRequest(visibility);
hgs
parents:
diff changeset
    96
}
hgs
parents:
diff changeset
    97
hgs
parents:
diff changeset
    98
/*!
hgs
parents:
diff changeset
    99
    Stops radio monitoring.
hgs
parents:
diff changeset
   100
 */
hgs
parents:
diff changeset
   101
void RadioHsWidgetRadioServiceClient::stopMonitoring()
hgs
parents:
diff changeset
   102
{
hgs
parents:
diff changeset
   103
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
   104
    // Delete the mRadioMonitorRequest. 
hgs
parents:
diff changeset
   105
    if (mRadioMonitorRequest) {
hgs
parents:
diff changeset
   106
        delete mRadioMonitorRequest;
hgs
parents:
diff changeset
   107
        mRadioMonitorRequest = NULL;
hgs
parents:
diff changeset
   108
        mRequestPending = false;
hgs
parents:
diff changeset
   109
        mDataInitialized = false;
hgs
parents:
diff changeset
   110
    }
hgs
parents:
diff changeset
   111
}
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
/*!
hgs
parents:
diff changeset
   114
    Creates and returns RadioNotificationData.
hgs
parents:
diff changeset
   115
    This is needed because radionotificationdata.h cannot be
hgs
parents:
diff changeset
   116
    included on test code.
hgs
parents:
diff changeset
   117
 */
hgs
parents:
diff changeset
   118
QVariant RadioHsWidgetRadioServiceClient::createRadioNotificationData(int type, const QVariant& data)
hgs
parents:
diff changeset
   119
{
hgs
parents:
diff changeset
   120
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
   121
    QVariant ret;
hgs
parents:
diff changeset
   122
    ret.setValue(RadioNotificationData(type, data));
hgs
parents:
diff changeset
   123
    return ret;
hgs
parents:
diff changeset
   124
}
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
/*!
hgs
parents:
diff changeset
   128
    Handles request errors.
hgs
parents:
diff changeset
   129
 
hgs
parents:
diff changeset
   130
    \param errorCode Code of the error type.
hgs
parents:
diff changeset
   131
    \param errorMessage Error message.
hgs
parents:
diff changeset
   132
 */
hgs
parents:
diff changeset
   133
void RadioHsWidgetRadioServiceClient::handleError(const int errorCode,
hgs
parents:
diff changeset
   134
    const QString &errorMessage)
hgs
parents:
diff changeset
   135
{
hgs
parents:
diff changeset
   136
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
   137
    Q_UNUSED(errorMessage)
hgs
parents:
diff changeset
   138
    LEVEL2(LOG_SLOT_CALLER);
hgs
parents:
diff changeset
   139
    handleRequestError(errorCode);
hgs
parents:
diff changeset
   140
}
hgs
parents:
diff changeset
   141
hgs
parents:
diff changeset
   142
/*!
hgs
parents:
diff changeset
   143
    Handle changes in FM Radio.
hgs
parents:
diff changeset
   144
 
hgs
parents:
diff changeset
   145
    \param value List of information published by radio.
hgs
parents:
diff changeset
   146
 */
hgs
parents:
diff changeset
   147
void RadioHsWidgetRadioServiceClient::handleFmRadioChange(
hgs
parents:
diff changeset
   148
    const QVariant &value)
hgs
parents:
diff changeset
   149
{
hgs
parents:
diff changeset
   150
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
   151
    LEVEL2(LOG_SLOT_CALLER);
hgs
parents:
diff changeset
   152
    // Request is not pending anymore.
hgs
parents:
diff changeset
   153
    mRequestPending = false;
hgs
parents:
diff changeset
   154
    // If first request was refresh operation.
hgs
parents:
diff changeset
   155
    if (!mDataInitialized) {
hgs
parents:
diff changeset
   156
        LOG("Set operation to KRadioServiceMonitorOperation");
hgs
parents:
diff changeset
   157
        // Change the operation to the monitoring.
hgs
parents:
diff changeset
   158
        mRadioMonitorRequest->setOperation(RADIO_MONITOR_SERVICE_OPERATION);
hgs
parents:
diff changeset
   159
        // Data is now initialized.
hgs
parents:
diff changeset
   160
        mDataInitialized = true;
hgs
parents:
diff changeset
   161
    }
hgs
parents:
diff changeset
   162
    // Request notifications again.
hgs
parents:
diff changeset
   163
    startMonitoring(FmRadio::VisibiltyDoNotChange);
hgs
parents:
diff changeset
   164
    
hgs
parents:
diff changeset
   165
    // If valid and right kind of data was received.
hgs
parents:
diff changeset
   166
    if (value.canConvert(QVariant::List) ) {
hgs
parents:
diff changeset
   167
        QVariantList notificationList = value.toList();
hgs
parents:
diff changeset
   168
        // Iterate through the list.
hgs
parents:
diff changeset
   169
        foreach (const QVariant& variant, notificationList) {
hgs
parents:
diff changeset
   170
            // Extract notification data.
hgs
parents:
diff changeset
   171
            RadioNotificationData notification = variant.value<RadioNotificationData>();
hgs
parents:
diff changeset
   172
            // And it's type.
hgs
parents:
diff changeset
   173
            const int notificationId = notification.mType;
hgs
parents:
diff changeset
   174
            // And the data
hgs
parents:
diff changeset
   175
            const QVariant notificationData = notification.mData;
hgs
parents:
diff changeset
   176
            // If the data is valid.
hgs
parents:
diff changeset
   177
            if (notificationData.isValid()) {
hgs
parents:
diff changeset
   178
                // Notify the observer about the new information.
hgs
parents:
diff changeset
   179
                mParent.handleRadioInformationChange(notificationId, notificationData);
hgs
parents:
diff changeset
   180
            }
hgs
parents:
diff changeset
   181
        }
hgs
parents:
diff changeset
   182
    }
hgs
parents:
diff changeset
   183
}
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
/*!
hgs
parents:
diff changeset
   186
    Handles request error.
hgs
parents:
diff changeset
   187
 
hgs
parents:
diff changeset
   188
    \param error Identifies the error. 
hgs
parents:
diff changeset
   189
 */
hgs
parents:
diff changeset
   190
void RadioHsWidgetRadioServiceClient::handleRequestError(const int error)
hgs
parents:
diff changeset
   191
{
hgs
parents:
diff changeset
   192
    LOG_METHOD;
hgs
parents:
diff changeset
   193
    QString errorStr;
hgs
parents:
diff changeset
   194
    switch (error) {
hgs
parents:
diff changeset
   195
    case XQService::ENoError:
hgs
parents:
diff changeset
   196
        errorStr = "No error";
hgs
parents:
diff changeset
   197
        break;
hgs
parents:
diff changeset
   198
    case XQService::EConnectionError:
hgs
parents:
diff changeset
   199
        errorStr = "Error in IPC Connection";
hgs
parents:
diff changeset
   200
        break;
hgs
parents:
diff changeset
   201
    case XQService::EConnectionClosed:
hgs
parents:
diff changeset
   202
        errorStr = "IPC Connection is closed";
hgs
parents:
diff changeset
   203
        stopMonitoring();
hgs
parents:
diff changeset
   204
        mParent.handleRadioStateChange(FmRadio::StateNotRunning);
hgs
parents:
diff changeset
   205
        break;
hgs
parents:
diff changeset
   206
    case XQService::EServerNotFound:
hgs
parents:
diff changeset
   207
        errorStr = "Can not find server";
hgs
parents:
diff changeset
   208
        break;
hgs
parents:
diff changeset
   209
    case XQService::EIPCError:
hgs
parents:
diff changeset
   210
        errorStr = "Known IPC error defined by SDK";
hgs
parents:
diff changeset
   211
        break;
hgs
parents:
diff changeset
   212
    case XQService::EUnknownError:
hgs
parents:
diff changeset
   213
        errorStr = "Unknown IPC error";
hgs
parents:
diff changeset
   214
        break;
hgs
parents:
diff changeset
   215
    case XQService::ERequestPending:
hgs
parents:
diff changeset
   216
        errorStr = "Already pending request";
hgs
parents:
diff changeset
   217
        break;
hgs
parents:
diff changeset
   218
    default:
hgs
parents:
diff changeset
   219
        errorStr = "default case at error";
hgs
parents:
diff changeset
   220
        break;
hgs
parents:
diff changeset
   221
    }
hgs
parents:
diff changeset
   222
    LOG(GETSTRING(errorStr));
hgs
parents:
diff changeset
   223
}
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
/*!
hgs
parents:
diff changeset
   226
    Creates control service request object.
hgs
parents:
diff changeset
   227
 */
hgs
parents:
diff changeset
   228
void RadioHsWidgetRadioServiceClient::createControlServiceRequest()
hgs
parents:
diff changeset
   229
{
hgs
parents:
diff changeset
   230
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
   231
    if (!mRadioControlRequest) {
hgs
parents:
diff changeset
   232
        LOG("Create request");
hgs
parents:
diff changeset
   233
        mRadioControlRequest = mApplicationManager.create(
hgs
parents:
diff changeset
   234
            RADIO_CONTROL_SERVICE, RADIO_CONTROL_SERVICE_OPERATION, false);
hgs
parents:
diff changeset
   235
        
hgs
parents:
diff changeset
   236
        if (mRadioControlRequest) {
hgs
parents:
diff changeset
   237
            LOG("Request created");
hgs
parents:
diff changeset
   238
            // Connect request to handle it's error.
hgs
parents:
diff changeset
   239
            Radio::connect(mRadioControlRequest,
hgs
parents:
diff changeset
   240
                SIGNAL(requestError(int,const QString&)), this,
hgs
parents:
diff changeset
   241
                SLOT(handleError(int,const QString&)));
hgs
parents:
diff changeset
   242
            
hgs
parents:
diff changeset
   243
            // Request is synchronous.
hgs
parents:
diff changeset
   244
            mRadioControlRequest->setSynchronous(true);
hgs
parents:
diff changeset
   245
            // Request is not embedded.
hgs
parents:
diff changeset
   246
            mRadioControlRequest->setEmbedded(false);
hgs
parents:
diff changeset
   247
        }
hgs
parents:
diff changeset
   248
    }
hgs
parents:
diff changeset
   249
}
hgs
parents:
diff changeset
   250
hgs
parents:
diff changeset
   251
/*!
hgs
parents:
diff changeset
   252
    Creates monitor service request object.
hgs
parents:
diff changeset
   253
 */
hgs
parents:
diff changeset
   254
void RadioHsWidgetRadioServiceClient::createMonitorServiceRequest()
hgs
parents:
diff changeset
   255
{
hgs
parents:
diff changeset
   256
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
   257
    if (!mRadioMonitorRequest) {
hgs
parents:
diff changeset
   258
        // If data is not initialized, set operation to refresh,
hgs
parents:
diff changeset
   259
        // otherwise to monitor operation.
hgs
parents:
diff changeset
   260
        QString operation = mDataInitialized ? RADIO_MONITOR_SERVICE_OPERATION
hgs
parents:
diff changeset
   261
            : RADIO_MONITOR_SERVICE_REFRESH_OPERATION;
hgs
parents:
diff changeset
   262
hgs
parents:
diff changeset
   263
        LOG("Create request");
hgs
parents:
diff changeset
   264
        mRadioMonitorRequest = mApplicationManager.create(
hgs
parents:
diff changeset
   265
            RADIO_MONITOR_SERVICE, operation, false);
hgs
parents:
diff changeset
   266
        
hgs
parents:
diff changeset
   267
        if (mRadioMonitorRequest) {
hgs
parents:
diff changeset
   268
            LOG("Request created");
hgs
parents:
diff changeset
   269
            // Connect request to handle it's completion.
hgs
parents:
diff changeset
   270
            Radio::connect(mRadioMonitorRequest, SIGNAL(requestOk(const QVariant&)),
hgs
parents:
diff changeset
   271
                this, SLOT(handleFmRadioChange(const QVariant&)));
hgs
parents:
diff changeset
   272
            // Connect request to handle it's error.
hgs
parents:
diff changeset
   273
            Radio::connect(mRadioMonitorRequest,
hgs
parents:
diff changeset
   274
                SIGNAL(requestError(int,const QString&)), this,
hgs
parents:
diff changeset
   275
                SLOT(handleError(int,const QString&)));
hgs
parents:
diff changeset
   276
            
hgs
parents:
diff changeset
   277
            // Request is asynchronous.
hgs
parents:
diff changeset
   278
            mRadioMonitorRequest->setSynchronous(false);
hgs
parents:
diff changeset
   279
            // Request is not embedded.
hgs
parents:
diff changeset
   280
            mRadioMonitorRequest->setEmbedded(false);
hgs
parents:
diff changeset
   281
        }
hgs
parents:
diff changeset
   282
    }
hgs
parents:
diff changeset
   283
}
hgs
parents:
diff changeset
   284
hgs
parents:
diff changeset
   285
/*!
hgs
parents:
diff changeset
   286
    Sends the control request containing the command.
hgs
parents:
diff changeset
   287
    
hgs
parents:
diff changeset
   288
    \param argument Contains the command.
hgs
parents:
diff changeset
   289
    \param visibility Desired visibility for the radio after the request.
hgs
parents:
diff changeset
   290
 */
hgs
parents:
diff changeset
   291
void RadioHsWidgetRadioServiceClient::sendControlRequest(
hgs
parents:
diff changeset
   292
    const QVariant &argument,
hgs
parents:
diff changeset
   293
    const FmRadio::VisibiltyAfterRequest visibility)
hgs
parents:
diff changeset
   294
{
hgs
parents:
diff changeset
   295
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
   296
    if (!argument.isValid()) {
hgs
parents:
diff changeset
   297
        return;
hgs
parents:
diff changeset
   298
    }
hgs
parents:
diff changeset
   299
    
hgs
parents:
diff changeset
   300
    // If there is not mRadioControlRequest already.
hgs
parents:
diff changeset
   301
    if (!mRadioControlRequest) {
hgs
parents:
diff changeset
   302
        // Create it.
hgs
parents:
diff changeset
   303
        createControlServiceRequest();
hgs
parents:
diff changeset
   304
    }
hgs
parents:
diff changeset
   305
    
hgs
parents:
diff changeset
   306
    // Set argument list for request.
hgs
parents:
diff changeset
   307
    QVariantList arguments;
hgs
parents:
diff changeset
   308
    arguments.append(argument);
hgs
parents:
diff changeset
   309
    mRadioControlRequest->setArguments(arguments);
hgs
parents:
diff changeset
   310
    
hgs
parents:
diff changeset
   311
    prepareRequestInfo(mRadioControlRequest, visibility);
hgs
parents:
diff changeset
   312
    
hgs
parents:
diff changeset
   313
    LOG("Send request");
hgs
parents:
diff changeset
   314
    bool res = mRadioControlRequest->send();
hgs
parents:
diff changeset
   315
    
hgs
parents:
diff changeset
   316
    /*
hgs
parents:
diff changeset
   317
    if (!res) {
hgs
parents:
diff changeset
   318
        LOG("Send failed");
hgs
parents:
diff changeset
   319
        int error = mRadioControlRequest->lastError();
hgs
parents:
diff changeset
   320
        handleRequestError(error);
hgs
parents:
diff changeset
   321
    }
hgs
parents:
diff changeset
   322
    */
hgs
parents:
diff changeset
   323
}
hgs
parents:
diff changeset
   324
hgs
parents:
diff changeset
   325
/*!
hgs
parents:
diff changeset
   326
    Sends the monitor request.
hgs
parents:
diff changeset
   327
    
hgs
parents:
diff changeset
   328
    \param visibility Desired visibility for the radio after the request.
hgs
parents:
diff changeset
   329
 */
hgs
parents:
diff changeset
   330
void RadioHsWidgetRadioServiceClient::sendMonitorRequest(
hgs
parents:
diff changeset
   331
    const FmRadio::VisibiltyAfterRequest visibility)
hgs
parents:
diff changeset
   332
{
hgs
parents:
diff changeset
   333
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
   334
    prepareRequestInfo(mRadioMonitorRequest, visibility);
hgs
parents:
diff changeset
   335
    if (!mRequestPending) {
hgs
parents:
diff changeset
   336
        LOG("Send request");
hgs
parents:
diff changeset
   337
        mRequestPending = mRadioMonitorRequest->send();
hgs
parents:
diff changeset
   338
    }
hgs
parents:
diff changeset
   339
}
hgs
parents:
diff changeset
   340
hgs
parents:
diff changeset
   341
/*!
hgs
parents:
diff changeset
   342
    Prepares the visibility of the request.
hgs
parents:
diff changeset
   343
    
hgs
parents:
diff changeset
   344
    \param request Request to prepare.
hgs
parents:
diff changeset
   345
    \param visibility Desired visibility for the radio after the request.
hgs
parents:
diff changeset
   346
 */
hgs
parents:
diff changeset
   347
void RadioHsWidgetRadioServiceClient::prepareRequestInfo(
hgs
parents:
diff changeset
   348
    XQAiwRequest *request,
hgs
parents:
diff changeset
   349
    const FmRadio::VisibiltyAfterRequest visibility)
hgs
parents:
diff changeset
   350
{
hgs
parents:
diff changeset
   351
    LOG_METHOD_ENTER;
hgs
parents:
diff changeset
   352
    XQRequestInfo info;
hgs
parents:
diff changeset
   353
    if (visibility == FmRadio::VisibiltyToForeground) {
hgs
parents:
diff changeset
   354
        info.setForeground(true);
hgs
parents:
diff changeset
   355
    } else if (visibility == FmRadio::VisibiltyToBackground) {
hgs
parents:
diff changeset
   356
        info.setBackground(true);
hgs
parents:
diff changeset
   357
    }
hgs
parents:
diff changeset
   358
    if (request) {
hgs
parents:
diff changeset
   359
        request->setInfo(info);
hgs
parents:
diff changeset
   360
    }
hgs
parents:
diff changeset
   361
}