upnpframework/upnpmusicadapter/src/upnpliteselectionfiller.cpp
changeset 0 7f85d04be362
--- /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<CUpnpObjectLite>& 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<CUpnpObjectLite>& 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 );
+    }
+
+