musicservices/src/musicservices.cpp
changeset 22 ecf06a08d4d9
child 29 8192e5b5c935
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/musicservices/src/musicservices.cpp	Mon May 03 12:29:20 2010 +0300
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+
+#include <hbapplication.h>
+#include <qstringlist.h>
+
+#include "musicservices.h"
+#include "getmusicservice.h"
+#include "playmusicservice.h"
+#include "mptrace.h"
+
+/*!
+    \class MusicServices
+    \brief Music services available.
+
+    MusicServices implements fetching of music URIs via service provider API and embedded playback.
+*/
+
+/*!
+    \fn void playReady( const QString& aFileName )
+
+    This signal is emitted when the play service has been loaded and playback of aFilenName should start
+
+ */
+
+/*!
+    \fn void playReady( const XQSharableFile& file )
+
+    This signal is emitted when the play service has been loaded and playback of file handle should start
+
+ */
+
+/*!
+    \fn void serviceActive()
+
+    This signal is emitted when the requested service has been detected and view initialization should continue
+
+ */
+
+/*!
+ Constructs music services
+ */
+MusicServices::MusicServices() : 
+        mCurrentService( MusicServices::ENoService )
+{
+    TX_ENTRY
+    mFetchService = new GetMusicService( this );
+    mPlayService = new PlayMusicService( this );
+    TX_EXIT
+}
+
+/*!
+ Destruct music services
+ */
+MusicServices::~MusicServices()
+{
+    TX_ENTRY
+    delete mFetchService;
+    delete mPlayService;
+    TX_EXIT
+}
+
+/*!
+ Gets current active service
+ */
+MusicServices::MusicService MusicServices::currentService()
+{
+    return mCurrentService;
+}
+
+/*!
+ Sets current active service
+ */
+void MusicServices::setCurrentService( MusicServices::MusicService service )
+{
+    mCurrentService = service;
+}
+
+/*!
+ Returns service context title
+ */
+QString MusicServices::contextTitle() const
+{
+
+    if( mCurrentService == MusicServices::EUriFetcher ) {
+        return mFetchService->contextTitle();
+    }
+    else if ( mCurrentService == MusicServices::EPlayback ) {
+        return mPlayService->contextTitle();
+    }
+    else {
+        Q_ASSERT_X(false, "MusicServices::contexTitle", "undefined service");
+        return QString();
+    }
+    
+    
+}
+
+/*!
+ Slot to be called when service is to be completed with selected item \songName
+ */
+void MusicServices::itemSelected( QString songName )
+{
+    TX_ENTRY_ARGS("songName: " << songName);
+    QStringList list;
+    list.append( songName );
+    if ( mCurrentService == MusicServices::EUriFetcher ) {
+        mFetchService->complete( list );
+    }
+    else if ( mCurrentService == MusicServices::EPlayback ) {
+        mPlayService->complete( list );
+    }
+    
+}
+