accessoryservices/headsetstatusapi/Src/CHeadsetStatus.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 19 Aug 2010 11:09:10 +0300
branchRCL_3
changeset 20 1ddbe54d0645
parent 0 4e1aa6a622a0
permissions -rw-r--r--
Revision: 201031 Kit: 201033

/*
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
*     Main functionality of CHeadsetStatus
*
*
*/


// INCLUDE FILES
#include "HeadsetStatus.h"
#include "CHeadsetStatusContainer.h"
#include <e32std.h>

// UNNANMED NAMESPACE FOR LOCAL DEFINITIONS
namespace
    {
    //  CONSTANTS
    _LIT( KPanicCat, "HeadsetStatus" );
    
    //  DATA TYPES
    enum TPanicCode
        {
        EInvalidObserver
        };
    }

// ========================= MEMBER FUNCTIONS ================================
   
// ---------------------------------------------------------------------------
// C++ constructor.
// ---------------------------------------------------------------------------
CHeadsetStatus::CHeadsetStatus( )
    {
    }

// ---------------------------------------------------------------------------
// CHeadsetStatus::NewL
// ---------------------------------------------------------------------------
EXPORT_C CHeadsetStatus* CHeadsetStatus::NewL( )
    {
    CHeadsetStatus* self = new ( ELeave ) CHeadsetStatus();
    
    CleanupStack::PushL( self );
    self->ConstructL();
    CleanupStack::Pop( self );
    
    return self;
    }

// ---------------------------------------------------------------------------
// CHeadsetStatus::ConstructL
// 
// Symbian OS two-phased constructor.
// ---------------------------------------------------------------------------
void CHeadsetStatus::ConstructL()
    {
    iContainer = CHeadsetStatusContainer::NewL();
    }
     
// ---------------------------------------------------------------------------
// C++ destructor
// ---------------------------------------------------------------------------
EXPORT_C CHeadsetStatus::~CHeadsetStatus()
    {    
    delete iContainer;
    }

// ---------------------------------------------------------------------------
// CHeadsetStatus::HeadsetConnectedL
// 
// Method to query the headsets connectivity status. Returns error code 
// (or KErrNone when query succeeded) and sets the query result into the 
// boolean in which the parameter aState is referring.
// ---------------------------------------------------------------------------
EXPORT_C TInt CHeadsetStatus::HeadsetConnectedL( TBool& aState )
    {
    return iContainer->QueryHeadsetStatus( aState );
    }
    
// ---------------------------------------------------------------------------
// CHeadsetStatus::SetObserver
// ---------------------------------------------------------------------------
EXPORT_C void CHeadsetStatus::SetObserver( MHeadsetStatusObserver* aObserver )
    {
    __ASSERT_ALWAYS( aObserver, User::Panic( KPanicCat, EInvalidObserver ) );
    
    iContainer->SetObserver( aObserver );
    }

// ---------------------------------------------------------------------------
// CHeadsetStatus::StartObserving
// ---------------------------------------------------------------------------
EXPORT_C void CHeadsetStatus::StartObserving()
    {
    iContainer->StartObserving();
    }

// ---------------------------------------------------------------------------
// CHeadsetStatus::StopObserving
// ---------------------------------------------------------------------------
EXPORT_C void CHeadsetStatus::StopObserving()
    {
    iContainer->StopObserving();    
    }

// ---------------------------------------------------------------------------
// CHeadsetStatus::StopObserving
// ---------------------------------------------------------------------------
EXPORT_C TBool CHeadsetStatus::IsObserving() const
    {
    return iContainer->IsObserving();
    }

// End of File