smf/smfservermodule/smfclient/smfmusic.h
author cgandhi
Thu, 05 Aug 2010 16:48:48 +0530
changeset 18 013a02bf2bb0
child 25 a180113055cb
permissions -rw-r--r--
pushing changes for common libs and trace messages
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
     1
/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
     2
 * Copyright (c) 2010 Sasken Communication Technologies Ltd.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
     3
 * All rights reserved.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
     5
 * under the terms of the "Eclipse Public License v1.0"
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
     6
 * which accompanies  this distribution, and is available
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html"
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
     8
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
     9
 * Initial Contributors:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    10
 * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    11
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    12
 * Contributors:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    13
 * Manasij Roy, Nalina Hariharan
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    14
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    15
 * Description:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    16
 * Music related services
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    17
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    18
 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    19
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    20
#ifndef SMFMUSIC_H
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    21
#define SMFMUSIC_H
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    22
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    23
#include <qcontactgeolocation.h>
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    24
#include <smfglobal.h>
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    25
#include <smfevent.h>
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    26
#include <smfsubtitle.h>
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    27
#include <smfmusicprofile.h>
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    28
#include <smflyrics.h>
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    29
#include <smfplaylist.h>
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    30
#include <smftrackinfo.h>
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    31
#include <smflocation.h>
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    32
#include <smfprovider.h>
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    33
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    34
class SmfMusicServicePrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    35
class SmfMusicSearchPrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    36
class SmfLyricsServicePrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    37
class SmfPlaylistServicePrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    38
class SmfMusicEventsPrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    39
class SmfMusicFingerPrint;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    40
class SmfMusicRating;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    41
class SmfComment;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    42
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    43
using namespace QtMobility;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    44
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    45
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    46
/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    47
 * @ingroup smf_client_group
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    48
 * Basic music service ("org.symbian.smf.client.music.service")
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    49
 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    50
class SMFCLIENT_EXPORT SmfMusicService : public QObject
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    51
	{
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    52
	Q_OBJECT
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    53
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    54
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    55
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    56
	 * Constructs SmfMusicService.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    57
	 * @param baseProvider The base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    58
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    59
	SmfMusicService ( SmfProvider* baseProvider = 0 );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    60
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    61
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    62
	 * Destructor
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    63
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    64
	~SmfMusicService ( );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    65
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    66
public slots:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    67
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    68
	 * Gets self profile information asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    69
	 * userInfoAvailable() signal is emitted with SmfMusicProfile when the info is arrived
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    70
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    71
	void userinfo ( );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    72
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    73
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    74
	 * Asynchronously searches information about other service users for a particular venue
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    75
	 * searchInfoAvailable() signal is emitted with SmfMusicProfileList when the info is arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    76
	 * When the list is big user can specify the page number and per page item data.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    77
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    78
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    79
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    80
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    81
	void searchUser ( SmfLocation venue, int pageNum = SMF_FIRST_PAGE,
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    82
						int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    83
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    84
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    85
	 * Request for a custom operation. The signal customDataAvailable() is emitted 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    86
	 * when the result is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    87
	 * @param operationId OperationId
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    88
	 * @param customData Custom data to be sent
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    89
	 * Note:-Interpretation of operationId and customData is upto the concerned
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    90
	 * plugin and client application. service provider should provide some
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    91
	 * serializing-deserializing utilities for these custom data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    92
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    93
	void customRequest ( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    94
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    95
public slots:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    96
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    97
	 * Posts currently playing track.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    98
	 * Success can be checked by checking the signal postFinished()
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    99
	 * @param track Track to post
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   100
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   101
	void postCurrentPlaying ( SmfTrackInfo track);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   102
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   103
	void postRating ( SmfTrackInfo track, SmfMusicRating rate);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   104
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   105
	void postComments ( SmfTrackInfo track, SmfComment comment);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   106
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   107
signals:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   108
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   109
	 * Notification on arrival of the self profile as result of userinfo().
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   110
	 * @param profile The self profile
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   111
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   112
	void userInfoAvailable ( SmfMusicProfile* profile, SmfError error );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   113
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   114
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   115
	 * Notification on arrival of search info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   116
	 * @param profileList List of music profiles
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   117
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   118
	void searchInfoAvailable ( SmfMusicProfileList* profileList, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   119
			SmfError error, SmfResultPage resultPage );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   120
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   121
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   122
	 * Signals availability of the result of the customRequest
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   123
	 * @param operationId The ID to be shared between clients and the plugin
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   124
	 * @param customData data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   125
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   126
	void customDataAvailable( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   127
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   128
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   129
	 * Signals availability of the result of the posting a track or a comment or a rating
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   130
	 * @param error Error if any
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   131
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   132
	void postfinished ( SmfError error );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   133
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   134
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   135
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   136
	 * Gets the base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   137
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   138
	SmfProvider* getProvider() const;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   139
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   140
// Friend Class
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   141
	friend class SmfMusicServicePrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   142
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   143
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   144
	SmfProvider* m_baseProvider;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   145
	SmfMusicServicePrivate* m_private;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   146
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   147
	};
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   148
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   149
SMF_SERVICE_NAME(SmfMusicService, "org.symbian.smf.client.music.service\0.2")
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   150
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   151
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   152
/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   153
 * Provides service ("org.symbian.smf.client.music.search") for music search
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   154
 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   155
class SMFCLIENT_EXPORT SmfMusicSearch : public QObject
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   156
	{
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   157
	Q_OBJECT
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   158
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   159
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   160
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   161
	 * Constructs SmfMusicSearch with base provider as arguement.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   162
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   163
	SmfMusicSearch ( SmfProvider* baseProvider = 0 );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   164
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   165
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   166
	 * Destructor
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   167
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   168
	~SmfMusicSearch();
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   169
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   170
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   171
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   172
	 * Searches for music recommendations similar to a particulartrack asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   173
	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   174
	 * once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   175
	 * When the list is big user can specify the page number and per page item data.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   176
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   177
	 * @param track The track for which similar recommendations need to be fetched.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   178
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   179
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   180
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   181
	void recommendations ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   182
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   183
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   184
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   185
	 * Searches for tracks similar to a given track asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   186
	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   187
	 * once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   188
	 * When the list is big user can specify the page number and per page item data.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   189
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   190
	 * @param track The search criteria, similar tracks are searched
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   191
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   192
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   193
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   194
	void tracks ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   195
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   196
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   197
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   198
	 * Searches for a track having similar finger print asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   199
	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   200
	 * once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   201
	 * @param signature The search criteria,signature to be searched for
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   202
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   203
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   204
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   205
	void trackInfo ( SmfMusicFingerPrint signature, int pageNum = SMF_FIRST_PAGE,
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   206
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   207
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   208
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   209
	 * Search information about where to buy this song from asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   210
	 * The signal storeSearchAvailable() is emitted with SmfProviderList once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   211
	 * @param track The search criteria for stores
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   212
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   213
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   214
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   215
	void stores ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   216
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   217
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   218
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   219
	 * Request for a custom operation. The signal customDataAvailable() is emitted 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   220
	 * when the result is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   221
	 * @param operationId OperationId
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   222
	 * @param customData Custom data to be sent
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   223
	 * Note:-Interpretation of operationId and customData is upto the concerned
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   224
	 * plugin and client application. service provider should provide some
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   225
	 * serializing-deserializing utilities for these custom data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   226
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   227
	void customRequest ( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   228
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   229
signals:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   230
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   231
	 * Emitted when the search result for a track is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   232
	 * Note if number of tacks in the search is large, then it can download the list page by page.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   233
	 * In that case this signal is emitted multiple times.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   234
	 * @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   235
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   236
	void trackSearchAvailable ( SmfTrackInfoList* result, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   237
			SmfError error, SmfResultPage resultPage);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   238
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   239
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   240
	 *  Emitted when the search result for a store is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   241
	 *  Note if number of tacks in the search is large, then it can download the list page by page.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   242
	 *  In that case this signal is emitted multiple times.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   243
	 *  @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   244
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   245
	void storeSearchAvailable ( SmfProviderList* result, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   246
			SmfError error, SmfResultPage resultPage );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   247
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   248
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   249
	 * Signals availability of the result of the customRequest
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   250
	 * @param operationId The ID to be shared between clients and the plugin
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   251
	 * @param customData data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   252
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   253
	void customDataAvailable( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   254
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   255
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   256
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   257
	 * Gets the base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   258
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   259
	SmfProvider* getProvider() const;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   260
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   261
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   262
	SmfProvider* m_baseProvider;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   263
	SmfMusicSearchPrivate* m_private;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   264
	friend class SmfMusicSearchPrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   265
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   266
	};
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   267
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   268
SMF_SERVICE_NAME(SmfMusicSearch, "org.symbian.smf.client.music.search\0.2")
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   269
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   270
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   271
/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   272
 * Provides service ("org.symbian.smf.client.music.playlist")
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   273
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   274
 * Interface to a remote playlist service. This class
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   275
 * provides some basic functionality to allow applications
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   276
 * to interact with playlists in some music related service provider (e.g. last.fm).
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   277
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   278
 * Note that branding information for the particular service implementation
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   279
 * is available from getProvider() API. See also:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   280
 * SmfProvider::serviceName(), SmfProvider::serviceIcon()
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   281
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   282
 * All of the functionality described here should be implemented by a service
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   283
 * specific plug-in object.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   284
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   285
 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   286
class SMFCLIENT_EXPORT SmfPlaylistService : public QObject
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   287
	{
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   288
	Q_OBJECT
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   289
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   290
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   291
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   292
	 * Constructs SmfPlaylistService with base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   293
	 * Seeing as this is a plug-in implementation, these will realistically
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   294
	 * be generated by SMF factory of some kind
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   295
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   296
	SmfPlaylistService ( SmfProvider* baseProvider = 0 );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   297
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   298
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   299
	 * Destructor
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   300
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   301
	~SmfPlaylistService ( );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   302
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   303
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   304
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   305
	 * Gets the list playlists for the logged-in user asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   306
	 * The signal playlistsListAvailable() signal is emitted with
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   307
	 * SmfPlaylistList once its arrived .
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   308
	 * When the list is big user can specify the page number and per page item data.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   309
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   310
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   311
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   312
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   313
	void playlists ( int pageNum = SMF_FIRST_PAGE,
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   314
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   315
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   316
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   317
	 * Gets the list playlists for the given user asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   318
	 * The signal playlistsListAvailable() signal is emitted with
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   319
	 * SmfPlaylistList once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   320
	 * When the list is big user can specify the page number and per page item data.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   321
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   322
	 * @param user User for which to get the playlists
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   323
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   324
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   325
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   326
	void playlistsOf ( SmfMusicProfile* user, int pageNum = SMF_FIRST_PAGE,
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   327
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   328
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   329
public slots:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   330
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   331
	 * Upload currently playing track to a playlist. Signal
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   332
	 * playlistUpdated() can be checked for success value
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   333
	 * @param plst The playlist to be added in
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   334
	 * @param tracks The list of tracks to uploaded
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   335
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   336
	int addToPlaylist ( SmfPlaylist plst, SmfTrackInfoList* tracks );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   337
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   338
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   339
	 * Upload currently playing playlist . Signal
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   340
	 * playlistUpdated() can be checked for success value
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   341
	 * @param plst The playlist to be uploaded
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   342
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   343
	int postCurrentPlayingPlaylist ( SmfPlaylist plst );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   344
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   345
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   346
	 * Request for a custom operation. The signal customDataAvailable() is emitted 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   347
	 * when the result is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   348
	 * @param operationId OperationId
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   349
	 * @param customData Custom data to be sent
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   350
	 * Note:-Interpretation of operationId and customData is upto the concerned
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   351
	 * plugin and client application. service provider should provide some
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   352
	 * serializing-deserializing utilities for these custom data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   353
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   354
	void customRequest ( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   355
		
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   356
signals:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   357
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   358
	 * Notification of availability of list of playlists requested.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   359
	 * Note if number of list is large, then it can download the list page by page.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   360
	 * In that case this signal is emitted multiple times.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   361
	 * @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   362
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   363
	void playlistsListAvailable ( SmfPlaylistList*, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   364
			SmfError error, SmfResultPage resultPage );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   365
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   366
	 * Signals remote updation of playlist with success value
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   367
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   368
	void playlistUpdated ( SmfError success );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   369
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   370
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   371
	 * Signals availability of the result of the customRequest
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   372
	 * @param operationId The ID to be shared between clients and the plugin
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   373
	 * @param customData data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   374
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   375
	void customDataAvailable( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   376
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   377
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   378
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   379
	 * Gets the base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   380
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   381
	SmfProvider* getProvider() const;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   382
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   383
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   384
	SmfProvider* m_baseProvider;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   385
	SmfPlaylistServicePrivate* m_private;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   386
	friend class SmfPlaylistServicePrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   387
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   388
	};
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   389
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   390
SMF_SERVICE_NAME(SmfPlaylistService, "org.symbian.smf.client.music.playlist\0.2")
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   391
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   392
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   393
/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   394
 * provides service ("org.symbian.smf.client.music.events")
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   395
 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   396
class SMFCLIENT_EXPORT SmfMusicEvents : public QObject
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   397
	{
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   398
	Q_OBJECT
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   399
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   400
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   401
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   402
	 * Constructs SmfMusicEvents with base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   403
	 * Seeing as this is a plug-in implementation, these will realistically
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   404
	 *  be generated by SMF factory of some kind
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   405
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   406
	SmfMusicEvents ( SmfProvider* baseProvider = 0 );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   407
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   408
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   409
	 * Destructor
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   410
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   411
	~SmfMusicEvents ( );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   412
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   413
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   414
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   415
	 * Gets list of events in a particular venue asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   416
	 * eventsAvailable() signal is emitted with SmfEventsList once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   417
	 * When the list is big user can specify the page number and per page item data.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   418
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   419
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   420
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   421
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   422
	void events ( SmfLocation venue, int pageNum = SMF_FIRST_PAGE,
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   423
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   424
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   425
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   426
	 * Gets list of venues of a particular location asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   427
	 * venuesAvailable() signal is emitted with SmfLocationList once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   428
	 * When the list is big user can specify the page number and per page item data.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   429
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   430
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   431
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   432
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   433
	void venues ( SmfLocation location, int pageNum = SMF_FIRST_PAGE,
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   434
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   435
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   436
public slots:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   437
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   438
	 * Updates events. Might not be supported by all service provider.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   439
	 * eventsUpdated() signal can be checked for success value.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   440
	 * @param SmfEventsList List of events to be posted
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   441
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   442
	void postEvents ( SmfEventList events );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   443
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   444
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   445
	 * Request for a custom operation. The signal customDataAvailable() is emitted 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   446
	 * when the result is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   447
	 * @param operationId OperationId
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   448
	 * @param customData Custom data to be sent
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   449
	 * Note:-Interpretation of operationId and customData is upto the concerned
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   450
	 * plugin and client application. service provider should provide some
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   451
	 * serializing-deserializing utilities for these custom data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   452
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   453
	void customRequest ( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   454
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   455
signals:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   456
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   457
	 * Notification on arrival of event lists
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   458
	 * Note if number of list is large, then it can download the list page by page.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   459
	 * In that case this signal is emitted multiple times.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   460
	 * @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   461
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   462
	void eventsAvailable ( SmfEventList* list, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   463
			SmfError error, SmfResultPage resultPage );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   464
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   465
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   466
	 * Notification on arrival of venues lists
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   467
	 * Note if number of list is large, then it can download the list page by page.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   468
	 * In that case this signal is emitted multiple times.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   469
	 * @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   470
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   471
	void venuesAvailable ( SmfLocationList* list, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   472
			SmfError error, SmfResultPage resultPage );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   473
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   474
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   475
	 * Notification of the success of request to post an event
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   476
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   477
	void eventsUpdated ( SmfError success );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   478
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   479
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   480
	 * Signals availability of the result of the customRequest
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   481
	 * @param operationId The ID to be shared between clients and the plugin
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   482
	 * @param customData data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   483
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   484
	void customDataAvailable( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   485
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   486
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   487
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   488
	 * Gets the base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   489
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   490
	SmfProvider* getProvider() const;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   491
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   492
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   493
	SmfProvider* m_baseProvider;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   494
	SmfMusicEventsPrivate* m_private;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   495
	friend class SmfMusicEventsPrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   496
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   497
	};
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   498
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   499
SMF_SERVICE_NAME(SmfMusicEvents, "org.symbian.smf.client.music.events\0.2")
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   500
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   501
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   502
/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   503
 * provides service ("org.symbian.smf.client.music.lyrics")
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   504
 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   505
class SMFCLIENT_EXPORT SmfLyricsService : public QObject
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   506
	{
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   507
	Q_OBJECT
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   508
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   509
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   510
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   511
	 * Constructs SmfLyricsService with base provider info.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   512
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   513
	SmfLyricsService ( SmfProvider* baseProvider = 0 );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   514
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   515
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   516
	 * Destructor
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   517
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   518
	~SmfLyricsService ( );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   519
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   520
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   521
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   522
	 * Get the lyrics lists asynchrnously, it fetches texts without time info.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   523
	 * lyricsAvailable() notification comes SmfLyricsList with when the data is available
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   524
	 * @param track Track for which lyrics needs to be fetched.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   525
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   526
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   527
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   528
	void lyrics ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   529
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   530
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   531
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   532
	 * Get the lyrics lists asynchrnously, it fetches texts with time info.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   533
	 * Subtitle search filter can be applied
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   534
	 * subtitleAvailable() notification comes SmfSubtitleList with when the data is available
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   535
	 * @param track Track for which subtitle needs to be fetched.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   536
	 * @param filter Subtitle search filter
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   537
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   538
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   539
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   540
	void subtitles ( SmfTrackInfo track, SmfSubtitleSearchFilter filter,
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   541
			int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   542
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   543
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   544
	 * Request for a custom operation. The signal customDataAvailable() is emitted 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   545
	 * when the result is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   546
	 * @param operationId OperationId
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   547
	 * @param customData Custom data to be sent
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   548
	 * Note:-Interpretation of operationId and customData is upto the concerned
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   549
	 * plugin and client application. service provider should provide some
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   550
	 * serializing-deserializing utilities for these custom data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   551
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   552
	void customRequest ( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   553
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   554
signals:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   555
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   556
	 * Notification on arrival of lyrics
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   557
	 * Note if the list is large, then it can download the list page by page.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   558
	 * In that case this signal is emitted multiple times.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   559
	 * @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   560
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   561
	void lyricsAvailable ( SmfLyricsList* list, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   562
			SmfError error, SmfResultPage resultPage );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   563
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   564
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   565
	 * Notification on arrival of subtitle based on filter.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   566
	 * Note if the list is large, then it can download the list page by page.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   567
	 * In that case this signal is emitted multiple times.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   568
	 * @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   569
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   570
	void subtitleAvailable ( SmfSubtitleList* list, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   571
			SmfError error, SmfResultPage resultPage );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   572
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   573
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   574
	 * Signals availability of the result of the customRequest
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   575
	 * @param operationId The ID to be shared between clients and the plugin
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   576
	 * @param customData data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   577
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   578
	void customDataAvailable( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   579
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   580
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   581
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   582
	 * Gets the base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   583
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   584
	SmfProvider* getProvider() const;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   585
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   586
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   587
	SmfProvider* m_baseProvider;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   588
	SmfLyricsServicePrivate* m_private;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   589
	friend class SmfLyricsServicePrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   590
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   591
	};
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   592
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   593
SMF_SERVICE_NAME(SmfLyricsService, "org.symbian.smf.client.music.lyrics\0.2")
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   594
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   595
#endif // SMFMUSIC_H