smf/smfservermodule/smfclient/smfmusic_p.h
changeset 25 a180113055cb
parent 18 013a02bf2bb0
equal deleted inserted replaced
24:1cee9f1b95e0 25:a180113055cb
    29 #include <smflyrics.h>
    29 #include <smflyrics.h>
    30 #include <smfplaylist.h>
    30 #include <smfplaylist.h>
    31 #include <smftrackinfo.h>
    31 #include <smftrackinfo.h>
    32 #include <smflocation.h>
    32 #include <smflocation.h>
    33 #include <smfprovider.h>
    33 #include <smfprovider.h>
       
    34 #include <smfartists.h>
       
    35 #include <smfalbum.h>
    34 
    36 
    35 #ifdef Q_OS_SYMBIAN
    37 #ifdef Q_OS_SYMBIAN
    36 	class CSmfClientSymbian;	
    38 	class CSmfClientSymbian;	
    37 #else
    39 #else
    38 	class SmfClientQt;
    40 	class SmfClientQt;
    39 #endif
    41 #endif
    40 class SmfMusicService;
    42 class SmfMusicService;
    41 class SmfMusicSearch;
    43 class SmfMusicSearch;
    42 class SmfPlaylistService;
    44 class SmfPlaylistService;
    43 class SmfMusicEvents;
       
    44 class SmfLyricsService;
    45 class SmfLyricsService;
    45 class SmfMusicFingerPrint;
    46 class SmfMusicFingerPrint;
    46 class SmfMusicRating;
    47 class SmfMusicRating;
    47 class SmfComment;
    48 class SmfComment;
       
    49 class SmfContact;
    48 
    50 
    49 
    51 
    50 class SmfMusicServicePrivate : public smfObserver
    52 class SmfMusicServicePrivate : public smfObserver
    51 	{
    53 	{
    52 	Q_OBJECT
    54 	Q_OBJECT
    60 	 * Destructor
    62 	 * Destructor
    61 	 */
    63 	 */
    62 	~SmfMusicServicePrivate();
    64 	~SmfMusicServicePrivate();
    63 	
    65 	
    64 	/**
    66 	/**
    65 	 * Gets self profile information asynchronously.
    67 	 * Gets self profile information (e.g. music likings, feavorites etc) asynchronously.
    66 	 * userInfoAvailable() signal is emitted with SmfMusicProfile when the info is arrived
    68 	 * userMusicInfoAvailable() signal is emitted with SmfMusicProfile when the info is arrived
    67 	 */
    69 	 * @return SmfError. SmfNoError if success, else appropriate error code
    68 	void userinfo ( );
    70 	 */
       
    71 	SmfError userMusicInfo ( );
       
    72 
       
    73 	/**
       
    74 	 * Asynchronously searches information about artisits in this service. All information 
       
    75 	 * in SmfArtists is not required, however more available the better 
       
    76 	 * searchArtistInfoAvailable() signal is emitted when the info is arrived.
       
    77 	 * @param artist The search criteria
       
    78 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
       
    79 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
       
    80 	 * @return SmfError, SmfNoError if success, else appropriate error value
       
    81 	 */
       
    82 	SmfError searchArtist ( SmfArtists artist, int pageNum = SMF_FIRST_PAGE,
       
    83 						int perPage = SMF_ITEMS_PER_PAGE );
       
    84 
       
    85 	/**
       
    86 	 * Asynchronously searches information about albums in this service. All information 
       
    87 	 * in SmfAlbum is not required, however more available the better 
       
    88 	 * searchAlbumInfoAvailable() signal is emitted when the info is arrived.
       
    89 	 * @param album The search criteria
       
    90 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
       
    91 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
       
    92 	 * @return SmfError, SmfNoError if success, else appropriate error value
       
    93 	 */
       
    94 	SmfError searchAlbum ( SmfAlbum album, int pageNum = SMF_FIRST_PAGE,
       
    95 						int perPage = SMF_ITEMS_PER_PAGE );
       
    96 	
       
    97 	/**
       
    98 	 * Asynchronously searches information about events in this service. All information 
       
    99 	 * in SmfEvents is not required, however more available the better 
       
   100 	 * searchEventsInfoAvailable() signal is emitted when the info is arrived.
       
   101 	 * @param event The search criteria
       
   102 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
       
   103 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
       
   104 	 * @return SmfError, SmfNoError if success, else appropriate error value
       
   105 	 */
       
   106 	SmfError searchEvents ( SmfEvent event, int pageNum = SMF_FIRST_PAGE,
       
   107 						int perPage = SMF_ITEMS_PER_PAGE );
       
   108 	
       
   109 	/**
       
   110 	 * Asynchronously searches information about venue in this service. All information 
       
   111 	 * in SmfVenue is not required, however more available the better 
       
   112 	 * searchVenueInfoAvailable() signal is emitted when the info is arrived.
       
   113 	 * @param location The search criteria
       
   114 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
       
   115 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
       
   116 	 * @return SmfError, SmfNoError if success, else appropriate error value
       
   117 	 */
       
   118 	SmfError searchVenue ( SmfLocation location, int pageNum = SMF_FIRST_PAGE,
       
   119 						int perPage = SMF_ITEMS_PER_PAGE );
    69 
   120 
    70 	/**
   121 	/**
    71 	 * Asynchronously searches information about other service users for a particular venue
   122 	 * Asynchronously searches information about other service users for a particular venue
    72 	 * searchInfoAvailable() signal is emitted with SmfMusicProfileList when the info is arrived.
   123 	 * searchUserInfoAvailable() signal is emitted with SmfMusicProfileList when the info is arrived.
    73 	 * When the list is big user can specify the page number and per page item data.
   124 	 * When the list is big user can specify the page number and per page item data.
    74 	 * If not supplied by the user default values are used.
   125 	 * If not supplied by the user default values are used.
    75 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   126 	 * @param location The search criteria
    76 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   127 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
    77 	 */
   128 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
    78 	void searchUser ( SmfLocation venue, int pageNum = SMF_FIRST_PAGE,
   129 	 * @return SmfError, SmfNoError if success, else appropriate error value
       
   130 	 */
       
   131 	SmfError searchUser ( SmfLocation venue, int pageNum = SMF_FIRST_PAGE,
    79 						int perPage = SMF_ITEMS_PER_PAGE);
   132 						int perPage = SMF_ITEMS_PER_PAGE);
    80 	
   133 	
       
   134 	/**
       
   135 	 * Posts currently playing track.
       
   136 	 * Success can be checked by checking the signal postFinished()
       
   137 	 * @param track Track to post
       
   138 	 * @return SmfError, SmfNoError if success, else appropriate error value
       
   139 	 */
       
   140 	SmfError postCurrentPlaying ( SmfTrackInfo track);
       
   141 	
       
   142 	/**
       
   143 	 * Rate a music via this API 
       
   144 	 * Success can be checked by checking the signal postFinished()
       
   145 	 * @param track Track on which rating should be posted
       
   146 	 * @param rate Rating value
       
   147 	 * @return SmfError, SmfNoError if success, else appropriate error value 
       
   148 	 */
       
   149 	SmfError postRating ( SmfTrackInfo track, SmfMusicRating rate);
       
   150 
       
   151 	/**
       
   152 	 * Comment on a track via this API 
       
   153 	 * Success can be checked by checking the signal postFinished()
       
   154 	 * @param track Track on which comment should be posted
       
   155 	 * @param comment The comemnt to be posted
       
   156 	 * @return SmfError, SmfNoError if success, else appropriate error value  
       
   157 	 */
       
   158 	SmfError postComments ( SmfTrackInfo track, SmfComment comment);
       
   159 
    81 	/**
   160 	/**
    82 	 * Request for a custom operation. The signal customDataAvailable() is emitted 
   161 	 * Request for a custom operation. The signal customDataAvailable() is emitted 
    83 	 * when the result is available.
   162 	 * when the result is available.
    84 	 * @param operationId OperationId
   163 	 * @param operationId OperationId
    85 	 * @param customData Custom data to be sent
   164 	 * @param customData Custom data to be sent
       
   165 	 * @return SmfError. SmfNoError if success, else appropriate error code
    86 	 * Note:-Interpretation of operationId and customData is upto the concerned
   166 	 * Note:-Interpretation of operationId and customData is upto the concerned
    87 	 * plugin and client application. service provider should provide some
   167 	 * plugin and client application. service provider should provide some
    88 	 * serializing-deserializing utilities for these custom data
   168 	 * serializing-deserializing utilities for these custom data
    89 	 */
   169 	 */
    90 	void customRequest ( const int& operationId, QByteArray* customData );
   170 	SmfError customRequest ( const int& operationId, QByteArray* customData );
    91 	
   171 	
    92 	/**
   172     /**
    93 	 * Posts currently playing track.
   173      * Cancels a request generated due to the call to any API which results 
    94 	 * Success can be checked by checking the signal postFinished()
   174      * into http request. Might return error if no request is currently pending.
    95 	 * @param track Track to post
   175      * Please note that there can be only one request pending at any point of time
    96 	 */
   176      * @return Appropriate SmfError value
    97 	void postCurrentPlaying ( SmfTrackInfo track);
   177      */
    98 	
   178 	SmfError cancelRequest ();
    99 	void postRating ( SmfTrackInfo track, SmfMusicRating rate);
       
   100 	
       
   101 	void postComments ( SmfTrackInfo track, SmfComment comment);
       
   102 	
   179 	
   103 public: // from smfObserver
   180 public: // from smfObserver
   104 	/**
   181 	/**
   105 	 * To notify availibility of asynchronous requests.
   182 	 * To notify availibility of asynchronous requests.
   106 	 * @param result Requested result, before using must check error param.
   183 	 * @param result Requested result, before using must check error param.
   119 	friend class CSmfClientSymbian;
   196 	friend class CSmfClientSymbian;
   120 #else
   197 #else
   121 	SmfClientQt* m_SmfClientPrivate;
   198 	SmfClientQt* m_SmfClientPrivate;
   122 	friend class SmfClientQt;
   199 	friend class SmfClientQt;
   123 #endif
   200 #endif
   124 	int m_argFlag;
   201 	quint8 m_argFlag;
   125 	
   202 	
   126 	};
   203 	};
   127 
   204 
   128 
   205 
   129 //SmfMusicSearch
   206 //SmfMusicSearch
   149 	 * When the list is big user can specify the page number and per page item data.
   226 	 * When the list is big user can specify the page number and per page item data.
   150 	 * If not supplied by the user default values are used.
   227 	 * If not supplied by the user default values are used.
   151 	 * @param track The track for which similar recommendations need to be fetched.
   228 	 * @param track The track for which similar recommendations need to be fetched.
   152 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   229 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   153 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   230 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   154 	 */
   231 	 * @return SmfNoError if success, else appropriate error value
   155 	void recommendations ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
   232 	 */
       
   233 	SmfError recommendations ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
   156 			int perPage = SMF_ITEMS_PER_PAGE);
   234 			int perPage = SMF_ITEMS_PER_PAGE);
   157 	
   235 	
   158 	/**
   236 	/**
   159 	 * Searches for tracks similar to a given track asynchronously.
   237 	 * Searches for tracks similar to a given track asynchronously.
   160 	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
   238 	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
   162 	 * When the list is big user can specify the page number and per page item data.
   240 	 * When the list is big user can specify the page number and per page item data.
   163 	 * If not supplied by the user default values are used.
   241 	 * If not supplied by the user default values are used.
   164 	 * @param track The search criteria, similar tracks are searched
   242 	 * @param track The search criteria, similar tracks are searched
   165 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   243 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   166 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   244 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   167 	 */
   245 	 * @return SmfNoError if success, else appropriate error value
   168 	void tracks ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
   246 	 */
       
   247 	SmfError tracksSimilar ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
       
   248 			int perPage = SMF_ITEMS_PER_PAGE);
       
   249 
       
   250 	/**
       
   251 	 * Searches for tracks for a given album asynchronously.
       
   252 	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
       
   253 	 * once its arrived.
       
   254 	 * When the list is big user can specify the page number and per page item data.
       
   255 	 * If not supplied by the user default values are used.
       
   256 	 * @param album The album containing the id
       
   257 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
       
   258 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
       
   259 	 * @return SmfNoError if success, else appropriate error value
       
   260 	 */
       
   261 	SmfError tracksOfAlbum ( SmfAlbum album, int pageNum = SMF_FIRST_PAGE,
       
   262 			int perPage = SMF_ITEMS_PER_PAGE);
       
   263 	
       
   264 	/**
       
   265 	 * Searches for tracks for a given artist(s) asynchronously.
       
   266 	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
       
   267 	 * once its arrived.
       
   268 	 * When the list is big user can specify the page number and per page item data.
       
   269 	 * If not supplied by the user default values are used.
       
   270 	 * @param artists The artists list
       
   271 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
       
   272 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
       
   273 	 * @return SmfNoError if success, else appropriate error value
       
   274 	 */
       
   275 	SmfError tracksOfArtist ( SmfArtists artists, int pageNum = SMF_FIRST_PAGE,
   169 			int perPage = SMF_ITEMS_PER_PAGE);
   276 			int perPage = SMF_ITEMS_PER_PAGE);
   170 	
   277 	
   171 	/**
   278 	/**
   172 	 * Searches for a track having similar finger print asynchronously.
   279 	 * Searches for a track having similar finger print asynchronously.
   173 	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
   280 	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
   174 	 * once its arrived.
   281 	 * once its arrived.
   175 	 * @param signature The search criteria,signature to be searched for
   282 	 * @param signature The search criteria,signature to be searched for
   176 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   283 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   177 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   284 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   178 	 */
   285 	 * @return SmfNoError if success, else appropriate error value
   179 	void trackInfo ( SmfMusicFingerPrint signature, int pageNum = SMF_FIRST_PAGE,
   286 	 */
       
   287 	SmfError trackInfo ( SmfMusicFingerPrint signature, int pageNum = SMF_FIRST_PAGE,
   180 			int perPage = SMF_ITEMS_PER_PAGE);
   288 			int perPage = SMF_ITEMS_PER_PAGE);
   181 	
   289 	
   182 	/**
   290 	/**
   183 	 * Search information about where to buy this song from asynchronously.
   291 	 * Search information about where to buy this song from asynchronously.
   184 	 * The signal storeSearchAvailable() is emitted with SmfProviderList once its arrived.
   292 	 * The signal storeSearchAvailable() is emitted with SmfProviderList once its arrived.
   185 	 * @param track The search criteria for stores
   293 	 * @param track The search criteria for stores
   186 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   294 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   187 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   295 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   188 	 */
   296 	 * @return SmfNoError if success, else appropriate error value
   189 	void stores ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE, 
   297 	 */
       
   298 	SmfError stores ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE, 
   190 			int perPage = SMF_ITEMS_PER_PAGE);
   299 			int perPage = SMF_ITEMS_PER_PAGE);
   191 	
   300 	
   192 	/**
   301 	/**
   193 	 * Request for a custom operation. The signal customDataAvailable() is emitted 
   302 	 * Request for a custom operation. The signal customDataAvailable() is emitted 
   194 	 * when the result is available.
   303 	 * when the result is available.
   195 	 * @param operationId OperationId
   304 	 * @param operationId OperationId
   196 	 * @param customData Custom data to be sent
   305 	 * @param customData Custom data to be sent
       
   306 	 * @return SmfNoError if success, else appropriate error value
   197 	 * Note:-Interpretation of operationId and customData is upto the concerned
   307 	 * Note:-Interpretation of operationId and customData is upto the concerned
   198 	 * plugin and client application. service provider should provide some
   308 	 * plugin and client application. service provider should provide some
   199 	 * serializing-deserializing utilities for these custom data
   309 	 * serializing-deserializing utilities for these custom data
   200 	 */
   310 	 */
   201 	void customRequest ( const int& operationId, QByteArray* customData );
   311 	SmfError customRequest ( const int& operationId, QByteArray* customData );
       
   312 	
       
   313     /**
       
   314      * Cancels a request generated due to the call to any API which results 
       
   315      * into http request. Might return error if no request is currently pending.
       
   316      * Please note that there can be only one request pending at any point of time
       
   317      * @return Appropriate SmfError value
       
   318      */
       
   319 	SmfError cancelRequest ();
   202 	
   320 	
   203 public: //From smfObserver
   321 public: //From smfObserver
   204 	/**
   322 	/**
   205 	 * To notify availibility of asynchronous requests.
   323 	 * To notify availibility of asynchronous requests.
   206 	 * @param result Requested result, before using must check error param.
   324 	 * @param result Requested result, before using must check error param.
   219 	friend class CSmfClientSymbian;
   337 	friend class CSmfClientSymbian;
   220 #else
   338 #else
   221 	SmfClientQt* m_SmfClientPrivate;
   339 	SmfClientQt* m_SmfClientPrivate;
   222 	friend class SmfClientQt;
   340 	friend class SmfClientQt;
   223 #endif
   341 #endif
   224 	int m_argFlag;
   342 	quint8 m_argFlag;
   225 
   343 
   226 	};
   344 	};
   227 
   345 
   228 
   346 
   229 class SmfPlaylistServicePrivate : public smfObserver
   347 class SmfPlaylistServicePrivate : public smfObserver
   248 	 * SmfPlaylistList once its arrived .
   366 	 * SmfPlaylistList once its arrived .
   249 	 * When the list is big user can specify the page number and per page item data.
   367 	 * When the list is big user can specify the page number and per page item data.
   250 	 * If not supplied by the user default values are used.
   368 	 * If not supplied by the user default values are used.
   251 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   369 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   252 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   370 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   253 	 */
   371 	 * @return SmfNoError if success, else appropriate error value
   254 	void playlists ( int pageNum = SMF_FIRST_PAGE,
   372 	 */
       
   373 	SmfError playlists ( int pageNum = SMF_FIRST_PAGE,
   255 			int perPage = SMF_ITEMS_PER_PAGE);
   374 			int perPage = SMF_ITEMS_PER_PAGE);
   256 	
   375 	
   257 	/**
   376 	/**
   258 	 * Gets the list playlists for the given user asynchronously.
   377 	 * Gets the list playlists for the given user asynchronously.
   259 	 * The signal playlistsListAvailable() signal is emitted with
   378 	 * The signal playlistsListAvailable() signal is emitted with
   261 	 * When the list is big user can specify the page number and per page item data.
   380 	 * When the list is big user can specify the page number and per page item data.
   262 	 * If not supplied by the user default values are used.
   381 	 * If not supplied by the user default values are used.
   263 	 * @param user User for which to get the playlists
   382 	 * @param user User for which to get the playlists
   264 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   383 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   265 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   384 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   266 	 */
   385 	 * @return SmfNoError if success, else appropriate error value
   267 	void playlistsOf ( SmfMusicProfile* user, int pageNum = SMF_FIRST_PAGE,
   386 	 */
       
   387 	SmfError playlistsOf ( SmfContact* user, int pageNum = SMF_FIRST_PAGE,
   268 			int perPage = SMF_ITEMS_PER_PAGE);
   388 			int perPage = SMF_ITEMS_PER_PAGE);
   269 	
   389 	
   270 	/**
   390 	/**
   271 	 * Upload currently playing track to a playlist. Signal
   391 	 * Upload currently playing track to a playlist. Signal
   272 	 * playlistUpdated() can be checked for success value
   392 	 * playlistUpdated() can be checked for success value
   273 	 * @param plst The playlist to be added in
   393 	 * @param plst The playlist to be added in
   274 	 * @param tracks The list of tracks to uploaded
   394 	 * @param tracks The list of tracks to uploaded
   275 	 */
   395 	 * @return SmfNoError if success, else appropriate error value
   276 	int addToPlaylist ( SmfPlaylist plst, SmfTrackInfoList* tracks );
   396 	 */
       
   397 	SmfError addToPlaylist ( SmfPlaylist plst, SmfTrackInfoList* tracks );
   277 	
   398 	
   278 	/**
   399 	/**
   279 	 * Upload currently playing playlist . Signal
   400 	 * Upload currently playing playlist . Signal
   280 	 * playlistUpdated() can be checked for success value
   401 	 * playlistUpdated() can be checked for success value
   281 	 * @param plst The playlist to be uploaded
   402 	 * @param plst The playlist to be uploaded
   282 	 */
   403 	 * @return SmfNoError if success, else appropriate error value
   283 	int postCurrentPlayingPlaylist ( SmfPlaylist plst );
   404 	 */
       
   405 	SmfError postCurrentPlayingPlaylist ( SmfPlaylist plst );
   284 	
   406 	
   285 	/**
   407 	/**
   286 	 * Request for a custom operation. The signal customDataAvailable() is emitted 
   408 	 * Request for a custom operation. The signal customDataAvailable() is emitted 
   287 	 * when the result is available.
   409 	 * when the result is available.
   288 	 * @param operationId OperationId
   410 	 * @param operationId OperationId
   289 	 * @param customData Custom data to be sent
   411 	 * @param customData Custom data to be sent
       
   412 	 * @return SmfNoError if success, else appropriate error value
   290 	 * Note:-Interpretation of operationId and customData is upto the concerned
   413 	 * Note:-Interpretation of operationId and customData is upto the concerned
   291 	 * plugin and client application. service provider should provide some
   414 	 * plugin and client application. service provider should provide some
   292 	 * serializing-deserializing utilities for these custom data
   415 	 * serializing-deserializing utilities for these custom data
   293 	 */
   416 	 */
   294 	void customRequest ( const int& operationId, QByteArray* customData );
   417 	SmfError customRequest ( const int& operationId, QByteArray* customData );
       
   418 	
       
   419     /**
       
   420      * Cancels a request generated due to the call to any API which results 
       
   421      * into http request. Might return error if no request is currently pending.
       
   422      * Please note that there can be only one request pending at any point of time
       
   423      * @return Appropriate SmfError value
       
   424      */
       
   425 	SmfError cancelRequest ();
   295 	
   426 	
   296 public: //From smfObserver
   427 public: //From smfObserver
   297 	/**
   428 	/**
   298 	 * To notify availibility of asynchronous requests.
   429 	 * To notify availibility of asynchronous requests.
   299 	 * @param result Requested result, before using must check error param.
   430 	 * @param result Requested result, before using must check error param.
   313 	friend class CSmfClientSymbian;
   444 	friend class CSmfClientSymbian;
   314 #else
   445 #else
   315 	SmfClientQt* m_SmfClientPrivate;
   446 	SmfClientQt* m_SmfClientPrivate;
   316 	friend class SmfClientQt;
   447 	friend class SmfClientQt;
   317 #endif
   448 #endif
   318 	int m_argFlag;
   449 	quint8 m_argFlag;
   319 	
   450 	
   320 	};
   451 	};
   321 
   452 
   322 
       
   323 class SmfMusicEventsPrivate : public smfObserver
       
   324 	{
       
   325 	Q_OBJECT
       
   326 
       
   327 public:
       
   328 	/**
       
   329 	 * Constructs SmfMusicEvents with base provider info
       
   330 	 */
       
   331 	SmfMusicEventsPrivate(SmfMusicEvents* aMusicEvent);
       
   332 	
       
   333 	/**
       
   334 	 * Destructor
       
   335 	 */
       
   336 	~SmfMusicEventsPrivate();
       
   337 
       
   338 public:
       
   339 	/**
       
   340 	 * Gets list of events in a particular venue asynchronously.
       
   341 	 * eventsAvailable() signal is emitted with SmfEventsList once its arrived.
       
   342 	 * When the list is big user can specify the page number and per page item data.
       
   343 	 * If not supplied by the user default values are used.
       
   344 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
       
   345 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
       
   346 	 */
       
   347 	void events ( SmfLocation venue, int pageNum = SMF_FIRST_PAGE,
       
   348 			int perPage = SMF_ITEMS_PER_PAGE);
       
   349 	
       
   350 	/**
       
   351 	 * Gets list of venues of a particular location asynchronously.
       
   352 	 * venuesAvailable() signal is emitted with SmfLocationList once its arrived.
       
   353 	 * When the list is big user can specify the page number and per page item data.
       
   354 	 * If not supplied by the user default values are used.
       
   355 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
       
   356 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
       
   357 	 */
       
   358 	void venues ( SmfLocation location, int pageNum = SMF_FIRST_PAGE,
       
   359 			int perPage = SMF_ITEMS_PER_PAGE);
       
   360 	
       
   361 	/**
       
   362 	 * Updates events. Might not be supported by all service provider.
       
   363 	 * eventsUpdated() signal can be checked for success value.
       
   364 	 * @param SmfEventsList List of events to be posted
       
   365 	 */
       
   366 	void postEvents ( SmfEventList events );
       
   367 	
       
   368 	/**
       
   369 	 * Request for a custom operation. The signal customDataAvailable() is emitted 
       
   370 	 * when the result is available.
       
   371 	 * @param operationId OperationId
       
   372 	 * @param customData Custom data to be sent
       
   373 	 * Note:-Interpretation of operationId and customData is upto the concerned
       
   374 	 * plugin and client application. service provider should provide some
       
   375 	 * serializing-deserializing utilities for these custom data
       
   376 	 */
       
   377 	void customRequest ( const int& operationId, QByteArray* customData );
       
   378 	
       
   379 public: //From smfObserver
       
   380 	/**
       
   381 	 * To notify availibility of asynchronous requests.
       
   382 	 * @param result Requested result, before using must check error param.
       
   383 	 * @param opcode Requested opcode, for which the result has arrived.
       
   384 	 * @param error Error 
       
   385 	 */
       
   386 	void resultsAvailable(QByteArray result,SmfRequestTypeID opcode, SmfError error);
       
   387 
       
   388 private:
       
   389 	SmfMusicEvents* m_musicEvent;
       
   390 	//serialized byte array of provider+other info to be sent to the server
       
   391 	//The order:- SmfProvider then params in order of their appearance in fn
       
   392 	QByteArray m_serializedDataToServer;
       
   393 #ifdef Q_OS_SYMBIAN
       
   394 	CSmfClientSymbian* m_SmfClientPrivate;
       
   395 	friend class CSmfClientSymbian;
       
   396 #else
       
   397 	SmfClientQt* m_SmfClientPrivate;
       
   398 	friend class SmfClientQt;
       
   399 #endif
       
   400 	int m_argFlag;
       
   401 	
       
   402 	};
       
   403 
   453 
   404 
   454 
   405 /**
   455 /**
   406  * provides service ("org.symbian.smf.client.music.lyrics")
   456  * provides service ("org.symbian.smf.client.music.lyrics")
   407  */
   457  */
   425 	 * Get the lyrics lists asynchrnously, it fetches texts without time info.
   475 	 * Get the lyrics lists asynchrnously, it fetches texts without time info.
   426 	 * lyricsAvailable() notification comes SmfLyricsList with when the data is available
   476 	 * lyricsAvailable() notification comes SmfLyricsList with when the data is available
   427 	 * @param track Track for which lyrics needs to be fetched.
   477 	 * @param track Track for which lyrics needs to be fetched.
   428 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   478 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   429 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   479 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   430 	 */
   480 	 * @return SmfNoError if success, else appropriate error value
   431 	void lyrics ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
   481 	 */
       
   482 	SmfError lyrics ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
   432 			int perPage = SMF_ITEMS_PER_PAGE);
   483 			int perPage = SMF_ITEMS_PER_PAGE);
   433 	
   484 	
   434 	/**
   485 	/**
   435 	 * Get the lyrics lists asynchrnously, it fetches texts with time info.
   486 	 * Get the lyrics lists asynchrnously, it fetches texts with time info.
   436 	 * Subtitle search filter can be applied
   487 	 * Subtitle search filter can be applied
   437 	 * subtitleAvailable() notification comes SmfSubtitleList with when the data is available
   488 	 * subtitleAvailable() notification comes SmfSubtitleList with when the data is available
   438 	 * @param track Track for which subtitle needs to be fetched.
   489 	 * @param track Track for which subtitle needs to be fetched.
   439 	 * @param filter Subtitle search filter
   490 	 * @param filter Subtitle search filter
   440 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   491 	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
   441 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   492 	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
   442 	 */
   493 	 * @return SmfNoError if success, else appropriate error value
   443 	void subtitles ( SmfTrackInfo track, SmfSubtitleSearchFilter filter,
   494 	 */
       
   495 	SmfError subtitles ( SmfTrackInfo track, SmfSubtitleSearchFilter filter,
   444 			int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE);
   496 			int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE);
   445 	
   497 	
   446 	/**
   498 	/**
   447 	 * Request for a custom operation. The signal customDataAvailable() is emitted 
   499 	 * Request for a custom operation. The signal customDataAvailable() is emitted 
   448 	 * when the result is available.
   500 	 * when the result is available.
   449 	 * @param operationId OperationId
   501 	 * @param operationId OperationId
   450 	 * @param customData Custom data to be sent
   502 	 * @param customData Custom data to be sent
       
   503 	 * @return SmfNoError if success, else appropriate error value
   451 	 * Note:-Interpretation of operationId and customData is upto the concerned
   504 	 * Note:-Interpretation of operationId and customData is upto the concerned
   452 	 * plugin and client application. service provider should provide some
   505 	 * plugin and client application. service provider should provide some
   453 	 * serializing-deserializing utilities for these custom data
   506 	 * serializing-deserializing utilities for these custom data
   454 	 */
   507 	 */
   455 	void customRequest ( const int& operationId, QByteArray* customData );
   508 	SmfError customRequest ( const int& operationId, QByteArray* customData );
       
   509 	
       
   510     /**
       
   511      * Cancels a request generated due to the call to any API which results 
       
   512      * into http request. Might return error if no request is currently pending.
       
   513      * Please note that there can be only one request pending at any point of time
       
   514      * @return Appropriate SmfError value
       
   515      */
       
   516 	SmfError cancelRequest ();
   456 	
   517 	
   457 public: //From smfObserver
   518 public: //From smfObserver
   458 	/**
   519 	/**
   459 	 * To notify availibility of asynchronous requests.
   520 	 * To notify availibility of asynchronous requests.
   460 	 * @param result Requested result, before using must check error param.
   521 	 * @param result Requested result, before using must check error param.
   473 	friend class CSmfClientSymbian;
   534 	friend class CSmfClientSymbian;
   474 #else
   535 #else
   475 	SmfClientQt* m_SmfClientPrivate;
   536 	SmfClientQt* m_SmfClientPrivate;
   476 	friend class SmfClientQt;
   537 	friend class SmfClientQt;
   477 #endif
   538 #endif
   478 	int m_argFlag;
   539 	quint8 m_argFlag;
   479 
   540 
   480 	};
   541 	};
   481 
   542 
   482 #endif
   543 #endif