diff -r 106a4bfcb866 -r 013a02bf2bb0 smf/smfservermodule/smfclient/smfmusic_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/smfservermodule/smfclient/smfmusic_p.cpp Thu Aug 05 16:48:48 2010 +0530 @@ -0,0 +1,986 @@ +/** + * Copyright (c) 2010 Sasken Communication Technologies Ltd. + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of the "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html" + * + * Initial Contributors: + * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution + * + * Contributors: + * Manasij Roy, Nalina Hariharan + * + * Description: + * Private implementation of music related services + * + */ + +#include +#include +#include +#include +#include + +#include "smfmusic.h" +#include "smfmusic_p.h" +#ifdef Q_OS_SYMBIAN + #include "smfclientsymbian.h" +#else + #include "smfclientqt.h" +#endif + + +//SmfMusicServicePrivate start +SmfMusicServicePrivate::SmfMusicServicePrivate(SmfMusicService* aMusicService) + :m_musicService(aMusicService) + { +#ifdef Q_OS_SYMBIAN + //private impl for symbian + m_SmfClientPrivate = CSmfClientSymbian::NewL(this); +#else + //TODO:- Use private impl for other platforms or else Qt impl +#endif + } + +SmfMusicServicePrivate::~SmfMusicServicePrivate() + { + if(m_SmfClientPrivate) + { + delete m_SmfClientPrivate; + m_SmfClientPrivate = NULL; + } + } + +void SmfMusicServicePrivate::userinfo() + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_musicService->getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*m_baseProvider; + + QString intfName(musicServiceInterface); + int maxalloc = SmfMusicProfileMaxSize; + + //call private impl's send method + m_SmfClientPrivate->sendRequest(m_serializedDataToServer, intfName, + SmfMusicGetUserInfo, maxalloc); + } + +void SmfMusicServicePrivate::searchUser(SmfLocation venue, int pageNum, int perPage) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_musicService->getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*m_baseProvider; + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicSearchUser, maxalloc); + } + +void SmfMusicServicePrivate::customRequest ( const int& operationId, QByteArray* customData ) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_musicService->getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*m_baseProvider; + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicServiceCustomRequest, maxAlloc); + } + +void SmfMusicServicePrivate::postCurrentPlaying(SmfTrackInfo track) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_musicService->getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicPostCurrentPlaying, maxalloc); + } + +void SmfMusicServicePrivate::postRating(SmfTrackInfo track, SmfMusicRating rate) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_musicService->getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicPostRating, maxalloc); + } + +void SmfMusicServicePrivate::postComments(SmfTrackInfo track, SmfComment comment) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_musicService->getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicPostComment, maxalloc); + } + +void SmfMusicServicePrivate::resultsAvailable(QByteArray result, SmfRequestTypeID opcode, SmfError error) + { + //note:- "result" is serialized and we need to de-serialize it as per opcode + //Order of serialization Error value followed by data + + QDataStream reader(&result,QIODevice::ReadOnly); + + //Now de-serialize it based on opcode + switch(opcode) + { + case SmfMusicGetUserInfo: + { + SmfMusicProfile* m_profile = new SmfMusicProfile; + reader>>*m_profile; + + emit m_musicService->userInfoAvailable(m_profile,error); + break; + } + + case SmfMusicSearchUser: + { + SmfMusicProfileList* m_profileList = new SmfMusicProfileList; + reader>>*m_profileList; + + //ToDo :- not incorporating paging now + SmfResultPage page; + + emit m_musicService->searchInfoAvailable(m_profileList, error, page); + break; + } + + case SmfMusicPostCurrentPlaying: + case SmfMusicPostRating: + case SmfMusicPostComment: + { + emit m_musicService->postfinished(error); + break; + } + + case SmfMusicServiceCustomRequest: + { + int operationId; + QByteArray *data = new QByteArray; + reader>>operationId; + reader>>*data; + qDebug()<<"operationId = "<>*(m_trackInfoList); + + //ToDo :- not incorporating paging now + SmfResultPage page; + + emit m_musicSearch->trackSearchAvailable(m_trackInfoList,error,page); + break; + } + + case SmfMusicGetStores: + { + SmfProviderList* m_providers = new SmfProviderList; + reader>>*(m_providers); + + //ToDo :- not incorporating paging now + SmfResultPage page; + + emit m_musicSearch->storeSearchAvailable(m_providers,error,page); + break; + } + + case SmfMusicSearchCustomRequest: + { + int operationId; + QByteArray *data = new QByteArray; + reader>>operationId; + reader>>*data; + qDebug()<<"operationId = "<>*(m_playlistList); + + //ToDo:- + SmfResultPage page; + + emit m_playlstSrvc->playlistsListAvailable(m_playlistList,error,page); + break; + } + + case SmfMusicAddToPlaylist: + case SmfMusicPostCurrentPlayingPlaylist: + { + emit m_playlstSrvc->playlistUpdated(error); + break; + } + + case SmfMusicPlaylistCustomRequest: + { + int operationId; + QByteArray *data = new QByteArray; + reader>>operationId; + reader>>*data; + qDebug()<<"operationId = "<getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicGetEventsOnLoc, maxalloc); + } + +void SmfMusicEventsPrivate::venues(SmfLocation location, int pageNum, int perPage) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_musicEvent->getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicGetVenueOnLoc, maxalloc); + } + +void SmfMusicEventsPrivate::postEvents(SmfEventList events) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_musicEvent->getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicPostEvents, maxalloc); + } + +void SmfMusicEventsPrivate::customRequest ( const int& operationId, QByteArray* customData ) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_musicEvent->getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*m_baseProvider; + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicEventsCustomRequest, maxalloc); + } + +void SmfMusicEventsPrivate::resultsAvailable(QByteArray result,SmfRequestTypeID opcode,SmfError error) + { + //note:- "result" is serialized and we need to de-serialize it as per opcode + //Order of serialization Error value followed by data + + QDataStream reader(&result,QIODevice::ReadOnly); + + //Now de-serialize it based on opcode + switch(opcode) + { + case SmfMusicGetEventsOnLoc: + { + SmfEventList* m_events = new SmfEventList; + reader>>*(m_events); + + // ToDo :- + SmfResultPage page; + + m_musicEvent->eventsAvailable(m_events,error,page); + break; + } + + case SmfMusicGetVenueOnLoc: + { + SmfLocationList* m_venues = new SmfLocationList; + reader>>*(m_venues); + + //ToDo :- + SmfResultPage page; + + m_musicEvent->venuesAvailable(m_venues,error,page); + break; + } + + case SmfMusicPostEvents: + m_musicEvent->eventsUpdated(error); + break; + + case SmfMusicEventsCustomRequest: + { + int operationId; + QByteArray *data = new QByteArray; + reader>>operationId; + reader>>*data; + qDebug()<<"operationId = "<getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicGetLyrics, maxalloc); + } + +void SmfLyricsServicePrivate::subtitles(SmfTrackInfo track, SmfSubtitleSearchFilter filter, + int pageNum, int perPage) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_lyricsSrvc->getProvider(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*(m_baseProvider); + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicGetSubtitle, maxalloc); + } + +void SmfLyricsServicePrivate::customRequest ( const int& operationId, QByteArray* customData ) + { + //We need to pass Opcode and SmfProvider serialized into bytearray + SmfProvider* m_baseProvider = m_lyricsSrvc->getProvider(); + m_serializedDataToServer.clear(); + QDataStream write(&m_serializedDataToServer,QIODevice::WriteOnly); + write<<*m_baseProvider; + m_argFlag = 1; + write<sendRequest(m_serializedDataToServer, intfName, + SmfMusicLyricsCustomRequest, maxalloc); + } + +void SmfLyricsServicePrivate::resultsAvailable(QByteArray result, SmfRequestTypeID opcode, SmfError error) + { + //note:- "result" is serialized and we need to de-serialize it as per opcode + + QDataStream reader(&result,QIODevice::ReadOnly); + + //Now de-serialize it based on opcode + switch(opcode) + { + case SmfMusicGetLyrics: + { + SmfLyricsList* m_lyricsList = new SmfLyricsList; + reader>>*(m_lyricsList); + + // ToDo :- + SmfResultPage page; + + emit m_lyricsSrvc->lyricsAvailable(m_lyricsList,error,page); + break; + } + + case SmfMusicGetSubtitle: + { + SmfSubtitleList* m_subList = new SmfSubtitleList; + reader>>*(m_subList); + + // ToDo :- + SmfResultPage page; + + emit m_lyricsSrvc->subtitleAvailable(m_subList,error,page); + break; + } + + case SmfMusicLyricsCustomRequest: + { + int operationId; + QByteArray *data = new QByteArray; + reader>>operationId; + reader>>*data; + qDebug()<<"operationId = "<