diff -r 000000000000 -r 7f85d04be362 upnpframework/upnpmusicadapter/src/upnpliteselectionfiller.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpframework/upnpmusicadapter/src/upnpliteselectionfiller.cpp Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,133 @@ +/* +* Copyright (c) 2007 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: Fills MPX playlist by browsing media server content +* +*/ + + +// INCLUDE FILES +// upnpframework / xmlparser api +#include "upnpobjectlite.h" + +// musicadapter internal +#include "upnpliteselectionfiller.h" + +// debug +_LIT16( KComponentLogfile, "musicadapter.txt" ); +#include "upnplog.h" + +// CONSTANTS +const TInt KItemListGranularity = 20; + +// METHODS + +// -------------------------------------------------------------------------- +// CUPnPLiteSelectionFiller::NewL +//--------------------------------------------------------------------------- +EXPORT_C CUPnPLiteSelectionFiller* CUPnPLiteSelectionFiller::NewL( + const RPointerArray& aObjectList, + const CUpnpAVDevice& aMediaServer ) + { + CUPnPLiteSelectionFiller* filler = + new(ELeave)CUPnPLiteSelectionFiller(); + CleanupStack::PushL( filler ); + filler->ConstructL( aObjectList, aMediaServer ); + CleanupStack::Pop( filler ); + return filler; + } + +// -------------------------------------------------------------------------- +// CUPnPLiteSelectionFiller::FillL +// Fill track data into the playlist +// -------------------------------------------------------------------------- +// +void CUPnPLiteSelectionFiller::FillL( + CUPnPMusicAdapter& aHost, + CMPXMediaArray& aPlaylist ) + { + __LOG( "CUPnPLiteSelectionFiller::FillL" ); + SetHost( aHost ); + + TInt count = iObjectList.Count(); + for( TInt i = 0; i < count; i++ ) + { + // Convert to mpx media and add to the playlist. + FillItemMpxPlaylistL( aPlaylist, *iObjectList[i], 0 ); + } + + DoComplete(); + __LOG( "CUPnPLiteSelectionFiller::FillL - End" ); + } + +// -------------------------------------------------------------------------- +// CUPnPLiteSelectionFiller::CancelFill +// -------------------------------------------------------------------------- +// +void CUPnPLiteSelectionFiller::CancelFill() + { + // no implementation required + // - this class does not have async nature + } + +// -------------------------------------------------------------------------- +// CUPnPLiteSelectionFiller::PlaylistSize +// Returns the total playlist size +// -------------------------------------------------------------------------- +// +TInt CUPnPLiteSelectionFiller::PlaylistSize() + { + return iObjectList.Count(); + } + +// -------------------------------------------------------------------------- +// CUPnPLiteSelectionFiller::~CUPnPLiteSelectionFiller +//--------------------------------------------------------------------------- +EXPORT_C CUPnPLiteSelectionFiller::~CUPnPLiteSelectionFiller() + { + iObjectList.Reset(); + } + +// -------------------------------------------------------------------------- +// CUPnPLiteSelectionFiller::CUPnPLiteSelectionFiller +// 1st phase constructor. +// -------------------------------------------------------------------------- +// +CUPnPLiteSelectionFiller::CUPnPLiteSelectionFiller() + : iObjectList( KItemListGranularity ) + { + } + +// -------------------------------------------------------------------------- +// CUPnPLiteSelectionFiller::ConstructL +// 2nd phase constructor. +// -------------------------------------------------------------------------- +// +void CUPnPLiteSelectionFiller::ConstructL( + const RPointerArray& aObjectList, + const CUpnpAVDevice& aMediaServer ) + { + __LOG( "CUPnPLiteSelectionFiller::ConstructL" ); + + // Set object list + TInt count = aObjectList.Count(); + for( TInt i = 0; i < count; i++ ) + { + iObjectList.AppendL( aObjectList[i] ); + } + + // Set device uid + SetSourceDeviceL( aMediaServer ); + } + +