phoneapp/phoneringingtoneplayer/src/cphonetoneserversession.cpp
author hgs
Fri, 15 Oct 2010 12:58:46 +0300
changeset 78 baacf668fe89
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
78
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 - 2010 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:  Phone ringing tone server session.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
// INCLUDE FILES
hgs
parents:
diff changeset
    20
#include <e32base.h>
hgs
parents:
diff changeset
    21
#include <utf.h>
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include "phoneconstants.h"
hgs
parents:
diff changeset
    24
#include "mphonetoneserver.h"
hgs
parents:
diff changeset
    25
#include "cphonetoneserver.h"
hgs
parents:
diff changeset
    26
#include "phoneringingtonetrace.h"
hgs
parents:
diff changeset
    27
#include "cphonetoneserversession.h"
hgs
parents:
diff changeset
    28
#include "cphonetoneserverplaybackcontroller.h"
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
// ============================ MEMBER FUNCTIONS ===============================
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    35
// CPhoneToneServerSession::CPhoneToneServerSession
hgs
parents:
diff changeset
    36
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    37
//
hgs
parents:
diff changeset
    38
CPhoneToneServerSession::CPhoneToneServerSession( const MPhoneToneServer& aServer )
hgs
parents:
diff changeset
    39
    : iServer( aServer )
hgs
parents:
diff changeset
    40
    {
hgs
parents:
diff changeset
    41
    PHONERINGINGTONE_PRINT("CPhoneToneServerSession::CPhoneToneServerSession <");    
hgs
parents:
diff changeset
    42
    PHONERINGINGTONE_PRINT("CPhoneToneServerSession::CPhoneToneServerSession >");
hgs
parents:
diff changeset
    43
    }
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    47
// CPhoneToneServerSession::~CPhoneToneServerSession
hgs
parents:
diff changeset
    48
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    49
//
hgs
parents:
diff changeset
    50
CPhoneToneServerSession::~CPhoneToneServerSession()
hgs
parents:
diff changeset
    51
    {
hgs
parents:
diff changeset
    52
    PHONERINGINGTONE_PRINT("CPhoneToneServerSession::~CPhoneToneServerSession <");
hgs
parents:
diff changeset
    53
    delete iController;
hgs
parents:
diff changeset
    54
    iServer.RunDown();
hgs
parents:
diff changeset
    55
    PHONERINGINGTONE_PRINT("CPhoneToneServerSession::~CPhoneToneServerSession >");    
hgs
parents:
diff changeset
    56
    }
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    59
// CPhoneToneServerSession::NewL
hgs
parents:
diff changeset
    60
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    61
//
hgs
parents:
diff changeset
    62
CPhoneToneServerSession* CPhoneToneServerSession::NewL( const MPhoneToneServer& aServer )
hgs
parents:
diff changeset
    63
    {
hgs
parents:
diff changeset
    64
    PHONERINGINGTONE_PRINT("CPhoneToneServerSession::NewL <");
hgs
parents:
diff changeset
    65
    CPhoneToneServerSession* self = new( ELeave )CPhoneToneServerSession( aServer );
hgs
parents:
diff changeset
    66
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
    67
    self->ConstructL();
hgs
parents:
diff changeset
    68
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
    69
    PHONERINGINGTONE_PRINT("CPhoneToneServerSession::NewL >");
hgs
parents:
diff changeset
    70
    return self;
hgs
parents:
diff changeset
    71
    }
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    74
// CPhoneToneServerSession::ConstructL
hgs
parents:
diff changeset
    75
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    76
//
hgs
parents:
diff changeset
    77
void CPhoneToneServerSession::ConstructL()
hgs
parents:
diff changeset
    78
    {        
hgs
parents:
diff changeset
    79
    PHONERINGINGTONE_PRINT("CPhoneToneServerSession::ConstructL <");
hgs
parents:
diff changeset
    80
    iController = CPhoneToneServerPlaybackController::NewL();
hgs
parents:
diff changeset
    81
    PHONERINGINGTONE_PRINT("CPhoneToneServerSession::ConstructL >");
hgs
parents:
diff changeset
    82
    }    
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    85
// CPhoneToneServerSession::ServiceL
hgs
parents:
diff changeset
    86
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    87
//
hgs
parents:
diff changeset
    88
void CPhoneToneServerSession::ServiceL( const RMessage2& aMessage )
hgs
parents:
diff changeset
    89
    {
hgs
parents:
diff changeset
    90
    PHONERINGINGTONE_PRINT("CPhoneToneServerSession::ServiceL <");
hgs
parents:
diff changeset
    91
    TInt volume = aMessage.Int1();
hgs
parents:
diff changeset
    92
    TProfileRingingType ringingType = ( TProfileRingingType )aMessage.Int2();
hgs
parents:
diff changeset
    93
    
hgs
parents:
diff changeset
    94
    switch ( aMessage.Function() )
hgs
parents:
diff changeset
    95
        {
hgs
parents:
diff changeset
    96
        
hgs
parents:
diff changeset
    97
        //S^4 onwards supported types are 
hgs
parents:
diff changeset
    98
        //EProfileRingingTypeRinging and EProfileRingingTypeSilent
hgs
parents:
diff changeset
    99
        case EPlayAudioRingTone:
hgs
parents:
diff changeset
   100
            {
hgs
parents:
diff changeset
   101
            if ( EProfileRingingTypeSilent == ringingType )
hgs
parents:
diff changeset
   102
                {
hgs
parents:
diff changeset
   103
                PHONERINGINGTONE_PRINT("CPhoneToneServerSession::ServiceL - EProfileRingingTypeSilent");
hgs
parents:
diff changeset
   104
                iController->PlaySilentTone();
hgs
parents:
diff changeset
   105
                }
hgs
parents:
diff changeset
   106
            else
hgs
parents:
diff changeset
   107
                {
hgs
parents:
diff changeset
   108
                TFileName filename;
hgs
parents:
diff changeset
   109
                if ( aMessage.GetDesLength( 0 ) < filename.MaxLength() )
hgs
parents:
diff changeset
   110
                    {
hgs
parents:
diff changeset
   111
                    // Ignore error. 
hgs
parents:
diff changeset
   112
                    // Handling is done in audio playing sequence.
hgs
parents:
diff changeset
   113
                    aMessage.Read( 0, filename );
hgs
parents:
diff changeset
   114
                    }
hgs
parents:
diff changeset
   115
                PHONERINGINGTONE_PRINT("CPhoneToneServerSession::ServiceL - playNormalTone");
hgs
parents:
diff changeset
   116
                iController->PlayNormalToneL( filename, volume, ringingType );
hgs
parents:
diff changeset
   117
                }
hgs
parents:
diff changeset
   118
            }
hgs
parents:
diff changeset
   119
            break;
hgs
parents:
diff changeset
   120
            
hgs
parents:
diff changeset
   121
        case EStopPlaying:
hgs
parents:
diff changeset
   122
            {
hgs
parents:
diff changeset
   123
            iController->StopTone();
hgs
parents:
diff changeset
   124
            }
hgs
parents:
diff changeset
   125
            break;
hgs
parents:
diff changeset
   126
            
hgs
parents:
diff changeset
   127
        default:
hgs
parents:
diff changeset
   128
            break;
hgs
parents:
diff changeset
   129
        }
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
    aMessage.Complete( KErrNone );
hgs
parents:
diff changeset
   132
    PHONERINGINGTONE_PRINT("CPhoneToneServerSession::ServiceL >");    
hgs
parents:
diff changeset
   133
    }
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
// End of file