mmaudio_plat/telephony_audio_routing_client_api/TelephonyAudioRouting_TestApp/src/myplayerappui.cpp
author hgs
Tue, 02 Nov 2010 12:13:59 +0000
changeset 5 b220a9341636
permissions -rw-r--r--
2010wk46_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
     1
/*
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
     3
* All rights reserved.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
     8
*
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
     9
* Initial Contributors:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    11
*
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    12
* Contributors:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    13
*
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    14
* Description:  TelephonyAudioRouting Test Application
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    15
*
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    16
*/
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    17
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    18
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    19
// INCLUDE FILES
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    20
#include <avkon.hrh>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    21
#include <aknmessagequerydialog.h>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    22
#include <CAknMemorySelectionDialog.h>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    23
#include <CAknFileSelectionDialog.h>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    24
#include <AknCommonDialogs.h>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    25
#include <aknnotewrappers.h>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    26
#include <StringLoader.h>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    27
#include <f32file.h>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    28
#include <s32file.h>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    29
#include <hlplch.h>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    30
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    31
#include <myplayer_0xe0edbe14.rsg>
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    32
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    33
#include "myplayer.hrh"
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    34
#include "myplayer.pan"
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    35
#include "myplayerapplication.h"
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    36
#include "myplayerappui.h"
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    37
#include "myplayerappview.h"
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    38
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    39
_LIT( KFileName, "C:\\private\\E0EDBE14\\MyPlayer.txt" );
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    40
_LIT( KText, "My Player");
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    41
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    42
// ============================ MEMBER FUNCTIONS ===============================
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    43
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    44
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    45
// -----------------------------------------------------------------------------
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    46
// CMyPlayerAppUi::ConstructL()
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    47
// Symbian 2nd phase constructor can leave.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    48
// -----------------------------------------------------------------------------
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    49
//
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    50
void CMyPlayerAppUi::ConstructL()
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    51
    {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    52
    // Initialise app UI with standard value.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    53
    BaseConstructL(CAknAppUi::EAknEnableSkin);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    54
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    55
    // Create view object
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    56
    iAppView = CMyPlayerAppView::NewL(ClientRect());
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    57
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    58
    // Create a file to write the text to
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    59
    TInt err = CCoeEnv::Static()->FsSession().MkDirAll(KFileName);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    60
    if ((KErrNone != err) && (KErrAlreadyExists != err))
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    61
        {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    62
        return;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    63
        }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    64
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    65
    RFile file;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    66
    err = file.Replace(CCoeEnv::Static()->FsSession(), KFileName, EFileWrite);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    67
    CleanupClosePushL(file);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    68
    if (KErrNone != err)
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    69
        {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    70
        CleanupStack::PopAndDestroy(1); // file
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    71
        return;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    72
        }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    73
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    74
    RFileWriteStream outputFileStream(file);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    75
    CleanupClosePushL(outputFileStream);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    76
    outputFileStream << KText;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    77
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    78
    CleanupStack::PopAndDestroy(2); // outputFileStream, file
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    79
    
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    80
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    81
    }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    82
// -----------------------------------------------------------------------------
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    83
// CMyPlayerAppUi::CMyPlayerAppUi()
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    84
// C++ default constructor can NOT contain any code, that might leave.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    85
// -----------------------------------------------------------------------------
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    86
//
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    87
CMyPlayerAppUi::CMyPlayerAppUi()
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    88
    {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    89
    // No implementation required
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    90
    }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    91
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    92
// -----------------------------------------------------------------------------
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    93
// CMyPlayerAppUi::~CMyPlayerAppUi()
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    94
// Destructor.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    95
// -----------------------------------------------------------------------------
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    96
//
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    97
CMyPlayerAppUi::~CMyPlayerAppUi()
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    98
    {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
    99
    if (iAppView)
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   100
        {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   101
        delete iAppView;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   102
        iAppView = NULL;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   103
        }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   104
    if(iPlayer)
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   105
        delete iPlayer;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   106
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   107
    }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   108
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   109
// -----------------------------------------------------------------------------
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   110
// CMyPlayerAppUi::HandleCommandL()
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   111
// Takes care of command handling.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   112
// -----------------------------------------------------------------------------
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   113
//
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   114
void CMyPlayerAppUi::HandleCommandL(TInt aCommand)
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   115
    {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   116
    switch (aCommand)
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   117
        {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   118
        case EEikCmdExit:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   119
        case EAknSoftkeyExit:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   120
            Exit();
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   121
            break;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   122
        
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   123
        case ECmdCreatePlayer:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   124
            {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   125
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   126
            // Load a string from the resource file and display it
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   127
            
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   128
            iPlayer = CMyPlayer::NewL();
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   129
            
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   130
            HBufC* textResource = StringLoader::LoadLC(R_AUDIO_PLAYER_TEXT);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   131
            CAknInformationNote* informationNote;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   132
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   133
            informationNote = new (ELeave) CAknInformationNote;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   134
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   135
            // Show the information Note with
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   136
            // textResource loaded with StringLoader.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   137
            informationNote->ExecuteLD(*textResource);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   138
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   139
            // Pop HBuf from CleanUpStack and Destroy it.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   140
            CleanupStack::PopAndDestroy(textResource);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   141
            }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   142
            break;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   143
        case ECmdSetOutputL:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   144
            {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   145
            iPlayer->SetOutputL();
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   146
            RFile rFile;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   147
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   148
            //Open file where the stream text is
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   149
            User::LeaveIfError(rFile.Open(CCoeEnv::Static()->FsSession(),
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   150
                    KFileName, EFileStreamText));//EFileShareReadersOnly));// EFileStreamText));
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   151
            CleanupClosePushL(rFile);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   152
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   153
            // copy stream from file to RFileStream object
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   154
            RFileReadStream inputFileStream(rFile);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   155
            CleanupClosePushL(inputFileStream);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   156
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   157
            // HBufC descriptor is created from the RFileStream object.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   158
            HBufC* fileData = HBufC::NewLC(inputFileStream, 32);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   159
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   160
            CAknInformationNote* informationNote;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   161
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   162
            informationNote = new (ELeave) CAknInformationNote;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   163
            // Show the information Note
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   164
            informationNote->ExecuteLD(*fileData);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   165
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   166
            // Pop loaded resources from the cleanup stack
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   167
            CleanupStack::PopAndDestroy(3); // filedata, inputFileStream, rFile
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   168
            }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   169
            break;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   170
        case ECmdSetShowNote:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   171
            {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   172
            iPlayer->SetShowNote();
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   173
            }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   174
            break;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   175
        case ECmdGetShowNote:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   176
            {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   177
            iPlayer->GetShowNote();
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   178
            }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   179
            break;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   180
        case ECmdOutputChanged:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   181
            {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   182
            iPlayer->OutputChangedTARManager();
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   183
            }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   184
            break;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   185
        case ECmdOutputChangeReq:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   186
           {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   187
           iPlayer->OutputChangeRequestCompleted();
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   188
           }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   189
           break;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   190
        default:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   191
            Panic(EMyPlayerUi);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   192
            break;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   193
        }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   194
    }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   195
// -----------------------------------------------------------------------------
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   196
//  Called by the framework when the application status pane
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   197
//  size is changed.  Passes the new client rectangle to the
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   198
//  AppView
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   199
// -----------------------------------------------------------------------------
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   200
//
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   201
void CMyPlayerAppUi::HandleStatusPaneSizeChange()
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   202
    {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   203
    iAppView->SetRect(ClientRect());
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   204
    }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   205
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   206
CArrayFix<TCoeHelpContext>* CMyPlayerAppUi::HelpContextL() const
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   207
    {
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   208
#warning "Please see comment about help and UID3..."
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   209
    // Note: Help will not work if the application uid3 is not in the
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   210
    // protected range.  The default uid3 range for projects created
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   211
    // from this template (0xE0000000 - 0xEFFFFFFF) are not in the protected range so that they
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   212
    // can be self signed and installed on the device during testing.
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   213
    // Once you get your official uid3 from Symbian Ltd. and find/replace
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   214
    // all occurrences of uid3 in your project, the context help will
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   215
    // work. Alternatively, a patch now exists for the versions of 
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   216
    // HTML help compiler in SDKs and can be found here along with an FAQ:
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   217
    // http://www3.symbian.com/faq.nsf/AllByDate/E9DF3257FD565A658025733900805EA2?OpenDocument
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   218
    CArrayFixFlat<TCoeHelpContext>* array = new (ELeave) CArrayFixFlat<
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   219
            TCoeHelpContext> (1);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   220
    CleanupStack::PushL(array);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   221
    //array->AppendL(TCoeHelpContext(KUidMyPlayerApp, KGeneral_Information));
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   222
    CleanupStack::Pop(array);
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   223
    return array;
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   224
    }
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   225
b220a9341636 2010wk46_01
hgs
parents:
diff changeset
   226
// End of File