smf/smfservermodule/smfclient/smfmusic.h
author cgandhi
Thu, 23 Sep 2010 17:43:31 +0530
changeset 25 a180113055cb
parent 18 013a02bf2bb0
permissions -rw-r--r--
Music Events are now normal Fetcher APIs added All APIs now return SmfError Canceling Request now supported Music Search now based on category Providerinfo added in DSM Added secondary ID, count, location to SMFAlbum Tags for Artist added Get tracks for album and artist added Added URL to subtitle DSM Bug fixes Detailed debugging logs filtered in server, pluginmgr, transportmgr playlistsOf() method changed in smfclient and plugin interfaces. RVCT B686 compilation issues resolved.
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>
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    33
#include <smfcontact.h>
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    34
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    35
class SmfMusicServicePrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    36
class SmfMusicSearchPrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    37
class SmfLyricsServicePrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    38
class SmfPlaylistServicePrivate;
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;
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    42
class SmfContact;
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    43
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    44
using namespace QtMobility;
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
/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    48
 * @ingroup smf_client_group
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    49
 * Basic music service ("org.symbian.smf.client.music.service")
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    50
 * This is the music profile information of a user in this service. Also provides searching
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    51
 * on music meta information like albums artists etc. For searching for actual music/tracks
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    52
 * use ("org.symbian.smf.client.music.search") interface from this service provider
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    53
 * For usual contact information (like address, nickname, friends etc) please 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    54
 * use ("org.symbian.smf.client.contact.fetcher") interface from this service provider 
18
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
class SMFCLIENT_EXPORT SmfMusicService : public QObject
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    57
	{
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    58
	Q_OBJECT
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    59
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    60
public:
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
	 * Constructs SmfMusicService.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    63
	 * @param baseProvider The base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    64
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    65
	SmfMusicService ( SmfProvider* baseProvider = 0 );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    66
	
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
	 * Destructor
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    69
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    70
	~SmfMusicService ( );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    71
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    72
public slots:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
    73
	/**
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    74
	 * Gets self profile information (e.g. music likings, feavorites etc) asynchronously.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    75
	 * userMusicInfoAvailable() signal is emitted with SmfMusicProfile when the info is arrived
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    76
	 * @return SmfError. SmfNoError if success, else appropriate error code
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    77
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    78
	SmfError userMusicInfo ( );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    79
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    80
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    81
	 * Asynchronously searches information about artists in this service. All information 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    82
	 * in SmfArtists is not required, however more available the better 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    83
	 * searchArtistInfoAvailable() signal is emitted when the info is arrived.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    84
	 * @param artist The search criteria
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    85
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    86
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    87
	 * @return SmfError, SmfNoError if success, else appropriate error value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    88
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    89
	SmfError searchArtist ( SmfArtists artist, int pageNum = SMF_FIRST_PAGE,
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    90
						int perPage = SMF_ITEMS_PER_PAGE );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    91
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    92
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    93
	 * Asynchronously searches information about albums in this service. All information 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    94
	 * in SmfAlbum is not required, however more available the better 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    95
	 * searchAlbumInfoAvailable() signal is emitted when the info is arrived.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    96
	 * @param album The search criteria
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    97
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    98
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
    99
	 * @return SmfError, SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   100
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   101
	SmfError searchAlbum ( SmfAlbum album, int pageNum = SMF_FIRST_PAGE,
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   102
						int perPage = SMF_ITEMS_PER_PAGE );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   103
	
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   104
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   105
	 * Asynchronously searches information about events in this service. All information 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   106
	 * in SmfEvents is not required, however more available the better 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   107
	 * searchEventsInfoAvailable() signal is emitted when the info is arrived.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   108
	 * @param event The search criteria
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   109
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   110
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   111
	 * @return SmfError, SmfNoError if success, else appropriate error value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   112
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   113
	SmfError searchEvents ( SmfEvent event, int pageNum = SMF_FIRST_PAGE,
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   114
						int perPage = SMF_ITEMS_PER_PAGE );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   115
	
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   116
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   117
	 * Asynchronously searches information about venue in this service. All information 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   118
	 * in SmfVenue is not required, however more available the better 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   119
	 * searchVenueInfoAvailable() signal is emitted when the info is arrived.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   120
	 * @param location The search criteria
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   121
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   122
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   123
	 * @return SmfError, SmfNoError if success, else appropriate error value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   124
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   125
	SmfError searchVenue ( SmfLocation location, int pageNum = SMF_FIRST_PAGE,
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   126
						int perPage = SMF_ITEMS_PER_PAGE );
18
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
	 * Asynchronously searches information about other service users for a particular venue
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   130
	 * searchUserInfoAvailable() signal is emitted with SmfMusicProfileList when the info is arrived.
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   131
	 * 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
   132
	 * If not supplied by the user default values are used.
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   133
	 * @param location The search criteria
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   134
	 * @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
   135
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   136
	 * @return SmfError, SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   137
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   138
	SmfError searchUser ( SmfLocation venue, int pageNum = SMF_FIRST_PAGE,
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   139
						int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   140
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   141
	/**
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   142
	 * Posts currently playing track.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   143
	 * Success can be checked by checking the signal postFinished()
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   144
	 * @param track Track to post
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   145
	 * @return SmfError, SmfNoError if success, else appropriate error value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   146
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   147
	SmfError postCurrentPlaying ( SmfTrackInfo track);
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   148
	
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   149
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   150
	 * Rate a music via this API 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   151
	 * Success can be checked by checking the signal postFinished()
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   152
	 * @param track Track on which rating should be posted
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   153
	 * @param rate Rating value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   154
	 * @return SmfError, SmfNoError if success, else appropriate error value 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   155
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   156
	SmfError postRating ( SmfTrackInfo track, SmfMusicRating rate);
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   157
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   158
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   159
	 * Comment on a track via this API 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   160
	 * Success can be checked by checking the signal postFinished()
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   161
	 * @param track Track on which comment should be posted
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   162
	 * @param comment The comemnt to be posted
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   163
	 * @return SmfError, SmfNoError if success, else appropriate error value  
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   164
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   165
	SmfError postComments ( SmfTrackInfo track, SmfComment comment);
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   166
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   167
	/**
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   168
	 * Request for a custom operation. The signal customDataAvailable() is emitted 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   169
	 * when the result is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   170
	 * @param operationId OperationId
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   171
	 * @param customData Custom data to be sent
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   172
	 * @return SmfError. SmfNoError if success, else appropriate error code
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   173
	 * Note:-Interpretation of operationId and customData is upto the concerned
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   174
	 * plugin and client application. service provider should provide some
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   175
	 * serializing-deserializing utilities for these custom data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   176
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   177
	SmfError customRequest ( const int& operationId, QByteArray* customData );
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   178
	
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   179
    /**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   180
     * Cancels a request generated due to the call to any API which results 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   181
     * into http request. Might return error if no request is currently pending.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   182
     * Please note that there can be only one request pending at any point of time
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   183
     * @return Appropriate SmfError value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   184
     */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   185
	SmfError cancelRequest ();
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   186
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   187
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   188
signals:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   189
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   190
	 * Notification on arrival of the self profile as result of userinfo().
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   191
	 * @param profile The self profile
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   192
	 * @param error SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   193
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   194
	void userMusicInfoAvailable ( SmfMusicProfile* profile, SmfError error );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   195
	
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   196
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   197
	 * Notification on arrival of search info
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   198
	 * @param profileList List of music profiles
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   199
	 * @param error SmfNoError if success, else appropriate error value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   200
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   201
	void searchUserInfoAvailable ( SmfMusicProfileList* profileList, 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   202
			SmfError error, SmfResultPage resultPage );
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   203
	
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
	 * Notification on arrival of search info
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   206
	 * @param artists List of artists
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   207
	 * @param error SmfNoError if success, else appropriate error value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   208
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   209
	void searchArtistInfoAvailable (QList<SmfArtists>* artists, 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   210
			SmfError error, SmfResultPage resultPage );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   211
	
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   212
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   213
	 * Notification on arrival of search info
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   214
	 * @param albumList List of albums
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   215
	 * @param error SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   216
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   217
	void searchAlbumInfoAvailable ( QList<SmfAlbum>* albumList, 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   218
			SmfError error, SmfResultPage resultPage );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   219
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   220
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   221
	 * Notification on arrival of search info
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   222
	 * @param eventList List of events
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   223
	 * @param error SmfNoError if success, else appropriate error value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   224
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   225
	void searchEventsInfoAvailable ( SmfEventList* eventList, 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   226
			SmfError error, SmfResultPage resultPage );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   227
	
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   228
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   229
	 * Notification on arrival of search info
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   230
	 * @param venueList List of venues
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   231
	 * @param error SmfNoError if success, else appropriate error value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   232
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   233
	void searchVenueInfoAvailable ( SmfLocationList* venueList, 
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   234
			SmfError error, SmfResultPage resultPage );
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
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   237
	 * Signals availability of the result of the customRequest
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   238
	 * @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
   239
	 * @param customData data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   240
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   241
	void customDataAvailable( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   242
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   243
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   244
	 * Signals availability of the result of the posting a track or a comment or a rating
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   245
	 * @param error SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   246
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   247
	void postfinished ( SmfError error );
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
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   250
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   251
	 * Gets the base provider info
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
	SmfProvider* getProvider() const;
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
// Friend Class
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   256
	friend class SmfMusicServicePrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   257
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   258
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   259
	SmfProvider* m_baseProvider;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   260
	SmfMusicServicePrivate* m_private;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   261
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   262
	};
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   263
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   264
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
   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
 * Provides service ("org.symbian.smf.client.music.search") for music search
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
class SMFCLIENT_EXPORT SmfMusicSearch : public QObject
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
	Q_OBJECT
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
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   275
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   276
	 * Constructs SmfMusicSearch with base provider as arguement.
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
	SmfMusicSearch ( SmfProvider* baseProvider = 0 );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   279
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   280
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   281
	 * Destructor
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   282
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   283
	~SmfMusicSearch();
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
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   286
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   287
	 * Searches for music recommendations similar to a particulartrack asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   288
	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   289
	 * once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   290
	 * 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
   291
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   292
	 * @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
   293
	 * @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
   294
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   295
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   296
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   297
	SmfError recommendations ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   298
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   299
	
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
	 * Searches for tracks similar to a given track asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   302
	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   303
	 * once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   304
	 * 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
   305
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   306
	 * @param track The search criteria, similar tracks are searched
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   307
	 * @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
   308
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   309
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   310
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   311
	SmfError tracksSimilar ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   312
			int perPage = SMF_ITEMS_PER_PAGE);
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   313
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   314
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   315
	 * Searches for tracks for a given album asynchronously.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   316
	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   317
	 * once its arrived.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   318
	 * When the list is big user can specify the page number and per page item data.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   319
	 * If not supplied by the user default values are used.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   320
	 * @param album The album containing the id
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   321
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   322
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   323
	 * @return SmfNoError if success, else appropriate error value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   324
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   325
	SmfError tracksOfAlbum ( SmfAlbum album, int pageNum = SMF_FIRST_PAGE,
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   326
			int perPage = SMF_ITEMS_PER_PAGE);
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   327
	
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   328
	/**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   329
	 * Searches for tracks for a given artist(s) asynchronously.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   330
	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   331
	 * once its arrived.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   332
	 * When the list is big user can specify the page number and per page item data.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   333
	 * If not supplied by the user default values are used.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   334
	 * @param artists The artists list
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   335
	 * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   336
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   337
	 * @return SmfNoError if success, else appropriate error value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   338
	 */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   339
	SmfError tracksOfArtist ( SmfArtists artists, int pageNum = SMF_FIRST_PAGE,
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   340
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   341
	
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
	 * Searches for a track having similar finger print asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   344
	 * The signal trackSearchAvailable() is emitted with SmfTrackInfoList
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   345
	 * once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   346
	 * @param signature The search criteria,signature to be searched for
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   347
	 * @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
   348
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   349
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   350
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   351
	SmfError trackInfo ( SmfMusicFingerPrint signature, int pageNum = SMF_FIRST_PAGE,
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   352
			int perPage = SMF_ITEMS_PER_PAGE);
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
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   355
	 * Search information about where to buy this song from asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   356
	 * The signal storeSearchAvailable() is emitted with SmfProviderList once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   357
	 * @param track The search criteria for stores
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   358
	 * @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
   359
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   360
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   361
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   362
	SmfError stores ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE, 
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   363
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   364
	
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
	 * Request for a custom operation. The signal customDataAvailable() is emitted 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   367
	 * when the result is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   368
	 * @param operationId OperationId
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   369
	 * @param customData Custom data to be sent
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   370
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   371
	 * Note:-Interpretation of operationId and customData is upto the concerned
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   372
	 * plugin and client application. service provider should provide some
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   373
	 * serializing-deserializing utilities for these custom data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   374
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   375
	SmfError customRequest ( const int& operationId, QByteArray* customData );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   376
	
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   377
    /**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   378
     * Cancels a request generated due to the call to any API which results 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   379
     * into http request. Might return error if no request is currently pending.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   380
     * Please note that there can be only one request pending at any point of time
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   381
     * @return Appropriate SmfError value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   382
     */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   383
	SmfError cancelRequest ();
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   384
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   385
signals:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   386
	/**
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   387
	 * Emitted when the search results for tracks (for album, artist, etc) are available.
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   388
	 * Note if number of tacks in the search is large, then it can download the list page by page.
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   389
	 * @param result list of tracks
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   390
	 * @param error SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   391
	 * @param resultPage Page number info
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
	void trackSearchAvailable ( SmfTrackInfoList* result, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   394
			SmfError error, SmfResultPage resultPage);
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
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   397
	 *  Emitted when the search result for a store is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   398
	 *  Note if number of tacks in the search is large, then it can download the list page by page.
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   399
	 *  @param result List of stores
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   400
	 *  @param error SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   401
	 *  @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   402
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   403
	void storeSearchAvailable ( SmfProviderList* result, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   404
			SmfError error, SmfResultPage resultPage );
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
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   407
	 * Signals availability of the result of the customRequest
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   408
	 * @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
   409
	 * @param customData data
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
	void customDataAvailable( const int& operationId, QByteArray* customData );
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
private:
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 the base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   416
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   417
	SmfProvider* getProvider() const;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   418
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   419
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   420
	SmfProvider* m_baseProvider;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   421
	SmfMusicSearchPrivate* m_private;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   422
	friend class SmfMusicSearchPrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   423
	
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
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
   427
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   428
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   429
/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   430
 * Provides service ("org.symbian.smf.client.music.playlist")
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   431
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   432
 * Interface to a remote playlist service. This class
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   433
 * provides some basic functionality to allow applications
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   434
 * 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
   435
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   436
 * Note that branding information for the particular service implementation
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   437
 * is available from getProvider() API. See also:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   438
 * SmfProvider::serviceName(), SmfProvider::serviceIcon()
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   439
 *
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   440
 * 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
   441
 * specific plug-in object.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   442
 *
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
class SMFCLIENT_EXPORT SmfPlaylistService : public QObject
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   445
	{
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   446
	Q_OBJECT
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   447
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   448
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   449
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   450
	 * Constructs SmfPlaylistService with base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   451
	 * Seeing as this is a plug-in implementation, these will realistically
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   452
	 * be generated by SMF factory of some kind
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   453
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   454
	SmfPlaylistService ( SmfProvider* baseProvider = 0 );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   455
	
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
	 * Destructor
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   458
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   459
	~SmfPlaylistService ( );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   460
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   461
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   462
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   463
	 * Gets the list playlists for the logged-in user asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   464
	 * The signal playlistsListAvailable() signal is emitted with
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   465
	 * SmfPlaylistList once its arrived .
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   466
	 * 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
   467
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   468
	 * @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
   469
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   470
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   471
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   472
	SmfError playlists ( int pageNum = SMF_FIRST_PAGE,
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   473
			int perPage = SMF_ITEMS_PER_PAGE);
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
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   476
	 * Gets the list playlists for the given user asynchronously.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   477
	 * The signal playlistsListAvailable() signal is emitted with
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   478
	 * SmfPlaylistList once its arrived.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   479
	 * 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
   480
	 * If not supplied by the user default values are used.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   481
	 * @param user User for which to get the playlists
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   482
	 * @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
   483
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   484
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   485
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   486
	SmfError playlistsOf ( SmfContact* user, int pageNum = SMF_FIRST_PAGE,
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   487
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   488
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   489
public slots:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   490
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   491
	 * Upload currently playing track to a playlist. Signal
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   492
	 * playlistUpdated() can be checked for success value
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   493
	 * @param plst The playlist to be added in
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   494
	 * @param tracks The list of tracks to uploaded
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   495
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   496
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   497
	SmfError addToPlaylist ( SmfPlaylist plst, SmfTrackInfoList* tracks );
18
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
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   500
	 * Upload currently playing playlist . Signal
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   501
	 * playlistUpdated() can be checked for success value
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   502
	 * @param plst The playlist to be uploaded
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   503
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   504
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   505
	SmfError postCurrentPlayingPlaylist ( SmfPlaylist plst );
18
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
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   508
	 * Request for a custom operation. The signal customDataAvailable() is emitted 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   509
	 * when the result is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   510
	 * @param operationId OperationId
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   511
	 * @param customData Custom data to be sent
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   512
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   513
	 * Note:-Interpretation of operationId and customData is upto the concerned
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   514
	 * plugin and client application. service provider should provide some
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   515
	 * serializing-deserializing utilities for these custom data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   516
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   517
	SmfError customRequest ( const int& operationId, QByteArray* customData );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   518
	
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   519
    /**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   520
     * Cancels a request generated due to the call to any API which results 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   521
     * into http request. Might return error if no request is currently pending.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   522
     * Please note that there can be only one request pending at any point of time
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   523
     * @return Appropriate SmfError value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   524
     */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   525
	SmfError cancelRequest ();
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   526
		
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   527
signals:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   528
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   529
	 * Notification of availability of list of playlists requested.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   530
	 * Note if number of list is large, then it can download the list page by page.
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   531
	 * @param plst List of playlists
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   532
	 * @param error, SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   533
	 * @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   534
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   535
	void playlistsListAvailable ( SmfPlaylistList* plst, 
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   536
			SmfError error, SmfResultPage resultPage );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   537
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   538
	 * Signals remote updation of playlist with success value
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   539
	 * @param error, SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   540
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   541
	void playlistUpdated ( SmfError error );
18
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
	 * Signals availability of the result of the customRequest
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   545
	 * @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
   546
	 * @param customData data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   547
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   548
	void customDataAvailable( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   549
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   550
private:
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
	 * Gets the base provider info
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
	SmfProvider* getProvider() const;
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
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   557
	SmfProvider* m_baseProvider;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   558
	SmfPlaylistServicePrivate* m_private;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   559
	friend class SmfPlaylistServicePrivate;
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
	};
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   562
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   563
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
   564
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   565
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   566
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   567
/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   568
 * provides service ("org.symbian.smf.client.music.lyrics")
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
class SMFCLIENT_EXPORT SmfLyricsService : public QObject
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   571
	{
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   572
	Q_OBJECT
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
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   575
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   576
	 * Constructs SmfLyricsService with base provider info.
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
	SmfLyricsService ( SmfProvider* baseProvider = 0 );
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
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   581
	 * Destructor
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   582
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   583
	~SmfLyricsService ( );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   584
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   585
public:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   586
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   587
	 * Get the lyrics lists asynchrnously, it fetches texts without time info.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   588
	 * lyricsAvailable() notification comes SmfLyricsList with when the data is available
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   589
	 * @param track Track for which lyrics needs to be fetched.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   590
	 * @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
   591
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   592
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   593
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   594
	SmfError lyrics ( SmfTrackInfo track, int pageNum = SMF_FIRST_PAGE,
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   595
			int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   596
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   597
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   598
	 * Get the lyrics lists asynchrnously, it fetches texts with time info.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   599
	 * Subtitle search filter can be applied
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   600
	 * subtitleAvailable() notification comes SmfSubtitleList with when the data is available
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   601
	 * @param track Track for which subtitle needs to be fetched.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   602
	 * @param filter Subtitle search filter
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   603
	 * @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
   604
	 * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   605
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   606
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   607
	SmfError subtitles ( SmfTrackInfo track, SmfSubtitleSearchFilter filter,
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   608
			int pageNum = SMF_FIRST_PAGE, int perPage = SMF_ITEMS_PER_PAGE);
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   609
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   610
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   611
	 * Request for a custom operation. The signal customDataAvailable() is emitted 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   612
	 * when the result is available.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   613
	 * @param operationId OperationId
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   614
	 * @param customData Custom data to be sent
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   615
	 * @return SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   616
	 * Note:-Interpretation of operationId and customData is upto the concerned
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   617
	 * plugin and client application. service provider should provide some
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   618
	 * serializing-deserializing utilities for these custom data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   619
	 */
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   620
	SmfError customRequest ( const int& operationId, QByteArray* customData );
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   621
	
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   622
    /**
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   623
     * Cancels a request generated due to the call to any API which results 
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   624
     * into http request. Might return error if no request is currently pending.
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   625
     * Please note that there can be only one request pending at any point of time
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   626
     * @return Appropriate SmfError value
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   627
     */
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   628
	SmfError cancelRequest ();
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   629
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   630
signals:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   631
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   632
	 * Notification on arrival of lyrics
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   633
	 * Note if the list is large, then it can download the list page by page.
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   634
	 * @param list List of lyrics
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   635
	 * @param error SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   636
	 * @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   637
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   638
	void lyricsAvailable ( SmfLyricsList* list, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   639
			SmfError error, SmfResultPage resultPage );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   640
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   641
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   642
	 * Notification on arrival of subtitle based on filter.
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   643
	 * Note if the list is large, then it can download the list page by page.
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   644
	 * @param list List of subtitles
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   645
	 * @param error SmfNoError if success, else appropriate error value
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   646
	 * @param resultPage Page number info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   647
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   648
	void subtitleAvailable ( SmfSubtitleList* list, 
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   649
			SmfError error, SmfResultPage resultPage );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   650
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   651
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   652
	 * Signals availability of the result of the customRequest
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   653
	 * @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
   654
	 * @param customData data
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   655
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   656
	void customDataAvailable( const int& operationId, QByteArray* customData );
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   657
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   658
private:
25
a180113055cb Music Events are now normal Fetcher APIs added
cgandhi
parents: 18
diff changeset
   659
	
18
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   660
	/**
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   661
	 * Gets the base provider info
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   662
	 */
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   663
	SmfProvider* getProvider() const;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   664
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   665
private:
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   666
	SmfProvider* m_baseProvider;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   667
	SmfLyricsServicePrivate* m_private;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   668
	friend class SmfLyricsServicePrivate;
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   669
	
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   670
	};
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   671
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   672
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
   673
013a02bf2bb0 pushing changes for common libs and trace messages
cgandhi
parents:
diff changeset
   674
#endif // SMFMUSIC_H