# HG changeset patch # User cgandhi # Date 1271325936 -19800 # Node ID 0446eb7b28aac272234047a45ea6927cbda50730 # Parent 86af6c33360175dd730a76f5e4fb06b3535b28b3 Updating the sample plugin and other related changes for clients and plugins diff -r 86af6c333601 -r 0446eb7b28aa Doxyfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Doxyfile Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,279 @@ +# Doxyfile 1.5.5 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = SMF +PROJECT_NUMBER = +OUTPUT_DIRECTORY = doc +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +TYPEDEF_HIDES_STRUCT = NO +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = NO +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = smf example +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.d \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.idl \ + *.odl \ + *.cs \ + *.php \ + *.php3 \ + *.inc \ + *.m \ + *.mm \ + *.dox \ + *.py \ + *.f90 \ + *.f \ + *.vhd \ + *.vhdl +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = YES +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +HTML_DYNAMIC_SECTIONS = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +MSCGEN_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = YES +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = YES +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/example_usage.cpp --- a/example/clientapi/example_usage.cpp Tue Apr 06 16:35:37 2010 +0530 +++ b/example/clientapi/example_usage.cpp Thu Apr 15 15:35:36 2010 +0530 @@ -57,6 +57,7 @@ private: MyAppView* m_view; + SmfClient client; SmfGallery* m_smfgl; SmfContactFetcher* m_smfcf; SmfMusicService* m_smfms; @@ -67,7 +68,7 @@ void MyApplication::displayGallery() { // Some common interface for finding implementations. - QList* galleries = SmfClient::GetServices("org.symbian.smf.gallery\0.2"); + QList* galleries = client.GetServices("org.symbian.smf.gallery\0.2"); // We will use the first one now SmfProvider smfp = galleries->value(0); @@ -138,7 +139,7 @@ void MyApplication::displayFriends() { // Some common interface for finding implementations. - QList* contactFetcherList = SmfClient::GetServices("org.symbian.smf.contact.fetcher\0.2"); + QList* contactFetcherList = client.GetServices("org.symbian.smf.contact.fetcher\0.2"); SmfProvider smfp = contactFetcherList->value(0); SmfContactFetcher* smfcf = new SmfContactFetcher(&smfp); @@ -175,7 +176,7 @@ void MyApplication::postUpdate() { // Some common interface for finding implementations. - QList* postServices = SmfClient::GetServices("org.symbian.smf.contact.posts\0.2"); + QList* postServices = client.GetServices("org.symbian.smf.contact.posts\0.2"); //let us use the first one QString servName = postServices->value(0).serviceName(); @@ -215,7 +216,7 @@ void MyApplication::getMusic(SmfTrackInfo currTrack) { // Some common interface for finding implementations. - QList* smfProList = SmfClient::GetServices("org.symbian.smf.music\0.2"); + QList* smfProList = client.GetServices("org.symbian.smf.music\0.2"); SmfProvider smfp = smfProList->value(0); SmfMusicSearch* mServer = new SmfMusicSearch(&smfp); @@ -237,7 +238,7 @@ foreach(SmfTrackInfo track, *songs){ m_view->add(track); } - QList* smfProList = SmfClient::GetServices("org.symbian.smf.client.music.search\0.2"); + QList* smfProList = client.GetServices("org.symbian.smf.client.music.search\0.2"); SmfProvider smfp = smfProList->value(0); SmfMusicSearch* mServer = new SmfMusicSearch(&smfp); //allow user to select a track and get purchase links @@ -263,7 +264,7 @@ { // Some common interface for finding implementations. - QList* smfProList = SmfClient::GetServices("org.symbian.smf.music.lyrics\0.2","lyricsfly.com"); + QList* smfProList = client.GetServices("org.symbian.smf.music.lyrics\0.2","lyricsfly.com"); SmfProvider smfp = smfProList->value(0); SmfLyricsService* lyricsService = new SmfLyricsService(&smfp); QObject::connect(lyricsService,SIGNAL(lyricsAvailable(SmfLyricsList*, QString, SmfResultPage )),this,SLOT(showLyrics(SmfLyricsList*))); diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/SmfClientGlobal.h --- a/example/clientapi/smf/inc/common/SmfClientGlobal.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/** -* Copyright (c) 2010 Sasken Communication Technologies Ltd. -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the "{License}" -* which accompanies this distribution, and is available -* at the URL "{LicenseUrl}". -* -* Initial Contributors: -* Mansij Roy, Sasken Communication Technologies Ltd - Initial contribution -* -* Contributors: -* -* Description: -* Interface spefication for sfm service provider -* -*/ - -#ifndef SMFCLIENTGLOBAL_H_ -#define SMFCLIENTGLOBAL_H_ - -#include - - -#ifdef SMFCLIENT_LIBRARY -# define SMFCLIENT_EXPORT Q_DECL_EXPORT -#else -# define SMFCLIENT_EXPORT Q_DECL_IMPORT -#endif - -/** -* To be designed later -*/ -#define SMF_GETSERVICES(INTERFACE,INTERFACESTRING) ; - -#endif /* SMFCLIENTGLOBAL_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfcomment/smfcomment.h --- a/example/clientapi/smf/inc/common/smfcomment/smfcomment.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/** - * 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: - * The comment class represents a comment (on a picture or a music track etc) - * - */ - -#ifndef SMFCOMMENT_H_ -#define SMFCOMMENT_H_ - -#include -#include -#include -#include - -class SmfCommentPrivate; - -/** - * @ingroup smf_common_group - * The comment class represents a comment (on a picture or a music track etc) - */ -class SMFCLIENT_EXPORT SmfComment : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfComment( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfComment( const SmfComment &aOther ); - - /** - * Destructor - */ - ~SmfComment( ); - - /** - * Method to get the comment text - * @return The comment text - */ - QString text( ) const; - - /** - * Method to get the comment time stamp - * @return The comment time stamp value - */ - QDateTime timeStamp( ) const; - - /** - * Method to get the id of the comment - * @return The ID value - */ - QString id( ) const; - - /** - * Method to set the comment text - * @param aText The comment text to be set - */ - void setText( const QString &aText ); - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfComment &aComment ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfComment &aComment ); - - }; - - -/** - * Method for Externalization. Writes the SmfComment object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aComment The SmfComment object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfComment &aComment ); - -/** - * Method for Internalization. Reads a SmfComment object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aComment The SmfComment object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfComment &aComment); - -#endif /* SMFCOMMENT_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfcomment/smfcomment_p.h --- a/example/clientapi/smf/inc/common/smfcomment/smfcomment_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfComment class - * - */ - -#ifndef SMFCOMMENT_P_H_ -#define SMFCOMMENT_P_H_ - -#include -#include - -class SmfCommentPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfCommentPrivate( ) { m_text.clear(); m_commentId.clear(); } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfCommentPrivate( const SmfCommentPrivate &aOther ) : - QSharedData ( aOther ), - m_text ( aOther.m_text ), - m_timeStamp ( aOther.m_timeStamp ), - m_commentId ( aOther.m_commentId ) { } - - /** - * Destructor - */ - ~SmfCommentPrivate( ); - - QString m_text; // comment text - QDateTime m_timeStamp; // comment time stamp - QString m_commentId; - -}; - -#endif /* SMFCOMMENT_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfcontacts/smfcontact.h --- a/example/clientapi/smf/inc/common/smfcontacts/smfcontact.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/** - * 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: - * The contact class represents a social contact - * Note: This class has dependencies on QtMobility project - * - */ - -#ifndef SMFCONTACT_H_ -#define SMFCONTACT_H_ - -#include "qtcontacts.h" -#include -#include -#include - -using namespace QtMobility; - -class SmfContactPrivate; - -/** - * @ingroup smf_common_group - * The contact class represents a social contact - * - * Note: This class has dependencies on QtMobility project - */ -class SMFCLIENT_EXPORT SmfContact : public QObject - { - Q_OBJECT - -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfContact( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfContact( const SmfContact &aOther ); - - /** - * Destructor - */ - ~SmfContact( ); - -public slots: - /** - * Method to get the available sub fields for contacts. - * The following are the available sub types of a contact - * QtMobility::QContactAddress Address; - * QtMobility::QContactAnniversary Anniversary; - * QtMobility::QContactAvatar Avatar; - * QtMobility::QContactBirthday Birthday; - * QtMobility::QContactId ContactId; - * QtMobility::QContactEmailAddress EmailAddress; - * QtMobility::QContactGender Gender; - * QtMobility::QContactGeolocation Geolocation; - * QtMobility::QContactGuid Guid; - * QtMobility::QContactName Name; - * QtMobility::QContactNickname Nickname; - * QtMobility::QContactNote Note; - * QtMobility::QContactOnlineAccount OnlineAccount; - * QtMobility::QContactOrganization Organization; - * QtMobility::QContactPhoneNumber PhoneNumber; - * QtMobility::QContactTimestamp Timestamp; - * QtMobility::QContactType Type; - * QtMobility::QContactUrl Url; - * @return The Available sub fields for this contact - */ - QStringList subTypes( ) const; - - /** - * Method to convert an SmfContact to a QContact - * Changes made to the returned QContact will not be reflected - * in its parent SmfContact object - * @param aContact QContact corresponding to SmfContact - */ - void convert( QContact &aContact ) const; - - /** - * Method to get the value of a sub field for this contact - * @param aSubType The sub field type - * @return The value of the sub field subType - * @see subTypes() - */ - QVariant value( const QString& aSubType ) const; - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfContact &aContact ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfContact &aContact ); - - }; - - -/** - * Method for Externalization. Writes the SmfContact object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aContact The SmfContact object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfContact &aContact ); - -/** - * Method for Internalization. Reads a SmfContact object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aContact The SmfContact object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfContact &aContact ); - -#endif /* SMFCONTACT_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfcontacts/smfcontact_p.h --- a/example/clientapi/smf/inc/common/smfcontacts/smfcontact_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfContact class - * - */ - -#ifndef SMFCONTACT_P_H_ -#define SMFCONTACT_P_H_ - -#include - -using namespace QtMobility; - -class SmfContactPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfContactPrivate( ) { m_details.clear(); } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfContactPrivate( const SmfContactPrivate &aOther ) : - QSharedData ( aOther ), - m_details ( aOther.m_details ) { } - - /** - * Destructor - */ - ~SmfContactPrivate( ); - - QVariantMap m_details;// contact details - -}; - -#endif /* SMFCONTACT_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfcontacts/smfgroup.h --- a/example/clientapi/smf/inc/common/smfcontacts/smfgroup.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -/** - * 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: - * The group class represents an instance of a group as per SN site terminolgy - * - */ - -#ifndef SMFGROUP_H_ -#define SMFGROUP_H_ - -#include -#include -#include -#include - -class SmfGroupPrivate; - - -/** - * @ingroup smf_common_group - * The group class represents an instance of a group as per SN site terminolgy - */ -class SMFCLIENT_EXPORT SmfGroup : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param list The list of members in the group - */ - SmfGroup( QList* list = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfGroup( const SmfGroup &aOther ); - - /** - * Destructor - */ - ~SmfGroup( ); - -public slots: - /** - * Method to get the list of members in the group - * @return The list of members in the group - */ - QList members( ) const; - - /** - * Method to get the name of the group - * @return The name of the group - */ - QString name( ) const; - - /** - * Method to get the id of the group - * @return The ID value - */ - QString id( ) const; - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfGroup &aGroup ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfGroup &aGroup ); - - }; - - -/** - * Method for Externalization. Writes the SmfGroup object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aGroup The SmfGroup object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfGroup &aGroup ); - -/** - * Method for Internalization. Reads a SmfGroup object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aGroup The SmfGroup object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfGroup &aGroup); - -#endif /* SMFGROUP_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfcontacts/smfgroup_p.h --- a/example/clientapi/smf/inc/common/smfcontacts/smfgroup_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfGroup class - * - */ - -#ifndef SMFGROUP_P_H_ -#define SMFGROUP_P_H_ - -#include -#include - -class SmfGroupPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfGroupPrivate( ) { m_members = NULL; m_groupName.clear(); m_groupId.clear(); } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfGroupPrivate( const SmfGroupPrivate &aOther ) : - QSharedData ( aOther ), - m_members ( aOther.m_members ), - m_groupName ( aOther.m_groupName ), - m_groupId ( aOther.m_groupId ) { } - - /** - * Destructor - */ - ~SmfGroupPrivate( ); - - QList *m_members; // members in the group - QString m_groupName; - QString m_groupId; - // Other details to be added -}; - - -#endif /* SMFGROUP_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfcontacts/smfpost.h --- a/example/clientapi/smf/inc/common/smfcontacts/smfpost.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/** - * 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: - * The post class represents an instance of a post to a SN site - * - */ - -#ifndef SMFPOST_H_ -#define SMFPOST_H_ - -#include -#include -#include -#include -#include -#include - -class SmfPostPrivate; - - -/** - * @ingroup smf_common_group - * The post class represents an instance of a post to a SN site - */ -class SMFCLIENT_EXPORT SmfPost : public QTextDocument - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param text Text - * @param aParent The parent object - */ - SmfPost( QString text,QObject *aParent = 0 ); - - /** - * Constructor - * @param aText The post's text - * @param aImage The post's image - * @param aUrl The post's url - */ - SmfPost( QString aTitle, QString aDesc, QImage aImage, QUrl aUrl ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfPost( const SmfPost &aOther ); - - /** - * Destructor - */ - ~SmfPost( ); - - /** - * Method to get the title of the post - * @return The post's title - */ - QString title( ) const; - - /** - * Method to get the description of the post - * @return The post's description - */ - QString description( ) const; - - /** - * Method to get the image of the post - * @return The post's image - */ - QImage image( ) const; - - /** - * Method to get the url of the post - * @return The post's url - */ - QUrl url( ) const; - - /** - * Method to get the id of the post - * @return The ID value - */ - QString id( ) const; - - /** - * Method to set the title of the post - * @param aTitle The post's new title - */ - void setTitle( const QString &aTitle ); - - /** - * Method to set the description of the post - * @param aDesc The post's new description - */ - void setDescription( const QString &aDesc ); - - /** - * Method to set the image of the post - * @param aPic The post's image - */ - void setImage( const QImage& aPic ); - - /** - * Method to set the url of the post - * @param aUrl The post's url - */ - void setUrl( QUrl& aUrl ); - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfPost &aPost ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfPost &aPost ); - - }; - - -/** - * Method for Externalization. Writes the SmfPost object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aPost The SmfPost object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfPost &aPost ); - -/** - * Method for Internalization. Reads a SmfPost object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aPost The SmfPost object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfPost &aPost); - -#endif /* SMFPOST_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfcontacts/smfpost_p.h --- a/example/clientapi/smf/inc/common/smfcontacts/smfpost_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfPost class - * - */ - -#ifndef SMFPOST_P_H_ -#define SMFPOST_P_H_ - -#include - -class SmfPostPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfPostPrivate( ) { m_title.clear(); m_desc.clear(); m_url.clear(); m_postId.clear(); } - - /** - * Constructor - */ - SmfPostPrivate( QString aTitle, QString aDesc, QImage aImage, QUrl aUrl ) - { - m_title = aTitle; - m_desc = aDesc; - m_image = aImage; - m_url = aUrl; - m_postId.clear(); - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfPostPrivate( const SmfPostPrivate &aOther ) : - QSharedData ( aOther ), - m_title ( aOther.m_title ), - m_desc ( aOther.m_desc ), - m_image ( aOther.m_image ), - m_url ( aOther.m_url ), - m_postId ( aOther.m_postId ) { } - - /** - * Destructor - */ - ~SmfPostPrivate( ); - - QString m_title; // title - QString m_desc; // description - QImage m_image; // image - QUrl m_url; // url - QString m_postId; // post's unique Id - -}; - -#endif /* SMFPOST_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfdes.h --- a/example/clientapi/smf/inc/common/smfdes.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/** - * 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: - * Intro Page - * - * @ref smf_high_level_design - */ - -/** - * @mainpage SMF (Social Mobile Framework Interfaces) - * @defgroup smf_high_level_design SMF high level design - * - * Social Mobile Framework is a application level framework which allows Qt Applications - * use the common web APIs to perform social web activities. - * - * Product name is "SMF" - * - * For details please refer to http://developer.symbian.org/wiki/index.php/Social_Mobile_Framework - * - * @section smf_interfaces SMF Interfaces - * - * There are two sets of interfaces - - * @subsection smf_client_interfaces Client Interfaces - * - Client Applications (e.g. Media Player, Contacts, Game) uses these APIs to access SMF. see @ref smf_client_group - * - * @subsection smf_plugin_interfaces Plugin Interfaces - * - Service Providers (e.g. Facebook, Flickr, last.fm) implements these APIs to provide service to SMF - see @ref smf_plugin_group - * - * Currently, @ref smf_client_interfaces and @ref smf_plugin_interfaces are defined for remote contacts, remote - * image gallery and remote music services. There are common classes defined for holding data accross clients - * and plugins, present in inc\common, see - @ref smf_common_group - * - * - * @section smf_client_usage Client Usage Example - * - This shows how to use the SMF client APIs in applications, e.g. Client can define suitable Models using lists returned by these APIs - * - how to fetch a list of contacts from a remote server e.g. Facebook, see @ref MyApplication::displayFriends() - * - how to get a @ref QContact from a SmfContacts see @ref MyApplication::showlist() - * - how to get a list of images from a remote gallery e.g. Flickr.com, see @ref MyApplication::displayGallery() - * - how to post privately to a contact see @ref MyApplication::postUpdate() - * - how to tell others about the music you are currently listen to, see @ref MyApplication::updateCurrentPlaying() - * - * - * @section smf_dependency Dependency - * SMF uses QtMobility for mainly contacts information, see QtMobility project. - */ -/** - * @defgroup smf_common_group Common Data Classes - */ -/** - * @defgroup smf_client_group Client Classes - */ -/** - * @defgroup smf_plugin_group Plugin Classes - */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfevent/smfevent.h --- a/example/clientapi/smf/inc/common/smfevent/smfevent.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,169 +0,0 @@ -/** - * 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: - * The SmfEvent class represents an event - * - */ - -#ifndef SMFEVENT_H_ -#define SMFEVENT_H_ - -#include -#include -#include -#include -#include -#include - -class SmfEventPrivate; - -/** - * @ingroup smf_common_group - * The event class represents an event - */ -class SMFCLIENT_EXPORT SmfEvent : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfEvent( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfEvent( const SmfEvent &aOther ); - - /** - * Destructor - */ - ~SmfEvent( ); - - /** - * Method to get the event name - * @return The event name - */ - QString title( ) const; - - /** - * Method to get the event date and time - * @return The date and time of the event - */ - QDateTime eventDateTime( ) const; - - /** - * Method to get the event duration - * @return The duration of the event - */ - QTime duration( ) const; - - /** - * Method to get the artist names - * @return The list of artists in the event - */ - SmfArtists artists( ) const; - - /** - * Method to get the venue of the event - * @return The venue of the event - */ - SmfPlace venue( ) const; - - /** - * Method to get the URL for getting tickets for the event - * @return The Url for getting ticket for the event - */ - QUrl ticketUrl( ) const; - - /** - * Method to get the id of the event - * @return The ID value - */ - QString id( ) const; - - /** - * Method to set the event name - * @param aName The new event name - */ - void setTitle( const QString &aName ); - - /** - * Method to set the event date and time - * @param aDateTime The new date and time of the event - * - */ - void setEventDateTime( const QDateTime &aDateTime ); - - /** - * Method to set the event duration - * @param aDuration The new duration of the event - * - */ - void setDuration( const QTime &aDuration ); - - /** - * Method to set the artist - * @param aArtists The new artists in the event - */ - void setArtists( const SmfArtists &aArtists ); - - /** - * Method to set the venue name - * @param aVenue The new venue of the event - */ - void setVenue( const SmfPlace &aVenue ); - - /** - * Method to set the URL for getting tickets for the event - * @param aUrl The new Url for getting ticket for the event - */ - void setTicketUrl( const QUrl &aUrl ); - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfEvent &aEvent ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfEvent &aEvent ); - - }; - - -/** - * Method for Externalization. Writes the SmfEvent object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aEvent The SmfEvent object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfEvent &aEvent ); - -/** - * Method for Internalization. Reads a SmfEvent object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aEvent The SmfEvent object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfEvent &aEvent); - -#endif /* SMFEVENT_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfevent/smfevent_p.h --- a/example/clientapi/smf/inc/common/smfevent/smfevent_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfEvent class - * - */ - -#ifndef SMFEVENT_P_H_ -#define SMFEVENT_P_H_ - - -#include -#include -#include -#include - -class SmfEventPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfEventPrivate( ) { - m_name.clear(); - m_url.clear(); - m_eventId.clear(); - - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfEventPrivate( const SmfEventPrivate &aOther ) : - QSharedData ( aOther ), - m_name ( aOther.m_name ), - m_dateTime ( aOther.m_dateTime ), - m_duration ( aOther.m_duration ), - m_artists ( aOther.m_artists ), - m_venue ( aOther.m_venue ), - m_url ( aOther.m_url ), - m_eventId ( aOther.m_eventId ) { } - - /** - * Destructor - */ - ~SmfEventPrivate( ); - - QString m_name; // event name - QDateTime m_dateTime; // event date and time - QTime m_duration; // event duration - SmfArtists m_artists; // event artist names - SmfPlace m_venue; // venue of the event - QUrl m_url; // ticket url - QString m_eventId; - -}; - -#endif /* SMFEVENT_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfglobal.h --- a/example/clientapi/smf/inc/common/smfglobal.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,275 +0,0 @@ -/** - * 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: - * The smfglobal.h files contains all global data common to Smf framework - * - */ - -#ifndef SMFGLOBAL_H_ -#define SMFGLOBAL_H_ - -#include -#include -#include - -/** - * Exact definition to be decided later - */ -#define SMF_SERVICE_NAME(INTERFACE,INTERFACENAME) - -/** - * Indicates first page for a web query - */ -const int SMF_FIRST_PAGE=0; - -/** - * Default value for per page item for web queries - */ -const int SMF_ITEMS_PER_PAGE=10; - - -/** - * Enum declaration for Network status information - */ -enum SmfNetworkStatus - { - SmfNetworkConnectedHome = 0, - SmfNetworkConnectedRoaming, // value = 1 - SmfNetworkStateNotKnown, // value = 2 - SmfNetworkConnected, // value = 3 - SmfNetworkNotConnected // value = 4 - }; - -/** - * Enum declaration for result of transport initialize operation - */ -enum SmfTransportInitializeResult - { - SmfTransportInitNetworkNotAvailable = 0, - SmfTransportInitRoamingNetworkUsageNotEnabled, // value = 1 - SmfTransportInitNoError // value = 2 - }; - -/** - * The enumeration used to indicate result of transport to the plugins - */ -enum SmfTransportResult - { - SmfTransportOpNoError = 0, - SmfTransportOpConnectionRefusedError, - SmfTransportOpRemoteHostClosedError, - SmfTransportOpHostNotFoundError, - SmfTransportOpTimeoutError, - SmfTransportOpOperationCanceledError, - SmfTransportOpSslHandshakeFailedError, - SmfTransportOpProxyConnectionRefusedError, - SmfTransportOpProxyConnectionClosedError, - SmfTransportOpProxyNotFoundError, - SmfTransportOpProxyTimeoutError, - SmfTransportOpProxyAuthenticationRequiredError, - SmfTransportOpContentAccessDenied, - SmfTransportOpContentOperationNotPermittedError, - SmfTransportOpContentNotFoundError, - SmfTransportOpAuthenticationRequiredError, - SmfTransportOpContentReSendError, - SmfTransportOpProtocolUnknownError, - SmfTransportOpProtocolInvalidOperationError, - SmfTransportOpUnknownNetworkError, - SmfTransportOpUnknownProxyError, - SmfTransportOpUnknownContentError, - SmfTransportOpProtocolFailure, - SmfTransportOpUnknownError, - SmfTransportOpIAPChanged, - SmfTransportOpCancelled - }; - -/** - * The enumeration used to indicate result of plugin manager operations - */ -enum SmfPluginManagerResult - { - SmfPluginNoError = 0, - SmfPluginNotFound, - SmfPluginNotLoaded, - SmfPluginLoaded, - SmfPluginLoadError, - SmfPluginAuthorised, - SmfPluginNotAuthorised, - SmfPluginUnknownService, - SmfPluginRequestSendingFailed, - SmfPluginSOPCheckFailed, - SmfPluginServiceError, - SmfPluginUnknownError - }; - - -/** - * The enumeration used to denote errors reported by plugin - * Smf can't continue without handling these errors - */ -enum SmfPluginError - { - SmfPluginErrNone = 0, - SmfPluginErrTooManyRequest, - SmfPluginErrRequestQuotaExceeded, - SmfPluginErrInvalidRequest, - SmfPluginErrUserNotLoggedIn, - SmfPluginErrAuthenticationExpired, - SmfPluginErrPermissionDenied, - SmfPluginErrInvalidApplication, - SmfPluginErrServiceUnavailable, - SmfPluginErrServiceTemporaryUnavailable, - SmfPluginErrFormatNotSupported, - SmfPluginErrDataSizeExceeded - }; - -/** - * The enumeration used to track the plugin methods return type - */ -enum SmfPluginRetType - { - SmfSendRequestAgain = 0, - SmfRequestComplete, - SmfRequestError - }; - - -/** - * The enumeration used to indicate the type of network operation done - */ -enum SmfRequestOperation - { - SmfContactGetFriends = 0, - SmfContactGetFollowers, - SmfContactSearch, - SmfContactGerGroups, - SmfContactSearchInGroup, - SmfContactGetPosts, - SmfContactUpdatePost, - SmfContactUpdatePostDirected, - SmfContactPostAppearence, - SmfMusicGetLyrics, - SmfMusicGetSubtitle, - SmfMusicGetEventsOnLoc, - SmfMusicGetVenueOnLoc, - SmfMusicGetEventsOnVenue, - SmfMusicPostEvents, - SmfMusicGetRecommendations, - SmfMusicGetTracks, - SmfMusicGetTrackInfo, - SmfMusicGetStores, - SmfMusicPostCurrentPlaying, - SmfMusicGetUserInfo, - SmfMusicSearchUser, - SmfMusicGetPlaylists, - SmfMusicGetPlaylistsOfUser, - SmfMusicAddToPlaylist, - SmfMusicPostCurrentPlayingPlaylist, - SmfPictureGetPictures, - SmfPictureDescription, - SmfPictureUpload, - SmfPictureMultiUpload, - SmfPicturePostComment - - }; - - -/** - * The structure used to hold the request created by the plugins - */ -struct SmfPluginRequestData - { - /** - * Indicates the type of operation performed, like getting Friends - * list, upload image etc - */ - SmfRequestOperation iRequestType; - - /** - * The QNetworkRequest that has to be filled up by the plugins - */ - QNetworkRequest iNetworkRequest; - - /** - * The data to be posted in case of HTTP POST operation - */ - QBuffer *iPostData; - - /** - * The type of HTTP transaction, like GET, POST etc - */ - QNetworkAccessManager::Operation iHttpOperationType; - - }; - -/** - * The structure used to hold the request created by the plugins - */ -struct SmfResultPage - { - /** - * The total number of items - */ - uint iTotalItems; - - /** - * The number of items per page - */ - uint iItemsPerPage; - - /** - * The total number of pages - */ - uint iTotalPages; - - /** - * The current fetched page number - */ - uint iPageNum; - }; - -/** - * The structure used to track the data usage of each plugins - */ -struct SmfPluginDataUsage - { - /** - * Application that called the plugin - */ - QString iAppName; - - /** - * Interface implemented by the plugin - */ - QString iInterfaceName; - - /** - * The service provider - */ - QString iServiceProviderName; - - /** - * number of bytes sent for this plugin - */ - uint iBytesSent; - - /** - * number of bytes received for this plugin - */ - uint iBytesReceived; - - }; - -#endif /* SMFGLOBAL_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfalbum.h --- a/example/clientapi/smf/inc/common/smfmusic/smfalbum.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ -/** - * 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: - * The SmfAlbum class represents a music album - * - */ -#ifndef SMFALBUM_H_ -#define SMFALBUM_H_ - -#include -#include -#include -#include - -class SmfAlbumPrivate; -class SmfArtists; - -/** - * @ingroup smf_common_group - * The SmfAlbum class represents a music album - */ -class SMFCLIENT_EXPORT SmfAlbum : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfAlbum( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfAlbum( const SmfAlbum &aOther ); - - /** - * Destructor - */ - ~SmfAlbum( ); - - /** - * Method to get the album name - * @return The album name - */ - QString name( ) const; - - /** - * Method to get the album's image - * @return The album's image - */ - QImage image( ) const; - - /** - * Method to get the artist names - * @return The list of artists in the album - */ - SmfArtists artists( ) const; - - /** - * Method to get the id of the album - * @return The ID value - */ - QString id( ) const; - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfAlbum &aAlbum ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfAlbum &aAlbum ); - - }; - - -/** - * Method for Externalization. Writes the SmfAlbum object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aAlbum The SmfAlbum object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfAlbum &aAlbum ); - -/** - * Method for Internalization. Reads a SmfAlbum object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aAlbum The SmfAlbum object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfAlbum &aAlbum); - - -#endif /* SMFALBUM_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfalbum_p.h --- a/example/clientapi/smf/inc/common/smfmusic/smfalbum_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfAlbum class - * - */ - -#ifndef SMFALBUM_P_H_ -#define SMFALBUM_P_H_ - -#include -#include -#include - -class SmfAlbumPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfAlbumPrivate( ) { - m_name.clear(); - m_albumId.clear(); - - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfAlbumPrivate( const SmfAlbumPrivate &aOther ) : - QSharedData ( aOther ), - m_name ( aOther.m_name ), - m_image ( aOther.m_image ), - m_artists ( aOther.m_artists ), - m_albumId ( m_albumId.m_eventId ) { } - - /** - * Destructor - */ - ~SmfAlbumPrivate( ); - - QString m_name; // album name - QImage m_image; // album image - SmfArtists m_artists; // album's artists - QString m_albumId; - -}; - -#endif /* SMFALBUM_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfartists.h --- a/example/clientapi/smf/inc/common/smfmusic/smfartists.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -/** - * 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: - * The SmfArtists class represents the artists in a track or an album - * - */ - -#ifndef SMFARTISTS_H_ -#define SMFARTISTS_H_ - -#include -#include -#include -#include -#include - -class SmfArtistsPrivate; - -/** - * @ingroup smf_common_group - * The SmfArtists class represents the artists in a track or an album - */ -class SMFCLIENT_EXPORT SmfArtists : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfArtists( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfArtists( const SmfArtists &aOther ); - - /** - * Destructor - */ - ~SmfArtists( ); - - /** - * Method to get the artists names - * @return The list of artists - */ - QStringList names( ) const; - - /** - * Method to get the image of the artists - * @return The image of te artists - */ - QImage image( ) const; - - /** - * Method to get the url of the artists - * @return The url of the artists - */ - QUrl url( ) const; - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfArtists &aArtists ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfArtists &aArtists ); - - }; - - -/** - * Method for Externalization. Writes the SmfArtists object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aArtists The SmfArtists object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfArtists &aArtists ); - -/** - * Method for Internalization. Reads a SmfArtists object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aArtists The SmfArtists object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfArtists &aArtists); - - -#endif /* SMFARTISTS_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfartists_p.h --- a/example/clientapi/smf/inc/common/smfmusic/smfartists_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfArtists class - * - */ - -#ifndef SMFARTISTS_P_H_ -#define SMFARTISTS_P_H_ - -#include -#include -#include - -class SmfArtistsPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfArtistsPrivate( ) { - m_names.clear(); - m_url.clear(); - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfArtistsPrivate( const SmfArtistsPrivate &aOther ) : - QSharedData ( aOther ), - m_names ( aOther.m_names ), - m_image ( aOther.m_image ), - m_url ( aOther.m_url ) { } - - /** - * Destructor - */ - ~SmfArtistsPrivate( ); - - QStringList m_names; // artist names - QImage m_image; // image - QUrl m_url; // url -}; - - -#endif /* SMFARTISTS_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smflyrics.h --- a/example/clientapi/smf/inc/common/smfmusic/smflyrics.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/** - * 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: - * The SmfLyrics class represents an instance of a music track's lyrics - * - */ - -#ifndef SMFLYRICS_H_ -#define SMFLYRICS_H_ - -#include -#include -#include -#include - -class SmfLyricsPrivate; - -/** - * @ingroup smf_common_group - * The lyrics class represents an instance of a music track's lyrics - */ -class SMFCLIENT_EXPORT SmfLyrics : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfLyrics( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfLyrics( const SmfLyrics &aOther ); - - /** - * Destructor - */ - ~SmfLyrics( ); - - /** - * Method to get the lyrics - * @return The lyrics data - */ - QByteArray lyrics( ) const; - - /** - * Method to get the language - * @return The language - */ - QString language( ) const; - - /** - * Method to get the release year - * @return The release year - */ - QDateTime releaseYear( ) const; - - /** - * Method to get the id of the lyrics - * @return The ID value - */ - QString id( ) const; - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfLyrics &aLyrics ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfLyrics &aLyrics ); - - }; - - -/** - * Method for Externalization. Writes the SmfLyrics object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aLyrics The SmfLyrics object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfLyrics &aLyrics ); - -/** - * Method for Internalization. Reads a SmfLyrics object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aLyrics The SmfLyrics object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfLyrics &aLyrics); - -#endif /* SMFLYRICS_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smflyrics_p.h --- a/example/clientapi/smf/inc/common/smfmusic/smflyrics_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfLyrics class - * - */ - -#ifndef SMFLYRICS_P_H_ -#define SMFLYRICS_P_H_ - -#include -#include - -class SmfLyricsPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfLyricsPrivate( ) { - m_lyrics.clear(); - m_language.clear(); - m_lyricsId.clear(); - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfLyricsPrivate( const SmfLyricsPrivate &aOther ) : - QSharedData ( aOther ), - m_lyrics ( aOther.m_lyrics ), - m_language ( aOther.m_language ), - m_releaseYr ( aOther.m_releaseYr ), - m_lyricsId ( aOther.m_lyricsId ) { } - - /** - * Destructor - */ - ~SmfLyricsPrivate( ); - - QByteArray m_lyrics; // lyrics data - QString m_language; // language - QDateTime m_releaseYr; // release year - QString m_lyricsId; // lyrics id - -}; - -#endif /* SMFLYRICS_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfmusicfingerprint.h --- a/example/clientapi/smf/inc/common/smfmusic/smfmusicfingerprint.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/** - * 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: - * The SmfMusicFingerPrint class represents a music finger print used in searches - * - */ - -#ifndef SMFMUSICFINGERPRINT_H_ -#define SMFMUSICFINGERPRINT_H_ - -#include -#include -#include - -class SmfMusicFingerPrintPrivate; - -/** - * @ingroup smf_common_group - * The musicfingerprint class represents a music finger print used in searches - */ -class SMFCLIENT_EXPORT SmfMusicFingerPrint : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfMusicFingerPrint( QObject *aParent = 0 ); - /** - * Destructor - */ - ~SmfMusicFingerPrint( ); - - /** - * GEt the music finger print data - * @return The music finger print data - */ - QByteArray musicFingerPrint ( ) const; - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfMusicFingerPrint &aMFP ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfMusicFingerPrint &aMFP ); - - }; - - -/** - * Method for Externalization. Writes the SmfMusicFingerPrint object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aMFP The SmfMusicFingerPrint object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfMusicFingerPrint &aMFP ); - -/** - * Method for Internalization. Reads a SmfMusicFingerPrint object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aMFP The SmfMusicFingerPrint object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfMusicFingerPrint &aMFP); - -#endif /* SMFMUSICFINGERPRINT_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfmusicfingerprint_p.h --- a/example/clientapi/smf/inc/common/smfmusic/smfmusicfingerprint_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfMusicFingerPrint class - * - */ - -#ifndef SMFMUSICFINGERPRINT_P_H_ -#define SMFMUSICFINGERPRINT_P_H_ - -#include - -class SmfMusicFingerPrintPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfMusicFingerPrintPrivate( ); - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfMusicFingerPrintPrivate( const SmfMusicFingerPrintPrivate &aOther ) : - QSharedData ( aOther ), - m_fingerPrintData ( aOther.m_fingerPrintData ) { } - - /** - * Destructor - */ - ~SmfMusicFingerPrintPrivate( ); - - QByteArray m_fingerPrintData; - -}; - - -#endif /* SMFMUSICFINGERPRINT_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfmusicprofile.h --- a/example/clientapi/smf/inc/common/smfmusic/smfmusicprofile.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -/** - * 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: - * The music profile class represents a user's profile in music site - * - */ - -#ifndef SMFMUSICPROFILE_H_ -#define SMFMUSICPROFILE_H_ - -#include -#include -#include -#include -#include - -class SmfMusicProfilePrivate; - -/** - * @ingroup smf_common_group - * The music profile class represents a user's profile in music site - */ -class SMFCLIENT_EXPORT SmfMusicProfile : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfMusicProfile( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfMusicProfile( const SmfMusicProfile &aOther ); - - /** - * Destructor - */ - ~SmfMusicProfile( ); - - /** - * Method to get the user's used tracks - * @return The users track list - */ - QList musicUsageInfo( ) const; - - /** - * Method to get the user's interested tracks - * @return The users interested track list - */ - QList interestInfo( ) const; - - /** - * Method to get the user events as list of SmfEvents - * @return The list of events - */ - QList userEvents( ) const; - - /** - * Method to get the id of the music profile - * @return The ID value - */ - QString id( ) const; - - /** - * Method to set the user's used tracks - * @param aUsage The users new track list - */ - void setMusicUsageInfo( const QList& aUsage ); - - /** - * Method to set the user's interested tracks - * @param aInterest The users new interested track list - */ - void setInterestInfo( const QList& aInterest ); - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfMusicProfile &aProfile ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfMusicProfile &aProfile ); - - }; - - -/** - * Method for Externalization. Writes the SmfMusicProfile object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aProfile The SmfMusicProfile object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfMusicProfile &aProfile ); - -/** - * Method for Internalization. Reads a SmfMusicProfile object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aProfile The SmfMusicProfile object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfMusicProfile &aProfile); - -#endif /* SMFMUSICPROFILE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfmusicprofile_p.h --- a/example/clientapi/smf/inc/common/smfmusic/smfmusicprofile_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfMusicProfile class - * - */ - -#ifndef SMFMUSICPROFILE_P_H_ -#define SMFMUSICPROFILE_P_H_ - - -#include -#include -#include - -class SmfMusicProfilePrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfMusicProfilePrivate( ) { - m_usage.clear(); - m_interest.clear(); - m_events.clear(); - m_profileId.clear(); - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfMusicProfilePrivate( const SmfMusicProfilePrivate &aOther ) : - QSharedData ( aOther ), - m_usage ( aOther.m_usage ), - m_interest ( aOther.m_interest ), - m_events ( aOther.m_events ), - m_profileId ( aOther.m_profileId ) { } - - /** - * Destructor - */ - ~SmfMusicProfilePrivate( ); - - QList m_usage; // usage tracks - QList m_interest;// interested tracks - QList m_events; // events list - QString m_profileId; - -}; - -#endif /* SMFMUSICPROFILE_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfmusicrating.h --- a/example/clientapi/smf/inc/common/smfmusic/smfmusicrating.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/** - * 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: - * The music rating class represents an instance of rating - * about a music track - * - */ - -#ifndef SMFMUSICRATING_H_ -#define SMFMUSICRATING_H_ - -#include -#include -#include - -class SmfTrackInfo; -class SmfMusicRatingPrivate; - -/** - * Indicates range of values to represent ratings, - * SP should normalize their rating value to this scale - */ -const int SMF_MAX_RATING = 10; -const int SMF_MIN_RATING = 0; - -/** - * @ingroup smf_common_group - * The music rating class represents an instance of rating - * about a music track - */ -class SMFCLIENT_EXPORT SmfMusicRating : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - * (parent should be of type SmfTrackInfo) - */ - SmfMusicRating(SmfTrackInfo *aParent = 0); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfMusicRating( const SmfMusicRating &aOther ); - - /** - * Overloaded = operator - * @param aOther The reference object - */ - SmfMusicRating operator=( const SmfMusicRating &aOther ); - - /** - * Destructor - */ - ~SmfMusicRating( ); - - /** - * Method to get the rating - * @return The rating value - */ - int rating( ) const; - - /** - * Method to get the max rating - * @return The max rating value - */ - int maxRating( ) const; - - /** - * Method to get the min rating - * @return The min rating value - */ - int minRating( ) const; - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfMusicRating &aMusicRating ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfMusicRating &aMusicRating ); - - }; - - -/** - * Method for Externalization. Writes the SmfMusicRating object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aMusicRating The SmfMusicRating object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfMusicRating &aMusicRating ); - -/** - * Method for Internalization. Reads a SmfMusicRating object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aMusicRating The SmfMusicRating object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfMusicRating &aMusicRating); - -#endif /* SMFMUSICRATING_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfmusicrating_p.h --- a/example/clientapi/smf/inc/common/smfmusic/smfmusicrating_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfMusicRating class - * - */ - -#ifndef SMFMUSICRATING_P_H_ -#define SMFMUSICRATING_P_H_ - -#include - -class SmfMusicRatingPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfMusicRatingPrivate( int aMax, int aMin ) { - m_rating = 0; - m_max = aMax; - m_min = aMin; - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfMusicRatingPrivate( const SmfMusicRatingPrivate &aOther ) : - QSharedData ( aOther ), - m_rating ( aOther.m_rating ), - m_max ( aOther.m_max ), - m_min ( aOther.m_min ) { } - - /** - * Destructor - */ - ~SmfMusicRatingPrivate( ); - - int m_rating; // rating - int m_max; // max rating - int m_min; // min rating - -}; - -#endif /* SMFMUSICRATING_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfplaylist.h --- a/example/clientapi/smf/inc/common/smfmusic/smfplaylist.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -/** - * 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: - * The playlist class represents an instance of a playlist - * - */ - -#ifndef SMFPLAYLIST_H_ -#define SMFPLAYLIST_H_ - -#include -#include -#include -#include - -class SmfPlaylistPrivate; - -/** - * @ingroup smf_common_group - * The playlist class represents an instance of a playlist - */ -class SMFCLIENT_EXPORT SmfPlaylist : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfPlaylist( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfPlaylist( const SmfPlaylist &aOther ); - - /** - * Destructor - */ - ~SmfPlaylist( ); - - /** - * Method to get the list of tracks in the playlist - * @return The list of tracks in the playlist - */ - QList trackList( ) const; - - /** - * Method to get the playlist title - * @return The title of the playlist - */ - QString playListTitle( ) const; - - /** - * Method to get the creation date of the playlist - * @return The date and time of creation of the playlist - */ - QDateTime creationDate( ) const; - - /** - * Method to get the id of the playlist - * @return The ID value - */ - QString id( ) const; - - /** - * Method to set the list of tracks in the playlist - * @param aList The new list of tracks in the playlist - */ - void setTrackList( const QList &aList ); - - /** - * Method to set the playlist title - * @param aTitle The new title of the playlist - */ - void setPlayListTitle( const QString &aTitle ); - - /** - * Method to set the creation date of the playlist - * @param aDate The new date and time of creation of the playlist - */ - void setCreationDate( const QDateTime &aDate ); - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfPlaylist &aPlaylist ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfPlaylist &aPlaylist ); - - }; - - -/** - * Method for Externalization. Writes the SmfPlaylist object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aPlaylist The SmfPlaylist object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfPlaylist &aPlaylist ); - -/** - * Method for Internalization. Reads a SmfPlaylist object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aPlaylist The SmfPlaylist object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfPlaylist &aPlaylist); - -#endif /* SMFPLAYLIST_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfplaylist_p.h --- a/example/clientapi/smf/inc/common/smfmusic/smfplaylist_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfPlaylist class - * - */ - -#ifndef SMFPLAYLIST_P_H_ -#define SMFPLAYLIST_P_H_ - -#include -#include - -class SmfPlaylistPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfPlaylistPrivate( ) { - m_trackList.clear(); - m_title.clear(); - m_playlistId.clear(); - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfPlaylistPrivate( const SmfPlaylistPrivate &aOther ) : - QSharedData ( aOther ), - m_trackList ( aOther.m_trackList ), - m_title ( aOther.m_title ), - m_creationDate ( aOther.m_creationDate ), - m_playlistId ( aOther.m_playlistId ) { } - - /** - * Destructor - */ - ~SmfPlaylistPrivate( ); - - QList m_trackList;// list of tracks - QString m_title; // playlist name - QDateTime m_creationDate; // creation date - QString m_playlistId; - -}; - -#endif /* SMFPLAYLIST_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfsubtitle.h --- a/example/clientapi/smf/inc/common/smfmusic/smfsubtitle.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/** - * 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: - * The subtitle class represents information about a track's subtitle - * - */ - -#ifndef SMFSUBTITLE_H_ -#define SMFSUBTITLE_H_ - -#include -#include -#include -#include -#include - -enum SmfSubtitleSearchFilterFields - { - SubtitleLanguage = 0, - SubtitleFrameRate, // value = 1 - SubtitleDuration, // value = 2 - SubtitleReleaseYear, // value = 3 - SubtitleAll = SubtitleLanguage | SubtitleFrameRate | - SubtitleDuration | SubtitleReleaseYear - }; -typedef QMap SmfSubtitleSearchFilter; - -class SmfSubtitlePrivate; - -/** - * @ingroup smf_common_group - * The subtitle class represents information about a track's subtitle - */ -class SMFCLIENT_EXPORT SmfSubtitle : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfSubtitle( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfSubtitle( const SmfSubtitle &aOther ); - - /** - * Destructor - */ - ~SmfSubtitle( ); - - /** - * Method to get the subtitle as a bytearray - * @return The subtitle content - */ - QByteArray subtitle( ) const; - - /** - * Method to get the language - * @return The language - */ - QString language( ) const; - - /** - * Method to get the frame rate - * @return the frame rate - */ - double frameRate( ) const; - - /** - * Method to get the duration - * @return the duration - */ - double duration( ) const; - - /** - * Method to get the release year - * @return The release year - */ - QDateTime releaseYear( ) const; - - /** - * Method to get the id of the subtitle - * @return The ID value - */ - QString id( ) const; - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfSubtitle &aSubtitle ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfSubtitle &aSubtitle ); - - }; - - -/** - * Method for Externalization. Writes the SmfSubtitle object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aSubtitle The SmfSubtitle object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfSubtitle &aSubtitle ); - -/** - * Method for Internalization. Reads a SmfSubtitle object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aSubtitle The SmfSubtitle object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfSubtitle &aSubtitle); - -#endif /* SMFSUBTITLE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smfsubtitle_p.h --- a/example/clientapi/smf/inc/common/smfmusic/smfsubtitle_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfSubtitle class - * - */ - -#ifndef SMFSUBTITLE_P_H_ -#define SMFSUBTITLE_P_H_ - -#include -#include - -class SmfSubtitlePrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfSubtitlePrivate( ) { - m_language.clear(); - m_frameRate = 0; - m_duration = 0; - m_subtitleId.clear(); - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfSubtitlePrivate( const SmfSubtitlePrivate &aOther ) : - QSharedData ( aOther ), - m_subtitle ( aOther.m_subtitle ), - m_language ( aOther.m_language ), - m_frameRate ( aOther.m_frameRate ), - m_duration ( aOther.m_duration ), - m_releaseYr ( aOther.m_releaseYr ), - m_subtitleId ( aOther.m_subtitleId ) { } - - /** - * Destructor - */ - ~SmfSubtitlePrivate( ); - - QByteArray m_subtitle; // subtitle data - QString m_language; // language - double m_frameRate; // frame rate - double m_duration; // duration - QDateTime m_releaseYr; // release year - QString m_subtitleId; // subtitle id - -}; - -#endif /* SMFSUBTITLE_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smftrackinfo.h --- a/example/clientapi/smf/inc/common/smfmusic/smftrackinfo.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,206 +0,0 @@ -/** - * 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: - * The track info class represents information about a music track - * - */ - -#ifndef SMFTRACKINFO_H_ -#define SMFTRACKINFO_H_ - -#include -#include -#include -#include -#include -#include -#include -#include - -class SmfTrackInfoPrivate; - -/** - * @ingroup smf_common_group - * The track info class represents information about a music track - */ -class SMFCLIENT_EXPORT SmfTrackInfo : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - * (parent should be of type SmfMusicServicePlugin) - */ - SmfTrackInfo(QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfTrackInfo( const SmfTrackInfo &aOther ); - - /** - * Destructor - */ - ~SmfTrackInfo( ); - - /** - * Method to get the id of the track - * @return The ID value - */ - QString id( ) const; - - /** - * Method to get the track title - * @return The title of the track - */ - QString title( ) const; - - /** - * Method to get the track album - * @return The album of the track - */ - SmfAlbum album( ) const; - - /** - * Method to get the track's artists - * @return The artists of the track - */ - SmfArtists artists( ) const; - - /** - * Method to get the genre of the track - * @return The genre of the track - */ - QString genre( ) const; - - /** - * Method to get the track's tag - * @return The tag of the track - */ - QStringList tags( ) const; - - /** - * Method to get the release year of the track - * @return The release year of the track - */ - QDateTime year( ) const; - - /** - * Method to get the track's rating - * @return The rating of the track - */ - SmfMusicRating rating( ) const; - - /** - * Method to get the comments on the track - * @return The comments on the track - */ - QStringList comments( ) const; - - /** - * Method to get the track's duration - * @return The duration of the track - */ - QTime duration( ) const; - - /** - * Method to set the track title - * @param aTitle The new title of the track - */ - void setTitle( const QString &aTitle ); - - /** - * Method to set the track album - * @param aAlbum The new album of the track - */ - void setAlbum( const SmfAlbum &aAlbum ); - - /** - * Method to set the track's artists - * @param aArtists The new artists of the track - */ - void setArtists( const SmfArtists &aArtists ); - - /** - * Method to set the genre of the track - * @param aGenre The new genre of the track - */ - void setGenre( const QString &aGenre ); - - /** - * Method to set the track's tag - * @param aTag The tag of the track - */ - void setTags( const QStringList &aTag ); - - /** - * Method to set the release year of the track - * @param aYear The new release year of the track - */ - void setYear( const QDateTime &aYear ); - - /** - * Method to set the track's rating - * @param aRating The new rating of the track - */ - void setRating( const SmfMusicRating &aRating ); - - /** - * Method to set the comments on the track - * @param aComment The new comment of the track - */ - void setComment( const QString &aComment ); - - /** - * Method to set the duration of the track - * @param aDuration The new duration of the track - */ - void setDuration( const QTime &aDuration ); - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfTrackInfo &aTrackInfo ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfTrackInfo &aTrackInfo ); - - }; - - -/** - * Method for Externalization. Writes the SmfTrackInfo object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aTrackInfo The SmfTrackInfo object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfTrackInfo &aTrackInfo ); - -/** - * Method for Internalization. Reads a SmfTrackInfo object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aTrackInfo The SmfTrackInfo object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfTrackInfo &aTrackInfo); - -#endif /* SMFTRACKINFO_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfmusic/smftrackinfo_p.h --- a/example/clientapi/smf/inc/common/smfmusic/smftrackinfo_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfTrackInfo class - * - */ - -#ifndef SMFTRACKINFO_P_H_ -#define SMFTRACKINFO_P_H_ - -#include -#include -#include -#include - -class SmfTrackInfoPrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfTrackInfoPrivate( int aMaxRating, int aMinRating ) : m_rating(aMaxRating, aMinRating) - { - m_trackId.clear(); - m_title.clear(); - m_albumTitle.clear(); - m_artistName.clear(); - m_genre.clear(); - m_tag.clear(); - m_comment.clear(); - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfTrackInfoPrivate( const SmfTrackInfoPrivate &aOther ) : - QSharedData ( aOther ), - m_trackId ( aOther.m_trackId ), - m_title ( aOther.m_title ), - m_albumTitle ( aOther.m_albumTitle ), - m_artistName ( aOther.m_artistName ), - m_genre ( aOther.m_genre ), - m_tag ( aOther.m_tag ), - m_year ( aOther.m_year ), - m_rating ( aOther.m_rating ), - m_comment ( aOther.m_comment ), - m_duration ( aOther.m_duration ) { } - - /** - * Destructor - */ - ~SmfTrackInfoPrivate( ); - - QString m_trackId; // track id - QString m_title; // title - QString m_albumTitle; // album name - QString m_artistName; // artist name - QString m_genre; // genre information - QStringList m_tag; // tag information - QDateTime m_year; // release year - SmfMusicRating m_rating;// rating - QStringList m_comment; // comments - QTime m_duration; // duration - -}; - -#endif /* SMFTRACKINFO_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfpictures/smfpicture.h --- a/example/clientapi/smf/inc/common/smfpictures/smfpicture.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,210 +0,0 @@ -/** - * 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: - * The picture class represents an instance of a picture - * - */ - -#ifndef SMFPICTURE_H_ -#define SMFPICTURE_H_ - -#include -#include -#include -#include -#include -#include - -class SmfPicturePrivate; - -/** - * SmfPictureVisibility enumeration - */ -enum SmfPictureVisibility - { - SMFVisibilityFriend, - SMFVisibilityPersonal, - SMFVisibilityFamily, - SMFVisibilityGroup, - SMFVisibilityPublic - }; - -/** - * @ingroup smf_common_group - * The picture class represents an instance of a picture - */ -class SMFCLIENT_EXPORT SmfPicture : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfPicture( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfPicture( const SmfPicture &aOther ); - - /** - * CConstructs SmfPicture from QImage - * @param aOther The QImage - */ - SmfPicture( const QImage &image ); - - /** - * Destructor - */ - ~SmfPicture( ); - - /** - * Method to get the id of the picture - * @return The ID value - */ - QString id( ) const; - - /** - * Method to get a picture owner - * @return The owner of the picture - */ - QString owner( ) const; - - /** - * Method to get a picture title - * @return The title of the picture - */ - QString title( ) const; - - /** - * Method to get a picture description - * @return The description of the picture - */ - QString description( ) const; - - /** - * Method to get a visibility of a picture for public - * @return The visibility mode of this picture for others - */ - SmfPictureVisibility visibility( ) const; - - /** - * Method to get the date of posting the picture - * @return The posted date of the picture - */ - QDateTime postedDate( ) const; - - /** - * Method to get the comments for the picture - * @return The comments for the picture - */ - QStringList comments( ) const; - - /** - * Method to get the tags for the picture - * @return The tags for the picture - */ - QStringList tags( ) const; - - /** - * Method to get the url of the picture - * @return The url of the picture - */ - QUrl url( ) const; - - /** - * Method to get the picture data as QImage - * @return The picture as QImage - */ - QImage picture( ) const; - - /** - * Method to set a picture owner - * @param aOwner The owner of the picture - */ - void setOwner( const QString &aOwner ); - - /** - * Method to set a picture title - * @param aTitle The title of the picture - */ - void setTitle( const QString &aTitle ); - - /** - * Method to set a picture description - * @param aDescription The description of the picture - */ - void setDescription( const QString &aDescription ); - - /** - * Method to set a visibility of a picture for public - * @param aVisibility aVisibility The visibility mode of - * this picture for others - */ - void setVisibility( const SmfPictureVisibility &aVisibility ); - - /** - * Method to add comment on the picture - * @param aComment The comment for the picture - */ - void addComment( const QString &aComment ); - - /** - * Method to add tags for the picture - * @param aTag The tag for the picture - */ - void addTags( const QStringList &aTags ); - - /** - * Method to set the picture data as QImage - * @param aData The picture as QImage - */ - void setPicture( const QImage &aData ); - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfPicture &aPic ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfPicture &aPic ); - - }; - - -/** - * Method for Externalization. Writes the SmfPicture object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aPic The SmfPicture object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfPicture &aPic ); - -/** - * Method for Internalization. Reads a SmfPicture object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aPic The SmfPicture object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfPicture &aPic); - -#endif /* SMFPICTURE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfpictures/smfpicture_p.h --- a/example/clientapi/smf/inc/common/smfpictures/smfpicture_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfPicture class - * - */ - -#ifndef SMFPICTURE_P_H_ -#define SMFPICTURE_P_H_ - - -#include -#include -#include -#include -#include - -class SmfPicturePrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfPicturePrivate( ) { - m_photoId.clear(); - m_owner.clear(); - m_title.clear(); - m_description.clear(); - m_comments.clear(); - m_tags.clear(); - m_url.clear(); - m_caption.clear(); - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfPicturePrivate( const SmfPicturePrivate &aOther ) : - QSharedData ( aOther ), - m_photoId ( aOther.m_photoId ), - m_owner ( aOther.m_owner ), - m_title ( aOther.m_title ), - m_description ( aOther.m_description ), - m_picVisibility ( aOther.m_picVisibility ), - m_postedOn ( aOther.m_postedOn ), - m_comments ( aOther.m_comments ), - m_tags ( aOther.m_tags ), - m_url ( aOther.m_url ), - m_picture ( aOther.m_picture ), - m_caption ( aOther.m_caption ) { } - - /** - * Destructor - */ - ~SmfPicturePrivate( ); - - QString m_photoId; // unique ID of the picture, service provider specific - QString m_owner; // owner of the picture - QString m_title; // picture title - QString m_description;// description - SmfPictureVisibility m_picVisibility; // picture visibility - QDateTime m_postedOn;// date posted - QStringList m_comments;// comments - QStringList m_tags; // tags - QUrl m_url; // url - QImage m_picture; // picture data as bytearray - QString m_caption; // caption - -}; - -#endif /* SMFPICTURE_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfplace/smfplace.h --- a/example/clientapi/smf/inc/common/smfplace/smfplace.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,204 +0,0 @@ -/** - * 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: - * The SmfPlace class represents a place and its related information - * Note: This class has dependencies on QtMobility project - * - */ - -#ifndef SMFPLACE_H_ -#define SMFPLACE_H_ - -#include -#include // Qt mobility class -#include -#include -#include - -using namespace QtMobility; // Qt mobility - namespace - -typedef enum -{ - SearchByStreet = 0x00, - SearchByLocality, - SearchByPostOffice, - SearchByTown, - SearchByRegion, - SearchByState, - SearchByCountry -}SmfLocationSearchBoundary; - -class SmfPlacePrivate; - -/** - * @ingroup smf_common_group - * The SmfPlace class represents a place and its related information. - * - * Note: This class has dependencies on QtMobility project - */ -class SMFCLIENT_EXPORT SmfPlace : public QObject - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfPlace( QObject *aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfPlace( const SmfPlace &aOther ); - - /** - * Overloaded = operator - * @param aOther The reference object - */ - SmfPlace operator=( const SmfPlace &aOther ); - - /** - * Destructor - */ - ~SmfPlace( ); - - /** - * Method to get the place name - * @return The place name - */ - QString name( ) const; - - /** - * Method to get the city of place - * @return The city of the place - */ - QString city( ) const; - - /** - * Method to get the street information of place - * @return The street information of the place - */ - QString street( ) const; - - /** - * Method to get the zip code of place - * @return The zip code of place - */ - QString zipCode( ) const; - - /** - * Method to get the country of place - * @return The country of place - */ - QString country( ) const; - - /** - * Method to get the Geo Position information (like information gathered - * on a global position, direction and velocity at a particular point - * in time) of the place. - * @return The Geo Position information of place - */ - QtMobility::QGeoPositionInfo geoPositionInfo( ) const; - - /** - * Method to get the url indicating the place - * @return The url indicating the place - */ - QUrl url( ) const; - - /** - * Method to get the id of the place - * @return The ID value - */ - QString id( ) const; - - /** - * Method to set the place name - * @param aPlace The new place name - */ - void setName( const QString& aPlace ); - - /** - * Method to set the city of place - * @param aCity The new city of the place - */ - void setCity( const QString& aCity ); - - /** - * Method to set the street information of place - * @param aStreet The new street information of the place - */ - void setStreet( const QString& aStreet ); - - /** - * Method to set the zip code of place - * @param aZipCode The new zip code of place - */ - void setZipCode( const QString& aZipCode ); - - /** - * Method to set the country of place - * @param aCountry The new country of place - */ - void setCountry( const QString& aCountry ); - - /** - * Method to set the Geo Postion information (like information gathered - * on a global position, direction and velocity at a particular point - * in time) of the place. - * @param aGeoPosInfo The new Geo Position information of place - */ - void setGeoPositionInfo( const QtMobility::QGeoPositionInfo& aGeoPosInfo ); - - /** - * Method to set the url indicating the place - * @param aUrl The new url indicating the place - */ - void setUrl( const QUrl& aUrl ); - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfPlace &aPlace ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfPlace &aPlace ); - - }; - - -/** - * Method for Externalization. Writes the SmfPlace object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aPlace The SmfPlace object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfPlace &aPlace ); - -/** - * Method for Internalization. Reads a SmfPlace object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aPlace The SmfPlace object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfPlace &aPlace); - -#endif /* SMFPLACE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/common/smfplace/smfplace_p.h --- a/example/clientapi/smf/inc/common/smfplace/smfplace_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfPlace class - * - */ - -#ifndef SMFPLACE_P_H_ -#define SMFPLACE_P_H_ - -#include -#include // Qt mobility class -#include - -using namespace QtMobility; // Qt mobility - namespace - -class SmfPlacePrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfPlacePrivate( ) { - m_name.clear(); - m_city.clear(); - m_street.clear(); - m_zipcode.clear(); - m_country.clear(); - m_url.clear(); - m_placeId.clear(); } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfPlacePrivate( const SmfPlacePrivate &aOther ) : - QSharedData ( aOther ), - m_name ( aOther.m_name ), - m_city ( aOther.m_city ), - m_street ( aOther.m_street ), - m_zipcode ( aOther.m_zipcode ), - m_country ( aOther.m_country ), - m_geo ( aOther.m_geo ), - m_url ( aOther.m_url ), - m_placeId ( aOther.m_placeId ) { } - - /** - * Destructor - */ - ~SmfPlacePrivate( ); - - QString m_name; // place name - QString m_city; // city of place - QString m_street; // street of place - QString m_zipcode; // zip code of place - QString m_country; // country of place - QtMobility::QGeoPositionInfo m_geo; // place geo position information - QUrl m_url; // url indicating the place - QString m_placeId; // place id - -}; - -#endif /* SMFPLACE_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfclient/smfclient.h --- a/example/clientapi/smf/inc/smfclient/smfclient.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/** - * 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: - * The SmfEvent class represents an event - * - */ - -#ifndef SMFCLIENT_H -#define SMFCLIENT_H - -#include -#include -#include - -#include "../common/SmfClientGlobal.h" - -class SmfProvider; - -/** - * @ingroup smf_client_group - * Interface for a base service provider. Other service provider classes contains - * implementation of this base class so that each has access to service provider - * information. - * All of the functionality described here should be implemented by a service - * specific plug-in object. - */ -class SMFCLIENT_EXPORT SmfClient -{ - /*Q_OBJECT*/ - -public: - - /** - * @param name of the service - * @return service provider list - */ - static QList* GetServices(const QString& serviceName); - static QList* GetServices(const QString& serviceName, const QString& providerName); - static QList* GetServices(const QString& serviceName, const SmfProvider& provider); -}; - - -#endif // SMFCLIENT_H diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfclient/smfcontactfetcher.h --- a/example/clientapi/smf/inc/smfclient/smfcontactfetcher.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,212 +0,0 @@ -/** - * 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: - * The SmfEvent class represents an event - * - */ - -#ifndef SMFCONTACTHETCHER_H -#define SMFCONTACTHETCHER_H - -#include -#include "smfglobal.h" -#include "smfprovider.h" -#include "smfcontact.h" -#include "smfplace.h" -class SmfProvider; //base-class for service provider -class SmfContact; //class for Contact in a social network -class SmfGroup; //class for a group in social network -typedef QList SmfContactList; - -//List of SmfGroup -typedef QList SmfGroupList; -/** - * @ingroup smf_client_group - * Interface to search for contacts/connections from a service provider. This class - * provides basic functionality to allow applications to obtain list of - * contacts or friends in a social networking service. - * Note that to get the base provider info like service name, icon, description etc - * use getProvider(). - * See also: - * SmfProvider::serviceName(), SmfProvider::serviceIcon(), SmfProvider::description() - * - * All of the functionality described here should be implemented by a service - * specific plug-in object. - * Interface name:- org.symbian.smf.client.contact.fetcher - */ -class SMFCLIENT_EXPORT SmfContactFetcher : public QObject -{ - Q_OBJECT - -public: - - /** - * Constructs the SmfContactFetcher. - * @param parent base provider info - * @param contact Used for searching friends of the given contact - * Seeing as this is a plug-in implementation, these will realistically - * be generated by SMF factory of some kind - */ - SmfContactFetcher(SmfProvider* baseProvider); - SmfContactFetcher(SmfProvider* baseProvider, SmfContact* contact); - ~SmfContactFetcher(); - -public: - /** - * Get the friend listing asynchronously. The friendsListAvailable() signal - * is emitted with SmfContactList once data is arrived. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - bool friends(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); - - /** - * Get the list of followers asynchronously. The followersListAvailable() signal - * is emitted with SmfContactList once data is arrived. Please note that some - * service may not support followers/fans - FALSE is returned if not supported. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - bool followers(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); // list of contact objects - - /** - * Searches for a contact The searchContactFinished() signal - * is emitted with SmfContactList once data is arrived. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void search(SmfContact* contact,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // list of contact objects - - /** - * Searches for a contacts (friends) who are near the user. - * Signal searchNearFinished() is emitted with SmfContactList once data is arrived. - * Proximity defines accuracy level - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - bool searchNear(SmfPlace* location,SmfLocationSearchBoundary proximity,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; - - - /** - * Get the list of groups. The groupListAvailable() signal - * is emitted with SmfGroupList once data is arrived. False might be returned - * if this service doesn't support any mode of grouping (very rare). - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - bool groups(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // list of group objects - - /** - * Searches for Smf Contacts in an Smf group. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - * @param group The group to be searcged in - */ - bool searchInGroup(SmfGroup group,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // list of contact objects - - - //APIs to get/set base provider info (SmfProvider) - - /** - * Gets the base provider info - */ - SmfProvider* getProvider() ; - -public slots: - -signals: - - /** - * This signal is emitted when a request to get friends is completed. - * Note if number of friends is large, then it can download the list page by page. - * In that case this signal is emitted multiple times. - * @param list list of friends - * @param error error string - * @param resultPage Page number info - * @see friends() - */ - void friendsListAvailable(SmfContactList* list, QString error, SmfResultPage resultPage); - - /** - * This signal is emitted when a request to get followers is completed - * Note if number of followers is large, then it can download the list page by page - * In that case this signal is emitted multiple times. - * @param list list of followers - * @param error error string - * @param resultPage Page number info - * @see followers() - */ - void followersListAvailable(SmfContactList* list, QString error, SmfResultPage resultPage); - - /** - * This signal is emitted when a request to get groups is completed - * Note if number of groups is large, then it can download the list page by page - * In that case this signal is emitted multiple times. - * @param list list of groups - * @param error error string - * @param resultPage Page number info - * @see groups() - */ - void groupListAvailable(SmfGroupList* list, QString error, SmfResultPage resultPage); - - /** - * Emitted when search for a contact is finished. - * Note if number of contacts in the search is large, then it can download the list page by page - * In that case this signal is emitted multiple times. - * @param list List of filtered contacts - * @param resultPage Page number info - * @see search() - */ - void searchContactFinished(SmfContactList* list,QString error, SmfResultPage resultPage); - - - /** - * Emitted when search for contacts who are near a geographic location, is finished. - * Note if number of contacts in the search is large, then it can download the list page by page - * In that case this signal is emitted multiple times. - * @param list List of filtered contacts - * @param resultPage Page number info - * @see search() - */ - void searchNearFinished(SmfContactList* list,QString error, SmfResultPage resultPage); - - /** - * Emitted when search for a contact in a group is finished - * Note if number of contacts in the search is large, then it can download the list page by page - * In that case this signal is emitted multiple times. - * @param list list of filtered contacts - * @param resultPage Page number info - * @see searchInGroup() - */ - void searchInGroupFinished(SmfContactList* list,QString error, SmfResultPage resultPage); - -private: - SmfProvider* m_baseProvider; -}; - -SMF_SERVICE_NAME(SmfContactFetcher, "org.symbian.smf.client.contact.fetcher\0.2") -#endif // SMFCONTACTHETCHER_H diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfclient/smfgallery.h --- a/example/clientapi/smf/inc/smfclient/smfgallery.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/** - * 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: - * The SmfEvent class represents an event - * - */ - -#ifndef SMFGALLERY_H -#define SMFGALLERY_H - -#include "smfglobal.h" -#include "smfprovider.h" -#include "../common/SmfClientGlobal.h" -class SmfProvider; -class SmfComment; //user id, string, and url -class SmfPicture; - - -#include -#include -#include -//List of SmfPicture -typedef QList SmfPictureList; -/** - * @ingroup smf_client_group - * Interface to a remote gallery service. This class - * provides some basic gallery functionality to allow applications - * to interact with a picture gallery in a social network. - * - * Note that branding information for the particular service implementation - * is available from getProvider() API. See also: - * SmfProvider::serviceName(), SmfProvider::serviceIcon() - * - * All of the functionality described here should be implemented by a service - * specific plug-in object. - * Interface name for SmfGallery org.symbian.smf.client.gallery - */ -class SMFCLIENT_EXPORT SmfGallery : public QObject -{ - Q_OBJECT - -public: - /** - * Constructs SmfGallery. - * @param baseProvider The base provider info - * Seeing as this is a plug-in implementation, these will realistically - be generated by SMF factory of some kind - */ - - SmfGallery(SmfProvider* baseprovider = 0); - ~SmfGallery(); - -public: - /** - * Get the picture listing asynchronously. - * The picturesAvailable() signal is emitted with SmfPictureList once the pictures have arrived. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void pictures(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); - - /** - * Returns a user title/caption for the picture - */ - QString description(SmfPicture& picture); // A user title or caption, maybe? - - //APIs to get/set base provider info (SmfProvider) - - /** - * Gets the base provider info - */ - SmfProvider* getProvider() ; - -public slots: - /** - * Upload an image.Implemented as slot to connect to UI controls more easily - * uploadFinished() signal is emitted with the success value of the upload - * @param image the image to be uploaded - */ - void upload(SmfPicture* image) ; - - /** - * Upload an list image.Implemented as slot to connect to UI controls more easily - * uploadFinished() signal is emitted with the success value of the upload - * @param images the list image to be uploaded - */ - void upload(SmfPictureList* images) ; - - /** - * Posts a comment for an image. uploadFinished() signal is emitted - * with success of the post once comment is posted. - * @param image Image to comment on - * @param comment Comment to post - */ - void postComment(SmfPicture image, SmfComment comment) ; - -signals: - /* - * Notification on arrival of list of SmfPicture as a result of request. - * Note if number of friends is large, then it can download the list page by page. - * In that case this signal is emitted multiple times. - * through pictures(). - * @param pics Picture list - * @param error Error string - * @param resultPage Page number info - */ - void picturesAvailable(SmfPictureList* pics, QString error, SmfResultPage resultPage); - - /** - * Notification of the success of the uploading of image/comment - * @param error The upload success result of each individual pictures - */ - void uploadFinished(QList error); -private: - SmfProvider* m_baseProvider; -}; - -SMF_SERVICE_NAME(SmfGallery, "org.symbian.smf.client.gallery\0.2") - -#endif // SMFGALLERY_H - diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfclient/smfmusic.h --- a/example/clientapi/smf/inc/smfclient/smfmusic.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,526 +0,0 @@ -/** - * 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: - * The SmfEvent class represents an event - * - */ - -#ifndef SMFMUSIC_H -#define SMMUSIC_H - -#include - -#include -#include - -#include "smfglobal.h" -#include "smfprovider.h" -#include "smfcontact.h" -#include "smfevent.h" - -class SmfProvider; //basic Smf service Provider info -class SmfContact; // Smf contact -class SmfMusicRating;//rating value from 0..31 - services would map accordingly -class SmfMusicProfile; //user profile containing music usage and interest info, extends SmfContact -class SmfTrackInfo; //id, title, album, artist, genre, tag, director,release year, rating, comment info -class SmfMusicFingerPrint; //generation is not in scope of smf -class SmfVenue; -class SmfEvent; -class SmfPlaylist; -class SmfLyricsService; -class SmfLyrics; -class SmfSubtitle; -class SmfSubtitleSearchFilter; - -typedef QList SmfMusicProfileList; -typedef QList SmfTrackInfoList; -typedef QList SmfEventsList; -typedef QList SmfProviderList; -typedef QList SmfPlaylistList; -typedef QList SmfVenueList; -typedef QList SmfLyricsList; -typedef QList SmfSubtitleList; -/** - * @ingroup smf_client_group - * Basic music service ("org.symbian.smf.client.music.service") - */ -class SMFCLIENT_EXPORT SmfMusicService : public QObject -{ - Q_OBJECT - -public: - /** - * Constructs SmfMusicService. - * @param baseProvider The base provider info - * Seeing as this is a plug-in implementation, these will realistically - * be generated by SMF factory of some kind - */ - SmfMusicService(SmfProvider* baseProvider = 0); - ~SmfMusicService(); - -public: - - /** - * Gets self profile information asynchronously. - * userInfoAvailable() signal is emitted with SmfMusicProfile when the info is arrived - */ - void userinfo() ; - - /** - * Asynchronously searches information about other service users for a particular venue - * searchInfoAvailable() signal is emitted with SmfMusicProfileList when the info is arrived. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void searchUser(SmfVenue venue,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; - - /** - * Gets the base provider info - */ - SmfProvider* getProvider() ; - - -signals: - /** - * Notification on arrival of the self profile as result of userinfo(). - * @param profile The self profile - */ - void userInfoAvailable(SmfMusicProfile* profile, QString error); - - void searchInfoAvailable(SmfMusicProfileList& profileList, QString error,SmfResultPage resultPage); -private: - SmfProvider* m_baseProvider; -}; -SMF_SERVICE_NAME(SmfMusicService, "org.symbian.smf.client.music.service\0.2") - - -/** -* Provides service ("org.symbian.smf.client.music.search") for music search -*/ -class SMFCLIENT_EXPORT SmfMusicSearch : public QObject -{ - Q_OBJECT - -public: - /** - * Constructs SmfMusicSearch with base provider as arguement. - * Seeing as this is a plug-in implementation, these will realistically - * be generated by SMF factory of some kind - */ - - SmfMusicSearch(SmfProvider* baseProvider = 0); - ~SmfMusicSearch(); - -public: - // Get the track listing - might be made asynchrnous later - - /** - * Searches for music recommendations similar to a particulartrack asynchronously. - * The signal trackSearchAvailable() is emitted with SmfTrackInfoList - * once its arrived. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param track The track for which similar recommendations need to be fetched. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void recommendations(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // basic list of track objects - - /** - * Searches for tracks similar to a given track asynchronously. - * The signal trackSearchAvailable() is emitted with SmfTrackInfoList - * once its arrived. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param track The search criteria, similar tracks are searched - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void tracks(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // basic list of track objects - - /** - * Searches for a track having similar finger print asynchronously. - * The signal trackSearchAvailable() is emitted with SmfTrackInfoList - * once its arrived. - * @param signature The search criteria,signature to be searched for - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void trackInfo(SmfMusicFingerPrint signature,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // search by fingerprint object - - /** - * Search information about where to buy this song from asynchronously. - * The signal storeSearchAvailable() is emitted with SmfProviderList once its arrived. - * @param track The search criteria for stores - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void stores(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; - - //APIs to get/set base provider info (SmfProvider) - - /** - * Gets the base provider info - */ - SmfProvider* getProvider() ; - - -public slots: - - /** - * Posts currently playing track. - * Success can be checked by checking the signal postFinished() - * @param track Track to post - */ - void postCurrentPlaying(SmfTrackInfo track) ; - //int postRating(SmfTrackInfo track, SmfMusicRating rate) ; - //int postComments(SmfTrackInfo track, SmfComment comment) ; - -signals: - /** - * Emitted when the search result for a track is available. - * Note if number of tacks in the search is large, then it can download the list page by page. - * In that case this signal is emitted multiple times. - * @param resultPage Page number info - */ - void trackSearchAvailable(SmfTrackInfoList* result, QString error,SmfResultPage resultPage); - - /** - * Emitted when the search result for a store is available. - * Note if number of tacks in the search is large, then it can download the list page by page. - * In that case this signal is emitted multiple times. - * @param resultPage Page number info - */ - void storeSearchAvailable(SmfProviderList* result, QString error, SmfResultPage resultPage); -private: - SmfProvider* m_baseProvider; -}; -SMF_SERVICE_NAME(SmfMusicSearch, "org.symbian.smf.client.music.search\0.2") - - -/** - * Remote playlist - */ -class SMFCLIENT_EXPORT SmfPlaylist : public QObject - { - Q_OBJECT - -public: - SmfPlaylist(); - ~SmfPlaylist(); - - /** - * Gets tracks in the playlist - */ - SmfTrackInfoList* getTrackList(); - - /** - * Gets playlist title - */ - QString getPlayListTitle(); - - /** - * Gets the creation date - */ - QDateTime getCreationDate(); - - /** - * Sets tracks in the playlist - */ - void setTrackList(SmfTrackInfoList* trackList); - - /** - * Sets playlist title - */ - void setPlayListTitle(QString title); - - /** - * Sets creation date - */ - void setCreationDate(QDateTime time); - -private: - SmfTrackInfoList* m_trackList; - QString m_title; - QDateTime m_creationDate; - }; - - -/** - * provides service ("org.symbian.smf.client.music.playlist") - * - * Interface to a remote playlist service. This class - * provides some basic functionality to allow applications - * to interact with playlists in some music related service provider (e.g. last.fm). - * - * Note that branding information for the particular service implementation - * is available from getProvider() API. See also: - * SmfProvider::serviceName(), SmfProvider::serviceIcon() - * - * All of the functionality described here should be implemented by a service - * specific plug-in object. - * - */ -class SMFCLIENT_EXPORT SmfPlaylistService : public QObject -{ - Q_OBJECT - -public: - /** - * Constructs SmfPlaylistService with base provider info - * Seeing as this is a plug-in implementation, these will realistically - * be generated by SMF factory of some kind - */ - SmfPlaylistService(SmfProvider* baseProvider = 0); - ~SmfPlaylistService(); - -public: - - /** - * Gets the list playlists for the logged-in user asynchronously. - * The signal playlistsListAvailable() signal is emitted with - * SmfPlaylistList once its arrived . - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void playlists(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // basic list of playlist objects - - /** - * Gets the list playlists for the given user asynchronously. - * The signal playlistsListAvailable() signal is emitted with - * SmfPlaylistList once its arrived. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param user User for which to get the playlists - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void playlistsOf(SmfMusicProfile* user,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; - - //APIs to get/set base provider info (SmfProvider) - - /** - * Gets the base provider info - */ - SmfProvider* getProvider() ; - - -public slots: - - /** - * Upload currently playing track to a playlist. Signal - * playlistUpdated() can be checked for success value - * @param plst The playlist to be added in - * @param tracks The list of tracks to uploaded - */ - int addToPlaylist(SmfPlaylist plst, SmfTrackInfoList* tracks) ; - - /** - * Upload currently playing playlist . Signal - * playlistUpdated() can be checked for success value - * @param plst The playlist to be uploaded - */ - int postCurrentPlayingPlaylist(SmfPlaylist plst) ; - - -signals: - /** - * Notification of availability of list of playlists requested. - * Note if number of list is large, then it can download the list page by page. - * In that case this signal is emitted multiple times. - * @param resultPage Page number info - */ - void playlistsListAvailable(SmfPlaylistList*, QString error, SmfResultPage resultPage); - /** - * Signals remote updation of playlist with success value - */ - int playlistUpdated(bool success) ; -private: - SmfProvider* m_baseProvider; -}; -SMF_SERVICE_NAME(SmfPlaylistService, "org.symbian.smf.client.music.playlist\0.2") - - -/** -* provides service ("org.symbian.smf.client.music.events") -*/ -class SMFCLIENT_EXPORT SmfMusicEvents : public QObject -{ - Q_OBJECT - -public: - /** - * Constructs SmfMusicEvents with base provider info - * Seeing as this is a plug-in implementation, these will realistically - * be generated by SMF factory of some kind - */ - SmfMusicEvents(SmfProvider* baseProvider = 0); - ~SmfMusicEvents(); - -public: - - /** - * Gets list of events in a particular location asynchronously. - * eventsAvailable() signal is emitted with SmfEventsList once its arrived. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void events(QtMobility::QContactGeolocation location,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; - - /** - * Gets list of venues of a particular location asynchronously. - * venuesAvailable() signal is emitted with SmfVenueList once its arrived. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void venues(QtMobility::QContactGeolocation location,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // basic list of venue objects - - /** - * Gets list of events in a particular venue asynchronously. - * eventsAvailable() signal is emitted with SmfEventsList once its arrived. - * When the list is big user can specify the page number and per page item data. - * If not supplied by the user default values are used. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void events(SmfVenue venue,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // basic list of events objects - - - //APIs to get/set base provider info (SmfProvider) - - /** - * Gets the base provider info - */ - SmfProvider* getProvider() ; - - -public slots: - - /** - * Updates events. Might not be supported by all service provider. - * eventsUpdated() signal can be checked for success value. - * @param SmfEventsList List of events to be posted - */ - void postEvents(SmfEventsList events); - -signals: - - /** - * Notification of the success of request to post an event - */ - void eventsUpdated(bool success); - - /** - * Notification on arrival of event lists - * Note if number of list is large, then it can download the list page by page. - * In that case this signal is emitted multiple times. - * @param resultPage Page number info - */ - void eventsAvailable(SmfEventsList* list, QString error, SmfResultPage resultPage); - - /** - * Notification on arrival of venues lists - * Note if number of list is large, then it can download the list page by page. - * In that case this signal is emitted multiple times. - * @param resultPage Page number info - */ - void venuesAvailable(SmfVenueList* list, QString error, SmfResultPage resultPage); -private: - SmfProvider* m_baseProvider; -}; -SMF_SERVICE_NAME(SmfMusicEvents, "org.symbian.smf.client.music.events\0.2") - - -/** -* provides service ("org.symbian.smf.client.music.lyrics") -*/ -class SMFCLIENT_EXPORT SmfLyricsService : public QObject -{ - Q_OBJECT - -public: - /** - * Constructs SmfLyricsService with base provider info. - * Seeing as this is a plug-in implementation, these will realistically - * be generated by SMF factory of some kind - */ - - SmfLyricsService(SmfProvider* baseProvider = 0); - ~SmfLyricsService(); - -public: - - /** - * Get the lyrics lists asynchrnously, it fetches texts without time info. - * lyricsAvailable() notification comes SmfLyricsList with when the data is available - * @param track Track for which lyrics needs to be fetched. - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void lyrics(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; - - /** - * Get the lyrics lists asynchrnously, it fetches texts with time info. - * Subtitle search filter can be applied - * subtitleAvailable() notification comes SmfSubtitleList with when the data is available - * @param track Track for which subtitle needs to be fetched. - * @param filter Subtitle search filter - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - */ - void subtitles(SmfTrackInfo track, SmfSubtitleSearchFilter filter,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // texts with time information - //APIs to get/set base provider info (SmfProvider) - - /** - * Gets the base provider info - */ - SmfProvider* getProvider() ; - - -public slots: - - -signals: - - /** - * Notification on arrival of lyrics - * Note if the list is large, then it can download the list page by page. - * In that case this signal is emitted multiple times. - * @param resultPage Page number info - */ - void lyricsAvailable(SmfLyricsList* list, QString error, SmfResultPage resultPage); - - /** - * Notification on arrival of subtitle based on filter. - * Note if the list is large, then it can download the list page by page. - * In that case this signal is emitted multiple times. - * @param resultPage Page number info - */ - void subtitleAvailable(SmfSubtitleList* list, QString error, SmfResultPage resultPage); -private: - SmfProvider* m_baseProvider; -}; -SMF_SERVICE_NAME(SmfLyricsService, "org.symbian.smf.client.music.lyrics\0.2") - -#endif // SMFMUSIC_H - diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfclient/smfpostprovider.h --- a/example/clientapi/smf/inc/smfclient/smfpostprovider.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,201 +0,0 @@ -/** - * 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: - * The SmfEvent class represents an event - * - */ -#ifndef SMFPOSTPROVIDER_H -#define SMFPOSTPROVIDER_H - -#include -#include -#include -#include - -#include "smfglobal.h" -#include "smfprovider.h" -#include "smfcontact.h" -#include "smfplace.h" - -class SmfProvider; //base-class for service provider -class SmfContact; //class for Contact in a social network - - - -/** - * class for information (text, image and url) contained in post in social network - * This could be changed to contain html data - * - * For those service provider which supports only string format, @see supportedFormats() - */ -class SmfPost : public QTextDocument - { - Q_OBJECT - -public: - SmfPost ( QObject * parent = 0 ); - SmfPost ( const QString & text, QObject * parent = 0 ); - -private: - QString* id; - SmfProvider* provider; - }; - -/** - * Presence info of the user - */ -enum SmfAppearenceInfo - { - ENotSupported, - EOnline, - EOffline, - EBusy, - EDoNotDisturb, - EAppearOffline, - EOther - }; - -//Post lists -typedef QList SmfPostList; - -/** - * @ingroup smf_client_group - * Interface to post scrap/tweet like info. - * Note that branding information for the particular service implementation - * is available from getProvider() API. See also: - * SmfProvider::serviceName(), SmfProvider::serviceIcon(), SmfProvider::description() - * - * Interface name for SmfPostProvider is org.symbian.smf.client.contact.posts - */ -class SMFCLIENT_EXPORT SmfPostProvider : public QObject - { - Q_OBJECT - -public: - /** - * Constructs SmfPostProvider. - * @param baseProvider The base provider info - * Seeing as this is a plug-in implementation, these will realistically - * be generated by SMF factory of some kind - */ - SmfPostProvider(SmfProvider* baseProvider); - ~SmfPostProvider(); - - -public: - /** - * returns maximum no of chars (unicode) that service provider can post without truncation - * negative value means no limit - */ - qint32 maxCharsInPost() const; - /** - * returns maximum no of items that can be returned in a single query to getPosts - * negative value means feature not supported. - */ - qint32 maxItems() const; - - /** - * returns all the formatting of posts that this service provider supports. - * May return 0 items to mean only QString is supported. - */ - QVector supportedFormats () const; - - /** - * returns whether this SP supports Appearence @see SmfAppearenceInfo - */ - bool supportsAppearence () const; - -public slots: - /** - * Gets the posts asynchronously. The signal postsAvailable()with SmfPostList is emitted - * once the post lists are available - * @param user user's contact in this SP, omit for self contact - * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. - * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE - * @see postsAvailable() - */ - void posts(SmfContact* user = 0,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); - - /** - * Updates a post to own area, the success of the post can be checked with signal - * updatePostFinished() signal - * @param postData data to be posted - * @param location location data - */ - void post(SmfPost& postData,SmfPlace& location) ; - /** - * Updates the last post to own area with new data, the success of the post can be checked with signal - * updatePostFinished() signal - * @param postData edited/new data to be posted - * @param location location data - */ - void updatePost(SmfPost& postData); - - /** - * Updates a post to a particular Smf contact. the success of the post can be checked with signal - * updatePostFinished() signal. - * @param postData data to be posted - * @param contact contact to which the post is to be directed - * @param location location data - */ - void postDirected(SmfPost& postData,SmfContact& contact,SmfPlace* location=0); - - /** - * Posts appearance info of the user.e.g. appear offline, busy, do-not-disturb - * @param appearence user appearance - * @see SmfPresenceInfo - * @return False on Failure/Not supported - */ - bool postAppearence(SmfAppearenceInfo appearence); - /** - * Share /a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook) - * emits updatePostFinished() signal when done. - * @param postData data to be posted - * @param contact contact to which the post belonged - * @param bool whether user changed items within the post - */ - void sharePost(SmfPost& postData,SmfContact& contact,bool edited); - - //APIs to get/set base provider info (SmfProvider) - - /** - * Gets the base provider info - */ - SmfProvider* getProvider() const; - -signals: - - /** - * Emitted when a request to getPosts() is finished - * Note if number of posts is large, then it can download the list page by page - * In that case this signal is emitted multiple times. - * @param list list of posts - * @param error error string - * @param resultPage Page number info - */ - void postsAvailable(SmfPostList* list, QString error, SmfResultPage resultPage); - - /** - * Emitted when update post is finished. - * @param success the success of the update - */ - void postFinished(bool success); - - private: - SmfProvider* m_baseProvider; - }; - -SMF_SERVICE_NAME(SmfPostProvider, "org.symbian.smf.client.contact.posts\0.2") -#endif // SMFPOSTPROVIDER_H diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfclient/smfprovider.h --- a/example/clientapi/smf/inc/smfclient/smfprovider.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/** - * 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: - * The SmfEvent class represents an event - * - */ - -#ifndef SMFPROVIDER_H -#define SMFPROVIDER_H - -#include -#include -#include - -#include "../common/SmfClientGlobal.h" -/** - * @ingroup smf_client_group - * Interface for a base service provider. Other service provider classes contains - * implementation of this base class so that each has access to service provider - * information. - * All of the functionality described here should be implemented by a service - * specific plug-in object. - */ -class SMFCLIENT_EXPORT SmfProvider : public QObject -{ - Q_OBJECT - -public: - /** - * Seeing as this is a plug-in implementation, these will realistically be generated by SMF factory of some kind - */ - - SmfProvider(QObject* parent = 0); - ~SmfProvider(); - -public: - /** - * Localizable name of the service - * @return service name - */ - QString& serviceName() const; - - /** - * Logo of the service - * @return logo image of the service - */ - QImage& serviceIcon() const; - - /** - * Readable service description - * @return service description - */ - QString description() const; - - /* - * Website of the service - */ - QUrl serviceUrl() const; - - /** - * URL of the application providing this service - */ - QUrl applicationUrl() const; // - - /** - * service types - list of interfaces that this provider support - */ - QList serviceTypes() const; -}; -/** -* Externalization -*/ -QDataStream &operator<<(QDataStream &, const SmfProvider&); -/** - * Internalization - */ -QDataStream &operator>>(QDataStream &, SmfProvider&); - -#endif // SMFPROVIDER_H diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/base/smfpluginbase.h --- a/example/clientapi/smf/inc/smfplugins/base/smfpluginbase.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/** - * 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: - * The SmfPluginBase class is the base class for all plugins. - * - */ - -#ifndef SMFPLUGINBASE_H_ -#define SMFPLUGINBASE_H_ - -#include -#include -#include - -/** - * @ingroup smf_plugin_group - * The SmfPluginBase class is the base class for all plugins - */ -class SmfPluginBase : public QObject - { - Q_OBJECT - -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfPluginBase( QObject* aParent = 0 ); - - /** - * Destructor - */ - ~SmfPluginBase( ); - - /** - * Method to get the provider information - * @return Instance of SmfProviderBase - */ - virtual SmfProviderBase* getProviderInfo( ) = 0; - - /** - * Method to get the result for a network request. - * @param aTransportResult The result of transport operation - * @param aReply The QNetworkReply instance for the request - * @param aResult [out] An output parameter to the plugin manager.If the - * return value is SmfSendRequestAgain, QVariant will be of type - * SmfPluginRequestData. - * - * For SmfContactFetcherPlugin: If last operation was friends() or followers() - * or search() or searchInGroup() or searchNear(), aResult will be of type - * QList. If last operation was groups(), aResult will be of - * type QList - * For SmfPostProviderPlugin: If last operation was retrieve(), aResult will be - * of type QList. If last operation was post() or updatePost() or - * postDirected() or commentOnAPost() or postAppearence(), aResult will be - * of type bool - * For SmfLyricsServicePlugin: If last operation was lyrics(), aResult will - * be of type SmfLyrics. If last operation was subtitles(), aResult will - * be of type SmfSubtitle. - * For SmfMusicEventsPlugin: If last operation was events(), aResult will - * be of type QList. If last operation was venues(), aResult - * will be of type QList. If last operation was postEvents(), - * aResult will be of type bool - * For SmfMusicSearchPlugin: If last operation was recommendations() or - * tracks() or trackInfo(), aResult will be of type QList. - * If last operation was stores(), aResult will be of type - * QList. If last operation was postCurrentPlaying(), - * aResult will be of type bool. - * For SmfMusicServicePlugin: If last operation was userInfo(), aResult - * will be of type SmfMusicProfile. If last operation was searchUser(), - * aResult will be of type QList. - * For SmfPlaylistServicePlugin: If last operation was playlists() or - * playlistsOf(), aResult will be of type QList. If last - * operation was addToPlaylist() or postCurrentPlayingPlaylist(), - * aResult will be of type bool. - * For SmfGalleryPlugin: If last operation was pictures(), aResult will - * be of type QList. If last operation was description(), - * aResult will be of type QString. If last operation was upload() or - * postComment(), aResult will be of type bool. - * - * @param aRetType [out] SmfPluginRetType - * @param aPageResult [out] The SmfResultPage structure variable - */ - virtual SmfPluginError responseAvailable( - const SmfTransportResult aTransportResult, - QNetworkReply *aReply, - QVariant* aResult, - SmfPluginRetType aRetType, - SmfResultPage &aPageResult ) = 0; - - }; - - -#endif /* SMFPLUGINBASE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/base/smfproviderbase.h --- a/example/clientapi/smf/inc/smfplugins/base/smfproviderbase.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,170 +0,0 @@ -/** - * 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: - * The Provider Base class is the class that has to be contained as a member - * in all Plug-in Interfaces. - * - */ - -#ifndef SMFPROVIDERBASE_H_ -#define SMFPROVIDERBASE_H_ - -#include -#include -#include -#include -#include -#include - -class SmfProviderBasePrivate; - -/** - * @ingroup smf_plugin_group - * The Provider Base class is the class that has to be contained as a member - * in all Plug-in Interfaces. - * - * All of plug-ins should contain this class as a member and should also - * contain a public method to get instance of this class. - */ -class SmfProviderBase : public QObject - { - Q_OBJECT - -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfProviderBase( QObject* aParent = 0 ); - - /** - * Copy Constructor - * @param aOther The reference object - */ - SmfProviderBase( const SmfProviderBase &aOther ); - - /** - * Destructor - */ - ~SmfProviderBase( ); - - /** - * Method to get the Localisable name of the service. - * @return The Localisable name of the service. - */ - QString serviceName( ) const; - - /** - * Method to get the Logo of the service - * @return The Logo of the service - */ - QImage serviceIcon( ) const; - - /** - * Method to get the Readable service description - * @return The Readable service description - */ - QString description( ) const; - - /** - * Method to get the Website of the service - * @return The Website of the service - */ - QUrl serviceUrl( ) const; - - /** - * Method to get the URL of the Application providing this service - * @return The URL of the Application providing this service - */ - QUrl applicationUrl( ) const; - - /** - * Method to get the Icon of the application - * @return The Icon of the application - */ - QImage applicationIcon( ) const; - - /** - * Method to get the Plugin specific ID - * @return The Plugin specific ID - */ - quint32 pluginId( ) const; - - /** - * Method to get the ID of the authentication application - * for this service - * @param aProgram The authentication application name - * @param aArguments List of arguments required for authentication app - * @param aMode Strting mode for authentication application - * @return The ID of the authentication application - */ - quint32 authenticationApp( QString &aProgram, QStringList & aArguments, - QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const; - - /** - * Method to get the unique registration ID provided by the - * Smf for authorised plugins - * @return The unique registration ID/token provided by the Smf for - * authorised plugins - */ - QString smfRegistrationId( ) const; - - /** - * Method to get the data usage of each plugin - * @return The data usage structure - */ - SmfPluginDataUsage getDataUsage( ) const; - - /** - * Method to get the reference count for loading. - * The reference count increased with each load request and decreased - * with each unload request - * @return The reference count value for loading of the plugins - */ - uint getLoadRefCount( ) const; - -private: - QSharedDataPointer d; - - friend QDataStream &operator<<( QDataStream &aDataStream, - const SmfProviderBase &aProviderBase ); - - friend QDataStream &operator>>( QDataStream &aDataStream, - SmfProviderBase &aProviderBase ); - - }; - - -/** - * Method for Externalization. Writes the SmfProviderBase object to - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be written - * @param aProviderBase The SmfProviderBase object to be externalized - * @return reference to the written stream - */ -QDataStream &operator<<( QDataStream &aDataStream, - const SmfProviderBase &aProviderBase ); - -/** - * Method for Internalization. Reads a SmfProviderBase object from - * the stream and returns a reference to the stream. - * @param aDataStream Stream to be read - * @param aProviderBase The SmfProviderBase object to be internalized - * @return reference to the stream - */ -QDataStream &operator>>( QDataStream &aDataStream, - SmfProviderBase &aProviderBase); - -#endif /* SMFPROVIDERBASE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/base/smfproviderbase_p.h --- a/example/clientapi/smf/inc/smfplugins/base/smfproviderbase_p.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/** - * 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 class implemented for implicit sharing of SmfProviderBase class - * - */ - -#ifndef SMFPROVIDERBASE_P_H_ -#define SMFPROVIDERBASE_P_H_ - -#include -#include -#include -#include -#include - - -class SmfProviderBasePrivate : public QSharedData -{ -public: - /** - * Constructor - */ - SmfProviderBasePrivate( ) { - m_serviceName.clear(); - m_description.clear(); - m_serviceUrl.clear(); - m_applicationUrl.clear(); - m_pluginId = 0; - m_authenticationAppId = 0; - m_registrationId.clear(); - m_loadRefCount = 0; - } - - /** - * Copy Consturctor - * @param aOther The reference object to be copy constructed - */ - SmfProviderBasePrivate( const SmfProviderBasePrivate &aOther ) : - QSharedData ( aOther ), - m_serviceName ( aOther.m_serviceName ), - m_serviceIcon ( aOther.m_serviceIcon ), - m_description ( aOther.m_description ), - m_serviceUrl ( aOther.m_serviceUrl ), - m_applicationUrl ( aOther.m_applicationUrl ), - m_applicationIcon ( aOther.m_applicationIcon ), - m_pluginId ( aOther.m_pluginId ), - m_authenticationAppId ( aOther.m_authenticationAppId ), - m_registrationId ( aOther.m_registrationId ), - m_usage ( aOther.m_usage ), - m_loadRefCount ( aOther.m_loadRefCount ) { } - - /** - * Destructor - */ - ~SmfProviderBasePrivate( ); - - QString m_serviceName; // the Localisable name of the service - QImage m_serviceIcon; // the Logo of the service - QString m_description; // the Readable service description - QUrl m_serviceUrl; // the Website of the service - QUrl m_applicationUrl; // URL of the Application providing this service - QImage m_applicationIcon; //Icon of the application - quint32 m_pluginId; // The Plugin specific ID - quint32 m_authenticationAppId; // ID of the authentication application for this service - QString m_registrationId; // unique registration ID provided by the - // Smf for authorised plugins - SmfPluginDataUsage m_usage; //data usage of each plugin - uint m_loadRefCount; // reference count increased with each load request - // and decreased with each unload request - -}; - -#endif /* SMFPROVIDERBASE_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/smfcontacts/smfcontactfetcherplugin.h --- a/example/clientapi/smf/inc/smfplugins/smfcontacts/smfcontactfetcherplugin.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/** - * @file smfcontactfetcherplugin.h - * @author Nalina Hariharan, Sasken Communication Technologies Ltd - Initial contribution - * @version 1.0 - * - * @section LICENSE - * - * 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" - * - * @section DESCRIPTION - * - * Interface specification for fetching contacts - */ - -#ifndef SMFCONTACTFETCHERPLUGIN_H_ -#define SMFCONTACTFETCHERPLUGIN_H_ - -#include -#include -#include -#include - -/** - * @ingroup smf_plugin_group - * Interface specification for fetching contacts. This class provides - * basic functionality to allow applications to obtain list of - * friends, followers, groups of a user in a social networking service. - * - * All of the functionality described here should be implemented by a service - * specific plug-in. - */ -class SmfContactFetcherPlugin : public SmfPluginBase - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfContactFetcherPlugin( QObject* aParent = 0 ); - - /** - * Destructor - */ - ~SmfContactFetcherPlugin( ); - - /** - * Method to get the list of friends - * @param aRequest [out] The request data to be sent to network - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError friends( SmfPluginRequestData *aRequest, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to get the list of followers - * @param aRequest [out] The request data to be sent to network - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError followers( SmfPluginRequestData *aRequest, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to search for a contact - * @param aRequest [out] The request data to be sent to network - * @param aContact contact to be searched - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError search( SmfPluginRequestData *aRequest, - const SmfContact *aContact, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to search for contacts (friends) who are near the user. - * Proximity defines accuracy level - * @param aRequest [out] The request data to be sent to network - * @param aLocation The location search criteria - * @param aProximity location search boundary - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError searchNear( SmfPluginRequestData *aRequest, - const SmfPlace* aLocation, - const SmfLocationSearchBoundary aProximity, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to get the list of groups - * @param aRequest [out] The request data to be sent to network - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError groups( SmfPluginRequestData *aRequest, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to search for a contact in a group - * @param aRequest [out] The request data to be sent to network - * @param aGroup the group in which to search - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError searchInGroup( SmfPluginRequestData *aRequest, - const SmfGroup &aGroup, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - }; - -Q_DECLARE_INTERFACE( SmfContactFetcherPlugin, "org.symbian.smf.plugin.contact.fetcher/v1.0" ); - -#endif /* SMFCONTACTFETCHERPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/smfcontacts/smfpostproviderplugin.h --- a/example/clientapi/smf/inc/smfplugins/smfcontacts/smfpostproviderplugin.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,189 +0,0 @@ -/** - * @file smfpostproviderplugin.h - * @author Nalina Hariharan, Sasken Communication Technologies Ltd - Initial contribution - * @version 1.0 - * - * @section LICENSE - * - * 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" - * - * @section DESCRIPTION - * - * Interface specification for getting/posting updates to a social site - */ - -#ifndef SMFPOSTPROVIDERPLUGIN_H_ -#define SMFPOSTPROVIDERPLUGIN_H_ - -#include -#include -#include -#include - -/** - * SmfPresenceInfo. - * Indicates the presence information of user like Online, Offline, Busy, - * Do no disturb, Appear Offline etc. - */ -enum SmfPresenceInfo - { - ENotSupported, - EOnline, - EOffline, - EBusy, - EDoNotDisturb, - EAppearOffline, - EOther - }; - -/** - * @ingroup smf_plugin_group - * Interface to get/update the posts to a service provider. This class - * provides basic functionality to allow applications to obtain list of - * posts, updates posts or change the presence information to a social - * networking service. - * - * All of the functionality described here should be implemented by a service - * specific plug-in. - */ -class SmfPostProviderPlugin : public SmfPluginBase - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfPostProviderPlugin( QObject* aParent = 0 ); - - /** - * Destructor - */ - ~SmfPostProviderPlugin( ); - - /** - * Method that returns maximum no of chars (unicode) that service - * provider can post without truncation. Negative value means - * no limit - * @return Max characters that can be posted without truncation - */ - virtual qint32 maxCharsInPost( ) const = 0; - /** - * Method that returns maximum no of items that can be returned - * in a single query to getPosts. Negative value means feature - * not supported. - * @return Max items that can be returned in a single query - */ - virtual qint32 maxItems( ) const = 0; - - /** - * supportedFormats ( ) const = 0; - - /** - * Method that returns whether this SP supports Appearence - * @return Returns true if Appearance is supported, else false. - * @see SmfAppearenceInfo - */ - virtual bool supportsAppearence ( ) const = 0; - - /** - * Method to get the latest posts - * @param aRequest [out] The request data to be sent to network - * @param aUser The user's contact in this SP, omit for self contact - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError retrieve( SmfPluginRequestData *aRequest, - const SmfContact* aUser = 0, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - - /** - * Method to update a post to own area. - * @param aRequest [out] The request data to be sent to network - * @param aPostData The post data to be posted - * @param aLocation The location - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError post( SmfPluginRequestData *aRequest, - const SmfPost aPostData, - const SmfPlace aLocation ) = 0; - - /** - * Method to update the last post to own area with new data - * @param aRequest [out] The request data to be sent to network - * @param aPostData The edited/new data to be posted - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError updatePost( SmfPluginRequestData *aRequest, - const SmfPost aPostData ) = 0; - - /** - * Method to update a post to a particular contact - * @param aRequest [out] The request data to be sent to network - * @param aPostData The post data to be posted - * @param aContact The contact where the data has to be posted - * @param aLocation The location - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError postDirected( SmfPluginRequestData *aRequest, - const SmfPost aPostData, - const SmfContact aContact, - const SmfPlace aLocation = NULL ) = 0; - - - /** - * Method to post a comment on a post. - * @param aRequest [out] The request data to be sent to network - * @param aTarget Post on which comment has to be posted - * @param aComment comment to be posted - * @param aLocation location data - */ - virtual SmfPluginError commentOnAPost(SmfPluginRequestData *aRequest, - const SmfPost& aTarget, - const SmfPost& aComment, - const SmfPlace* aLocation = NULL); - - /** - * Method to update the presence information of the user - * @param aRequest [out] The request data to be sent to network - * @param aAppearence The appearence information - * @param aStatus The status string - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError postAppearence( SmfPluginRequestData *aRequest, - const SmfPresenceInfo aAppearence, - const QString aStatus ) = 0; - - /** - * Share /a contact's post to user's friends and followers - * (e.g. retweet in twitter, share on facebook) - * @param aRequest [out] The request data to be sent to network - * @param aPostData data to be posted - * @param aContact contact to which the post belonged - * @param aEdited whether user changed items within the post - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError sharePost( SmfPluginRequestData *aRequest, - const SmfPost& aPostData, - const SmfContact& aContact, - const bool aEdited); - - - }; - -Q_DECLARE_INTERFACE( SmfPostProviderPlugin, "org.symbian.smf.plugin.contact.posts/v1.0" ); - -#endif /* SMFPOSTPROVIDERPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/smfmusic/smflyricsserviceplugin.h --- a/example/clientapi/smf/inc/smfplugins/smfmusic/smflyricsserviceplugin.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/** - * @file smflyricsserviceplugin.h - * @author Nalina Hariharan, Sasken Communication Technologies Ltd - Initial contribution - * @version 1.0 - * - * @section LICENSE - * - * 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" - * - * @section DESCRIPTION - * - * Interface specification for music track lyrics - */ - -#ifndef SMFLYRICSSERVICEPLUGIN_H_ -#define SMFLYRICSSERVICEPLUGIN_H_ - -#include -#include -#include -#include -#include - -/** - * @ingroup smf_plugin_group - * Interface specification for music track lyrics - * - * All of the functionality described here should be implemented by a service - * specific plug-in. - */ -class SmfLyricsServicePlugin : public SmfPluginBase - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfLyricsServicePlugin( QObject* aParent = 0 ); - - /** - * Destructor - */ - ~SmfLyricsServicePlugin( ); - - /** - * Method to get the lyrics - * @param aRequest [out] The request data to be sent to network - * @param aTrack The track whose lyrics need to be fetched - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError lyrics( SmfPluginRequestData *aRequest, - const SmfTrackInfo aTrack ) = 0; - - /** - * Method to get the subtitle - * @param aRequest [out] The request data to be sent to network - * @param aTrack The track whose subtitle need to be fetched - * @param aFilter The subtitle search filter if any - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError subtitles( SmfPluginRequestData *aRequest, - const SmfTrackInfo aTrack, - const SmfSubtitleSearchFilter aFilter = SubtitleAll ) = 0; - - }; - -Q_DECLARE_INTERFACE( SmfLyricsServicePlugin, "org.symbian.smf.plugin.music.lyrics/v1.0" ); - -#endif /* SMFLYRICSSERVICEPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/smfmusic/smfmusiceventsplugin.h --- a/example/clientapi/smf/inc/smfplugins/smfmusic/smfmusiceventsplugin.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -/** - * @file smfmusiceventsplugin.h - * @author Nalina Hariharan, Sasken Communication Technologies Ltd - Initial contribution - * @version 1.0 - * - * @section LICENSE - * - * 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" - * - * @section DESCRIPTION - * - * Interface specification for music events - * - * Note: This class has dependencies on QtMobility project - */ - -#ifndef SMFMUSICEVENTSPLUGIN_H_ -#define SMFMUSICEVENTSPLUGIN_H_ - -#include -#include -#include -#include - -using namespace QtMobility; - -/** - * @ingroup smf_plugin_group - * Interface specification for music events - * - * All of the functionality described here should be implemented by a service - * specific plug-in. - * - * Note: This class has dependencies on QtMobility project - */ -class SmfMusicEventsPlugin : public SmfPluginBase - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfMusicEventsPlugin( QObject* aParent = 0 ); - - /** - * Destructor - */ - ~SmfMusicEventsPlugin( ); - - /** - * Method to get the events based on location - * @param aRequest [out] The request data to be sent to network - * @param aLocation Location of the event - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError events( SmfPluginRequestData *aRequest, - const QtMobility::QContactGeolocation aLocation, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to get the venues based on location - * @param aRequest [out] The request data to be sent to network - * @param aLocation Location of the venue - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError venues( SmfPluginRequestData *aRequest, - const QtMobility::QContactGeolocation aLocation, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to get the events based on venues - * @param aRequest [out] The request data to be sent to network - * @param aVenue Venue of the event - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError events( SmfPluginRequestData *aRequest, - const SmfPlace aVenue, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to post events - * @param aRequest [out] The request data to be sent to network - * @param aEventList The list of events to be posted - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError postEvents( SmfPluginRequestData *aRequest, - const QList aEventList ) = 0; - - }; - -Q_DECLARE_INTERFACE( SmfMusicEventsPlugin, "org.symbian.smf.plugin.music.events/v1.0" ); - -#endif /* SMFMUSICEVENTSPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/smfmusic/smfmusicsearchplugin.h --- a/example/clientapi/smf/inc/smfplugins/smfmusic/smfmusicsearchplugin.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/** - * @file smfmusicsearchplugin.h - * @author Nalina Hariharan, Sasken Communication Technologies Ltd - Initial contribution - * @version 1.0 - * - * @section LICENSE - * - * 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" - * - * @section DESCRIPTION - * - * Interface specification for music search services - */ - -#ifndef SMFMUSICSEARCHPLUGIN_H_ -#define SMFMUSICSEARCHPLUGIN_H_ - -#include -#include -#include -#include - -/** - * @ingroup smf_plugin_group - * Interface specification for music search services. This class - * provides basic functionality to allow applications to search for - * tracks, get recommented tracks etc - * - * All of the functionality described here should be implemented by a service - * specific plug-in. - */ -class SmfMusicSearchPlugin : public SmfPluginBase - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfMusicSearchPlugin( QObject *aParent = 0 ); - - /** - * Destructor - */ - ~SmfMusicSearchPlugin( ); - - /** - * Method to get recommended tracks - * @param aRequest [out] The request data to be sent to network - * @param aTrack The track for which similar recommendations - * need to be fetched. - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError recommendations( SmfPluginRequestData *aRequest, - const SmfTrackInfo aTrack, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to get similar tracks - * @param aRequest [out] The request data to be sent to network - * @param aTrack The track for which similar tracks - * need to be fetched. - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError tracks( SmfPluginRequestData *aRequest, - const SmfTrackInfo aTrack, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to get tracks having a similar finger print - * @param aRequest [out] The request data to be sent to network - * @param aSignature The finger print to be searched for need to be - * fetched. - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError trackInfo( SmfPluginRequestData *aRequest, - const SmfMusicFingerPrint aSignature, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to search information about where to buy this song from - * @param aRequest [out] The request data to be sent to network - * @param aTrack The track for which stores need to be searched - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError stores( SmfPluginRequestData *aRequest, - const SmfTrackInfo aTrack, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to post the currently playing track - * @param aRequest [out] The request data to be sent to network - * @param aTrack The current playing track, that should be posted - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError postCurrentPlaying( - SmfPluginRequestData *aRequest, - const SmfTrackInfo aTrack ) = 0; - - }; - -Q_DECLARE_INTERFACE( SmfMusicSearchPlugin, "org.symbian.smf.plugin.music.search/v1.0" ); - -#endif /* SMFMUSICSEARCHPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/smfmusic/smfmusicserviceplugin.h --- a/example/clientapi/smf/inc/smfplugins/smfmusic/smfmusicserviceplugin.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/** - * @file smfmusicserviceplugin.h - * @author Nalina Hariharan, Sasken Communication Technologies Ltd - Initial contribution - * @version 1.0 - * - * @section LICENSE - * - * 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" - * - * @section DESCRIPTION - * - * Interface specification for music services - */ - -#ifndef SMFMUSICSERVICEPLUGIN_H_ -#define SMFMUSICSERVICEPLUGIN_H_ - -#include -#include -#include - -/** - * @ingroup smf_plugin_group - * Interface specification for music services. This class provides basic - * functionality to allow application to search for a user or check for - * user information etc. - * - * All of the functionality described here should be implemented by a service - * specific plug-in. - */ -class SmfMusicServicePlugin : public SmfPluginBase - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfMusicServicePlugin( QObject *aParent = 0 ); - - /** - * Destructor - */ - ~SmfMusicServicePlugin( ); - - /** - * Method to get self profile information - * @param aRequest [out] The request data to be sent to network - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError userInfo( SmfPluginRequestData *aRequest ) = 0; - - /** - * Method to search information about other service users for a - * particular place - * @param aRequest [out] The request data to be sent to network - * @param aPlace The place which is the search criteria - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError searchUser( SmfPluginRequestData *aRequest, - const SmfPlace aPlace, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - }; - -Q_DECLARE_INTERFACE( SmfMusicServicePlugin, "org.symbian.smf.plugin.music.service/v1.0" ); - -#endif /* SMFMUSICSERVICEPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/smfmusic/smfplaylistserviceplugin.h --- a/example/clientapi/smf/inc/smfplugins/smfmusic/smfplaylistserviceplugin.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -/** - * @file smfplaylistserviceplugin.h - * @author Nalina Hariharan, Sasken Communication Technologies Ltd - Initial contribution - * @version 1.0 - * - * @section LICENSE - * - * 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" - * - * @section DESCRIPTION - * - * Interface specification for playlists service - */ - -#ifndef SMFPLAYLISTSERVICEPLUGIN_H_ -#define SMFPLAYLISTSERVICEPLUGIN_H_ - -#include -#include -#include -#include - -/** - * @ingroup smf_plugin_group - * Interface specification for playlists service. This class provides - * basic functionality to allow applications to get playlists of a user, - * add some track to an existing playlist, post the current playing - * playlists etc. - * - * All of the functionality described here should be implemented by a service - * specific plug-in. - */ -class SmfPlaylistServicePlugin : public SmfPluginBase - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfPlaylistServicePlugin( QObject *aParent = 0 ); - - /** - * Destructor - */ - ~SmfPlaylistServicePlugin( ); - - /** - * Method to get the playlist - * @param aRequest [out] The request data to be sent to network - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError playlists( SmfPluginRequestData *aRequest, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to get the playlist of a particular user - * @param aRequest [out] The request data to be sent to network - * @param aUser The user whose playlists need to be fetched - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError playlistsOf( SmfPluginRequestData *aRequest, - const SmfMusicProfile aUser, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to add tracks to a playlist - * @param aRequest [out] The request data to be sent to network - * @param aPlaylist The playlist where tracks should be added - * @param aTracks The tracks to be added to the playlist - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError addToPlaylist( SmfPluginRequestData *aRequest, - const SmfPlaylist aPlaylist, - const QList aTracks ) = 0; - - /** - * Method to post the current playing playlist - * @param aRequest [out] The request data to be sent to network - * @param aPlaylist The current playing playlist which should be posted - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError postCurrentPlayingPlaylist( - SmfPluginRequestData *aRequest, - const SmfPlaylist aPlaylist ) = 0; - - }; - -Q_DECLARE_INTERFACE( SmfPlaylistServicePlugin, "org.symbian.smf.plugin.music.playlist/v1.0" ); - -#endif /* SMFPLAYLISTSERVICEPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/clientapi/smf/inc/smfplugins/smfpictures/smfgalleryplugin.h --- a/example/clientapi/smf/inc/smfplugins/smfpictures/smfgalleryplugin.h Tue Apr 06 16:35:37 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -/** - * @file smfgalleryplugin.h - * @author Nalina Hariharan, Sasken Communication Technologies Ltd - Initial contribution - * @version 1.0 - * - * @section LICENSE - * - * 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" - * - * @section DESCRIPTION - * - * Interface specification for plugins that implement gallery related services - */ - -#ifndef SMFGALLERYPLUGIN_H_ -#define SMFGALLERYPLUGIN_H_ - -#include -#include -#include - -/** - * @ingroup smf_plugin_group - * Interface specification for plugins that implement gallery related services - * like getting pictures, their description, uploading, posting comments - * on pictures etc - * - * All of the functionality described here should be implemented by a service - * specific plug-in. - * - * A sample call flow between SmfPluginMgr and SmfGalleryPlugin is shown here - * - * @msc - hscale = "2"; - SmfServer,SmfTransportMgr,SmfPluginMgr,SmfGalleryPlugin; - ...; - SmfPluginMgr=>SmfTransportMgr [ label = "connect(SIGNAL(finished()), SLOT(replyFinished()))" ] ; - ...; - SmfServer=> SmfPluginMgr[ label = "loadAndCheckPlugin()" ] ; - SmfPluginMgr=>SmfPluginMgr [ label = "SmfGalleryPlugin smfglpl= load()" ] ; - SmfPluginMgr=>SmfGalleryPlugin [ label = "QNetworkRequest req = smfglpl.pictures()" ] ; - SmfPluginMgr=>SmfTransportMgr [ label = "nwmgr.get( req )" ] ; - ...; - SmfTransportMgr=>SmfPluginMgr [ label = "replyFinished( reply )" ] ; - SmfPluginMgr=>SmfGalleryPlugin [ label = "status = responseAvailable( reply, &data )" ] ; - SmfPluginMgr=>SmfServer [ label = "if(status ==complete) dataStream << data;" ] ; - @endmsc - * - */ -class SmfGalleryPlugin : public SmfPluginBase - { - Q_OBJECT -public: - /** - * Constructor with default argument - * @param aParent The parent object - */ - SmfGalleryPlugin( QObject* aParent = 0 ); - - /** - * Destructor - */ - ~SmfGalleryPlugin( ); - - /** - * Method to get a list of pictures - * @param aRequest [out] The request data to be sent to network - * @param aPageNum The page to be extracted - * @param aItemsPerPage Number of items per page - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError pictures( SmfPluginRequestData *aRequest, - const int aPageNum = SMF_FIRST_PAGE, - const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; - - /** - * Method to get a description - * @param aRequest [out] The request data to be sent to network - * @param aImage The image abot which the description is required - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError description( SmfPluginRequestData *aRequest, - const SmfPicture &aImage ) = 0; - - /** - * Method to upload a picture - * @param aRequest [out] The request data to be sent to network - * @param aImage The image to be uploaded - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError upload( SmfPluginRequestData *aRequest, - const SmfPicture &aImage ) = 0; - - /** - * Method to upload a list of pictures - * @param aRequest [out] The request data to be sent to network - * @param aImages The list of images to be uploaded - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError upload( SmfPluginRequestData *aRequest, - const QList &aImages ) = 0; - - /** - * Method to post comment on a picture is available - * @param aRequest [out] The request data to be sent to network - * @param aImage The image on which comment is to be posted - * @param aComment The comment to be posted - * @return SmfPluginError Plugin error if any, else SmfPluginErrNone - */ - virtual SmfPluginError postComment( SmfPluginRequestData *aRequest, - const SmfPicture &aImage, - const SmfComment &aComment ) = 0; - - }; - -Q_DECLARE_INTERFACE( SmfGalleryPlugin, "org.symbian.smf.plugin.gallery/v1.0" ); - -#endif /* SMFGALLERYPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa example/sampleplugin/sampleplugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/sampleplugin/sampleplugin.cpp Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,486 @@ + +// Include files +#include "sampleplugin.h" +#include +#include + +/** + * Constructor with default argument + * @param aUtil The SmfPluginUtil instance. The plugins can + * call the method getAuthKeys() of this class, with its pluginID to + * get the OAuth keys, keys are returned only if this plugin is + * authorised by Smf franework + */ +SamplePlugin::SamplePlugin( SmfPluginUtil *aUtil ) + { + m_provider = new SampleProviderBase(); + m_util = aUtil; + } + +/** + * Destructor + */ +SamplePlugin::~SamplePlugin( ) + { + if(m_provider) + delete m_provider; + } + +/** + * Method to get a list of pictures + * @param aRequest [out] The request data to be sent to network + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ +SmfPluginError SamplePlugin::pictures( SmfPluginRequestData &aRequest, + const int aPageNum, + const int aItemsPerPage ) + { + SmfPluginError error = SmfPluginErrInvalidRequest; + + // invalid arguments + if( aPageNum < 0 || aItemsPerPage < 0 ) + return error; + else + { + // Create a map of the arguments keys and their repective values + QMultiMap params; + QString pageNum, itemPerPage; + pageNum.number(aPageNum); + itemPerPage.number(aItemsPerPage); + params.insert("method", "getpictures"); + params.insert("pagenumber", pageNum.toAscii()); + params.insert("itemsperpage", itemPerPage.toAscii()); + + QNetworkAccessManager::Operation type = QNetworkAccessManager::GetOperation; + SmfSignatureMethod signMethod = HMAC_SHA1; + SmfParsingMode mode = ParseForInlineQuery; + + error = createRequest(aRequest, type, signMethod, params, mode, NULL); + } + return error; + } + + +/** + * Method called by plugins to generate a request data + * @param aRequest [out] The request data to be sent to network + * @param aOperation The type of http operation + * @param aSignatureMethod The signature method to be used + * @param aParams A map of parameters to its values + * @param aMode The mode of creation of the request + * @param aPostData The data to be posted (for HTTP POST + * only, else it will be NULL) + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ +SmfPluginError SamplePlugin::createRequest( SmfPluginRequestData &aRequest, + const QNetworkAccessManager::Operation aOperation, + const SmfSignatureMethod aSignatureMethod, + QMultiMap &aParams, + const SmfParsingMode aMode, + QBuffer *aPostData ) + { + SmfPluginError error; + QString url = m_provider->serviceUrl().toString(); + + // Get the oAuth keys from The Smf Server + QMap keys; + m_util->getAuthKeys(keys, m_provider->pluginId()); + + // Unable to get the tokens + if(keys.isEmpty()) + error = SmfPluginErrInvalidApplication; + else + { + + // Get the token and token secret from keys + QByteArray token; + QByteArray tokenSecret; + token.append(keys.value("oauth_token")); + tokenSecret.append(keys.value("oauth_token_secret")); + + // convert the parameters to string and sign it + QByteArray content = m_util->createParameterString(url, aOperation, token, tokenSecret, + aSignatureMethod, aParams, aMode ); + + // Unable to create the signed string + if(content.isEmpty()) + error = SmfPluginErrInvalidRequest; + else + { + // add the parameter string to the URL + url.append(content); + + // set the url of the request + aRequest.iNetworkRequest.setUrl(QUrl(url)); + + // set the type of http operation to be performed + aRequest.iHttpOperationType = aOperation; + + // As it is a GET operation, set iPostData to NULL + aRequest.iPostData = aPostData; + + // For successful creation of request + error = SmfPluginErrNone; + } + } + return error; + } + + +/** + * Method to get a description + * @param aRequest [out] The request data to be sent to network + * @param aImage The image abot which the description is required + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ +SmfPluginError SamplePlugin::description( SmfPluginRequestData &aRequest, + const SmfPicture &aImage ) + { + SmfPluginError error; + + // Create a map of the arguments keys and their repective values + QMultiMap params; + params.insert("method", "getpictureDescription"); + params.insert("photoId", aImage.id().toAscii()); + + QNetworkAccessManager::Operation type = QNetworkAccessManager::GetOperation; + SmfSignatureMethod signMethod = HMAC_SHA1; + SmfParsingMode mode = ParseForInlineQuery; + + error = createRequest(aRequest, type, signMethod, params, mode, NULL); + + return error; + } + +/** + * Method to upload a picture + * @param aRequest [out] The request data to be sent to network + * @param aImage The image to be uploaded + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ +SmfPluginError SamplePlugin::upload( SmfPluginRequestData &aRequest, + const SmfPicture &aImage ) + { + SmfPluginError error = SmfPluginErrInvalidRequest; + + // Create a map of the arguments keys and their repective values + QMultiMap params; + params.insert("method", "upload"); + params.insert("title", aImage.title().toAscii()); + params.insert("owner", aImage.owner().toAscii()); + params.insert("description", aImage.description().toAscii()); + params.insert("tags", aImage.tags().join(" ").toAscii()); + switch(aImage.visibility()) + { + case SMFVisibilityFriend: + params.insert("isFriend", "true"); + break; + case SMFVisibilityPublic: + params.insert("isPublic", "true"); + break; + case SMFVisibilityFamily: + params.insert("isFamily", "true"); + break; + case SMFVisibilityGroup: + params.insert("isGroup", "true"); + break; + default:// SMFVisibilityPersonal + params.insert("isPrivate", "true"); + } + + QNetworkAccessManager::Operation type = QNetworkAccessManager::PostOperation; + SmfSignatureMethod signMethod = HMAC_SHA1; + SmfParsingMode mode = ParseForRequestContent; + + // Write the image as png format to the buffer + QByteArray ba; + QBuffer buffer(&ba); + buffer.open(QIODevice::WriteOnly); + aImage.picture().save(&buffer, "PNG"); + + error = createRequest(aRequest, type, signMethod, params, mode, &buffer); + + return error; + } + +/** + * Method to upload a list of pictures + * @param aRequest [out] The request data to be sent to network + * @param aImages The list of images to be uploaded + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ +SmfPluginError SamplePlugin::upload( SmfPluginRequestData &aRequest, + const QList &aImages ) + { + SmfPluginError error; + + for(int index = 0; index < aImages.count(); index++) + { + error = upload(aRequest, aImages.value(index)); + if(SmfPluginErrNone != error) + break; + } + return error; + } + +/** + * Method to post comment on a picture is available + * @param aRequest [out] The request data to be sent to network + * @param aImage The image on which comment is to be posted + * @param aComment The comment to be posted + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ +SmfPluginError SamplePlugin::postComment( SmfPluginRequestData &aRequest, + const SmfPicture &aImage, + const SmfComment &aComment ) + { + SmfPluginError error = SmfPluginErrInvalidRequest; + + // Create a map of the arguments keys and their repective values + QMultiMap params; + params.insert("method", "postComment"); + params.insert("photoId", aImage.id().toAscii()); + params.insert("comment", aImage.comments().join(" ").toAscii()); + + QNetworkAccessManager::Operation type = QNetworkAccessManager::GetOperation; + SmfSignatureMethod signMethod = HMAC_SHA1; + SmfParsingMode mode = ParseForInlineQuery; + + error = createRequest(aRequest, type, signMethod, params, mode, NULL); + return error; + } + +/** + * Method to get the provider information + * @return Instance of SmfProviderBase + */ +SmfProviderBase* SamplePlugin::getProviderInfo( ) + { + return m_provider; + } + +/** + * Method to get the result for a network request. + * @param aTransportResult The result of transport operation + * @param aReply The QNetworkReply instance for the request + * @param aResult [out] An output parameter to the plugin manager.If the + * return value is SmfSendRequestAgain, QVariant will be of type + * SmfPluginRequestData. + * For SmfGalleryPlugin: If last operation was pictures(), aResult will + * be of type QList. If last operation was description(), + * aResult will be of type QString. If last operation was upload() or + * postComment(), aResult will be of type bool. + * @param aRetType [out] SmfPluginRetType + * @param aPageResult [out] The SmfResultPage structure variable + */ +SmfPluginError SamplePlugin::responseAvailable( + const SmfTransportResult &aTransportResult, + QNetworkReply *aReply, + QVariant* aResult, + SmfPluginRetType &aRetType, + SmfResultPage &aPageResult ) + { + SmfPluginError error; + if(SmfTransportOpNoError == aTransportResult) + { + // Assuming a JSON response, parse the response + QByteArray response = aReply->readAll(); + m_provider->updateDataUsage(0, aReply->readBufferSize()); + bool parseResult = false; + QVariant *result = new QVariant(); + /** see http://qjson.sourceforge.net/usage.html for more details */ + parseResult = m_util->getJsonHandle()->parse(response, &parseResult); + + // For parsing error + if(!parseResult) + { + aRetType = SmfRequestError; + error = SmfPluginErrInvalidRequest; + } + + else + { + // The plugins should convert the result to suitable format, + // like if last operation was pictures(), result should be converted to the + // type QList. If last operation was description(), result should + // be converted to the type QString. If last operation was upload() or + // postComment(), result should be converted to the type bool. + + // After conversion, assign the value os result to aResult + aResult = result; + + // if the request is complete + aRetType = SmfRequestComplete; + + // if request need to be sent again + aRetType = SmfSendRequestAgain; + + error = SmfPluginErrNone; + } + } + else + { + error = SmfPluginErrInvalidRequest; + aRetType = SmfRequestError; + } + + return error; + } + + +/** + * Constructor with default argument + * @param aParent The parent object + */ +SampleProviderBase::SampleProviderBase( QObject* aParent ) + : SmfProviderBase(aParent) + { + } + +/** + * Copy Constructor + * @param aOther The reference object + */ +SampleProviderBase::SampleProviderBase( const SampleProviderBase &aOther ) + { + } + +/** + * Destructor + */ +SampleProviderBase::~SampleProviderBase( ) + { + } + +/** + * Method to get the Localisable name of the service. + * @return The Localisable name of the service. + */ +QString SampleProviderBase::serviceName( ) const + { + return m_serviceName; + } + +/** + * Method to get the Logo of the service + * @return The Logo of the service + */ +QImage SampleProviderBase::serviceIcon( ) const + { + return m_serviceIcon; + } + +/** + * Method to get the Readable service description + * @return The Readable service description + */ +QString SampleProviderBase::description( ) const + { + return m_description; + } + +/** + * Method to get the Website of the service + * @return The Website of the service + */ +QUrl SampleProviderBase::serviceUrl( ) const + { + return m_serviceUrl; + } + +/** + * Method to get the URL of the Application providing this service + * @return The URL of the Application providing this service + */ +QUrl SampleProviderBase::applicationUrl( ) const + { + return m_applicationUrl; + } + +/** + * Method to get the Icon of the application + * @return The Icon of the application + */ +QImage SampleProviderBase::applicationIcon( ) const + { + return m_applicationIcon; + } + +/** + * Method to get the Plugin specific ID + * @return The Plugin specific ID + */ +QString SampleProviderBase::pluginId( ) const + { + return m_pluginId; + } + +/** + * Method to get the ID of the authentication application + * for this service + * @param aProgram The authentication application name + * @param aArguments List of arguments required for authentication app + * @param aMode Strting mode for authentication application + * @return The ID of the authentication application + */ +QString SampleProviderBase::authenticationApp( QString &aProgram, + QStringList & aArguments, + QIODevice::OpenModeFlag aMode ) const + { + return m_authAppId; + } + +/** + * Method to get the unique registration ID provided by the + * Smf for authorised plugins + * @return The unique registration ID/token provided by the Smf for + * authorised plugins + */ +QString SampleProviderBase::smfRegistrationId( ) const + { + return m_smfRegToken; + } + +/** + * Method to get the data usage of each plugin + * @return The data usage structure + */ +SmfPluginDataUsage SampleProviderBase::getDataUsage( ) const + { + return m_dataUsage; + } + +/** + * Method to update the data usage of this plugin. This method is called + * after the plugin sends request to Plugin manager and after it receives + * data from plugin manager. + * @param aBytesSent The number of bytes sent, when this argument has + * some value other than 1, aBytesReceived should be zero. + * @param aBytesReceived The number of bytes received, when this argument + * has some value other than 1, aBytesSent should be zero. + * @return Returns true if success else returns false + */ +bool SampleProviderBase::updateDataUsage( const uint &aBytesSent, + const uint &aBytesReceived ) + { + bool ret = true; + if( aBytesSent && !aBytesReceived ) + m_dataUsage.iBytesSent += aBytesSent; + else if( !aBytesSent && aBytesReceived ) + m_dataUsage.iBytesReceived += aBytesReceived; + else + // don't update m_dataUsage, error in arguments + ret = false; + + return ret; + } + + +/* + * Export Macro + * plugin name : sampleplugin + * plugin class : SamplePlugin + */ +//Q_EXPORT_PLUGIN2( sampleplugin, SamplePlugin ) diff -r 86af6c333601 -r 0446eb7b28aa example/sampleplugin/sampleplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/example/sampleplugin/sampleplugin.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,264 @@ +#ifndef _SAMPLEPLUGIN_H +#define _SAMPLEPLUGIN_H + +// Include files +#include +#include + +#include "smfglobal.h" +#include "smfpicture.h" +#include "smfcomment.h" +#include "smfpluginbase.h" +#include "smfproviderbase.h" +#include "smfgalleryplugin.h" +#include "smfpluginutil.h" + + +// Forward declarations +class SampleProviderBase; + + +// Class declaration +class SamplePlugin : public SmfGalleryPlugin +{ + Q_OBJECT + Q_INTERFACES( SmfGalleryPlugin ) + +public: + /** + * Constructor with default argument + * @param aUtil The SmfPluginUtil instance. The plugins can + * call the method getAuthKeys() of this class, with its pluginID to + * get the OAuth keys, keys are returned only if this plugin is + * authorised by Smf franework + */ + SamplePlugin( SmfPluginUtil *aUtil ); + + /** + * Destructor + */ + ~SamplePlugin( ); + +public: // From SmfGalleryPlugin + + /** + * Method to get a list of pictures + * @param aRequest [out] The request data to be sent to network + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + SmfPluginError pictures( SmfPluginRequestData &aRequest, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ); + + /** + * Method to get a description + * @param aRequest [out] The request data to be sent to network + * @param aImage The image abot which the description is required + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + SmfPluginError description( SmfPluginRequestData &aRequest, + const SmfPicture &aImage ); + + /** + * Method to upload a picture + * @param aRequest [out] The request data to be sent to network + * @param aImage The image to be uploaded + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + SmfPluginError upload( SmfPluginRequestData &aRequest, + const SmfPicture &aImage ); + + /** + * Method to upload a list of pictures + * @param aRequest [out] The request data to be sent to network + * @param aImages The list of images to be uploaded + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + SmfPluginError upload( SmfPluginRequestData &aRequest, + const QList &aImages ); + + /** + * Method to post comment on a picture is available + * @param aRequest [out] The request data to be sent to network + * @param aImage The image on which comment is to be posted + * @param aComment The comment to be posted + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + SmfPluginError postComment( SmfPluginRequestData &aRequest, + const SmfPicture &aImage, + const SmfComment &aComment ); + +public: // From SmfPluginBase + /** + * Method to get the provider information + * @return Instance of SmfProviderBase + */ + SmfProviderBase* getProviderInfo( ); + + /** + * Method to get the result for a network request. + * @param aTransportResult The result of transport operation + * @param aReply The QNetworkReply instance for the request + * @param aResult [out] An output parameter to the plugin manager.If the + * return value is SmfSendRequestAgain, QVariant will be of type + * SmfPluginRequestData. + * For SmfGalleryPlugin: If last operation was pictures(), aResult will + * be of type QList. If last operation was description(), + * aResult will be of type QString. If last operation was upload() or + * postComment(), aResult will be of type bool. + * @param aRetType [out] SmfPluginRetType + * @param aPageResult [out] The SmfResultPage structure variable + */ + SmfPluginError responseAvailable( + const SmfTransportResult &aTransportResult, + QNetworkReply *aReply, + QVariant* aResult, + SmfPluginRetType &aRetType, + SmfResultPage &aPageResult ); + +private: + /** + * Method called by plugins to generate a request data + * @param aRequest [out] The request data to be sent to network + * @param aOperation The type of http operation + * @param aSignatureMethod The signature method to be used + * @param aParams A map of parameters to its values + * @param aMode The mode of creation of the request + * @param aPostData The data to be posted (for HTTP POST + * only, else it will be NULL) + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + SmfPluginError createRequest( SmfPluginRequestData &aRequest, + const QNetworkAccessManager::Operation aOperation, + const SmfSignatureMethod aSignatureMethod, + QMultiMap &aParams, + const SmfParsingMode aMode, + QBuffer *aPostData ); + +private: + SampleProviderBase *m_provider; + SmfPluginUtil *m_util; +}; + + +// Class declaration +class SampleProviderBase : public SmfProviderBase + { + Q_OBJECT + +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SampleProviderBase( QObject* aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SampleProviderBase( const SampleProviderBase &aOther ); + + /** + * Destructor + */ + ~SampleProviderBase( ); + + /** + * Method to get the Localisable name of the service. + * @return The Localisable name of the service. + */ + QString serviceName( ) const; + + /** + * Method to get the Logo of the service + * @return The Logo of the service + */ + QImage serviceIcon( ) const; + + /** + * Method to get the Readable service description + * @return The Readable service description + */ + QString description( ) const; + + /** + * Method to get the Website of the service + * @return The Website of the service + */ + QUrl serviceUrl( ) const; + + /** + * Method to get the URL of the Application providing this service + * @return The URL of the Application providing this service + */ + QUrl applicationUrl( ) const; + + /** + * Method to get the Icon of the application + * @return The Icon of the application + */ + QImage applicationIcon( ) const; + + /** + * Method to get the Plugin specific ID + * @return The Plugin specific ID + */ + QString pluginId( ) const; + + /** + * Method to get the ID of the authentication application + * for this service + * @param aProgram The authentication application name + * @param aArguments List of arguments required for authentication app + * @param aMode Strting mode for authentication application + * @return The ID of the authentication application + */ + QString authenticationApp( QString &aProgram, QStringList & aArguments, + QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const; + + /** + * Method to get the unique registration ID provided by the + * Smf for authorised plugins + * @return The unique registration ID/token provided by the Smf for + * authorised plugins + */ + QString smfRegistrationId( ) const; + + /** + * Method to get the data usage of each plugin + * @return The data usage structure + */ + SmfPluginDataUsage getDataUsage( ) const; + +private: + /** + * Method to update the data usage of this plugin. This method is called + * after the plugin sends request to Plugin manager and after it receives + * data from plugin manager. + * @param aBytesSent The number of bytes sent, when this argument has + * some value other than 1, aBytesReceived should be zero. + * @param aBytesReceived The number of bytes received, when this argument + * has some value other than 1, aBytesSent should be zero. + * @return Returns true if success else returns false + */ + bool updateDataUsage( const uint &aBytesSent, const uint &aBytesReceived ); + + friend class SamplePlugin; + +private: + QString m_serviceName; + QImage m_serviceIcon; + QString m_description; + QUrl m_serviceUrl; + QUrl m_applicationUrl; + QImage m_applicationIcon; + QString m_pluginId; + QString m_authAppId; + QString m_smfRegToken; + SmfPluginDataUsage m_dataUsage; + }; + +#endif /*_SAMPLEPLUGIN_H*/ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfclientglobal.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfclientglobal.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,36 @@ +/** +* Copyright (c) 2010 Sasken Communication Technologies Ltd. +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the "{License}" +* which accompanies this distribution, and is available +* at the URL "{LicenseUrl}". +* +* Initial Contributors: +* Mansij Roy, Sasken Communication Technologies Ltd - Initial contribution +* +* Contributors: +* +* Description: +* Interface spefication for sfm service provider +* +*/ + +#ifndef SMFCLIENTGLOBAL_H_ +#define SMFCLIENTGLOBAL_H_ + +#include +#include + +#ifdef SMFCLIENT_LIBRARY +# define SMFCLIENT_EXPORT //Q_DECL_EXPORT +#else +# define SMFCLIENT_EXPORT Q_DECL_IMPORT +#endif + +/** +* To be designed later +*/ +#define SMF_GETSERVICES(INTERFACE,INTERFACESTRING) ; + +#endif /* SMFCLIENTGLOBAL_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfcomment/smfcomment.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfcomment/smfcomment.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,114 @@ +/** + * 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: + * The comment class represents a comment (on a picture or a music track etc) + * + */ + +#ifndef SMFCOMMENT_H_ +#define SMFCOMMENT_H_ + +#include +#include +#include +#include + +class SmfCommentPrivate; + +/** + * @ingroup smf_common_group + * The comment class represents a comment (on a picture or a music track etc) + */ +class SMFCLIENT_EXPORT SmfComment : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfComment( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfComment( const SmfComment &aOther ); + + /** + * Destructor + */ + ~SmfComment( ); + + /** + * Method to get the comment text + * @return The comment text + */ + QString text( ) const; + + /** + * Method to get the comment time stamp + * @return The comment time stamp value + */ + QDateTime timeStamp( ) const; + + /** + * Method to get the id of the comment + * @return The ID value + */ + QString id( ) const; + + /** + * Method to set the comment text + * @param aText The comment text to be set + */ + void setText( const QString &aText ); + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfComment &aComment ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfComment &aComment ); + + }; + + +/** + * Method for Externalization. Writes the SmfComment object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aComment The SmfComment object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfComment &aComment ); + +/** + * Method for Internalization. Reads a SmfComment object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aComment The SmfComment object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfComment &aComment); + +// Make the class SmfComment known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfComment) + +#endif /* SMFCOMMENT_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfcomment/smfcomment_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfcomment/smfcomment_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,55 @@ +/** + * 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 class implemented for implicit sharing of SmfComment class + * + */ + +#ifndef SMFCOMMENT_P_H_ +#define SMFCOMMENT_P_H_ + +#include +#include + +class SmfCommentPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfCommentPrivate( ) { m_text.clear(); m_commentId.clear(); } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfCommentPrivate( const SmfCommentPrivate &aOther ) : + QSharedData ( aOther ), + m_text ( aOther.m_text ), + m_timeStamp ( aOther.m_timeStamp ), + m_commentId ( aOther.m_commentId ) { } + + /** + * Destructor + */ + ~SmfCommentPrivate( ); + + QString m_text; // comment text + QDateTime m_timeStamp; // comment time stamp + QString m_commentId; + +}; + +#endif /* SMFCOMMENT_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfcontacts/smfcontact.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfcontacts/smfcontact.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,138 @@ +/** + * 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: + * The contact class represents a social contact + * Note: This class has dependencies on QtMobility project + * + */ + +#ifndef SMFCONTACT_H_ +#define SMFCONTACT_H_ + +#include "qtcontacts.h" +#include +#include +#include + +using namespace QtMobility; + +class SmfContactPrivate; + +/** + * @ingroup smf_common_group + * The contact class represents a social contact + * + * Note: This class has dependencies on QtMobility project + */ +class SMFCLIENT_EXPORT SmfContact : public QObject + { + Q_OBJECT + +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfContact( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfContact( const SmfContact &aOther ); + + /** + * Destructor + */ + ~SmfContact( ); + +public slots: + /** + * Method to get the available sub fields for contacts. + * The following are the available sub types of a contact + * QtMobility::QContactAddress Address; + * QtMobility::QContactAnniversary Anniversary; + * QtMobility::QContactAvatar Avatar; + * QtMobility::QContactBirthday Birthday; + * QtMobility::QContactId ContactId; + * QtMobility::QContactEmailAddress EmailAddress; + * QtMobility::QContactGender Gender; + * QtMobility::QContactGeolocation Geolocation; + * QtMobility::QContactGuid Guid; + * QtMobility::QContactName Name; + * QtMobility::QContactNickname Nickname; + * QtMobility::QContactNote Note; + * QtMobility::QContactOnlineAccount OnlineAccount; + * QtMobility::QContactOrganization Organization; + * QtMobility::QContactPhoneNumber PhoneNumber; + * QtMobility::QContactTimestamp Timestamp; + * QtMobility::QContactType Type; + * QtMobility::QContactUrl Url; + * @return The Available sub fields for this contact + */ + QStringList subTypes( ) const; + + /** + * Method to convert an SmfContact to a QContact + * Changes made to the returned QContact will not be reflected + * in its parent SmfContact object + * @param aContact QContact corresponding to SmfContact + */ + void convert( QContact &aContact ) const; + + /** + * Method to get the value of a sub field for this contact + * @param aSubType The sub field type + * @return The value of the sub field subType + * @see subTypes() + */ + QVariant value( const QString& aSubType ) const; + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfContact &aContact ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfContact &aContact ); + + }; + + +/** + * Method for Externalization. Writes the SmfContact object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aContact The SmfContact object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfContact &aContact ); + +/** + * Method for Internalization. Reads a SmfContact object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aContact The SmfContact object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfContact &aContact ); + +// Make the class SmfContact known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfContact) + +#endif /* SMFCONTACT_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfcontacts/smfcontact_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfcontacts/smfcontact_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,52 @@ +/** + * 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 class implemented for implicit sharing of SmfContact class + * + */ + +#ifndef SMFCONTACT_P_H_ +#define SMFCONTACT_P_H_ + +#include + +using namespace QtMobility; + +class SmfContactPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfContactPrivate( ) { m_details.clear(); } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfContactPrivate( const SmfContactPrivate &aOther ) : + QSharedData ( aOther ), + m_details ( aOther.m_details ) { } + + /** + * Destructor + */ + ~SmfContactPrivate( ); + + QVariantMap m_details;// contact details + +}; + +#endif /* SMFCONTACT_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfcontacts/smfgroup.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfcontacts/smfgroup.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,110 @@ +/** + * 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: + * The group class represents an instance of a group as per SN site terminolgy + * + */ + +#ifndef SMFGROUP_H_ +#define SMFGROUP_H_ + +#include +#include +#include +#include + +class SmfGroupPrivate; + + +/** + * @ingroup smf_common_group + * The group class represents an instance of a group as per SN site terminolgy + */ +class SMFCLIENT_EXPORT SmfGroup : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param list The list of members in the group + */ + SmfGroup( QList* list = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfGroup( const SmfGroup &aOther ); + + /** + * Destructor + */ + ~SmfGroup( ); + +public slots: + /** + * Method to get the list of members in the group + * @return The list of members in the group + */ + QList members( ) const; + + /** + * Method to get the name of the group + * @return The name of the group + */ + QString name( ) const; + + /** + * Method to get the id of the group + * @return The ID value + */ + QString id( ) const; + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfGroup &aGroup ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfGroup &aGroup ); + + }; + + +/** + * Method for Externalization. Writes the SmfGroup object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aGroup The SmfGroup object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfGroup &aGroup ); + +/** + * Method for Internalization. Reads a SmfGroup object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aGroup The SmfGroup object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfGroup &aGroup); + +// Make the class SmfGroup known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfGroup) + +#endif /* SMFGROUP_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfcontacts/smfgroup_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfcontacts/smfgroup_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,56 @@ +/** + * 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 class implemented for implicit sharing of SmfGroup class + * + */ + +#ifndef SMFGROUP_P_H_ +#define SMFGROUP_P_H_ + +#include +#include + +class SmfGroupPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfGroupPrivate( ) { m_members = NULL; m_groupName.clear(); m_groupId.clear(); } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfGroupPrivate( const SmfGroupPrivate &aOther ) : + QSharedData ( aOther ), + m_members ( aOther.m_members ), + m_groupName ( aOther.m_groupName ), + m_groupId ( aOther.m_groupId ) { } + + /** + * Destructor + */ + ~SmfGroupPrivate( ); + + QList *m_members; // members in the group + QString m_groupName; + QString m_groupId; + // Other details to be added +}; + + +#endif /* SMFGROUP_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfcontacts/smfpost.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfcontacts/smfpost.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,156 @@ +/** + * 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: + * The post class represents an instance of a post to a SN site + * + */ + +#ifndef SMFPOST_H_ +#define SMFPOST_H_ + +#include +#include +#include +#include +#include +#include + +class SmfPostPrivate; + + +/** + * @ingroup smf_common_group + * The post class represents an instance of a post to a SN site + */ +class SMFCLIENT_EXPORT SmfPost : public QTextDocument + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param text Text + * @param aParent The parent object + */ + SmfPost( QString text,QObject *aParent = 0 ); + + /** + * Constructor + * @param aText The post's text + * @param aImage The post's image + * @param aUrl The post's url + */ + SmfPost( QString aTitle, QString aDesc, QImage aImage, QUrl aUrl ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfPost( const SmfPost &aOther ); + + /** + * Destructor + */ + ~SmfPost( ); + + /** + * Method to get the title of the post + * @return The post's title + */ + QString title( ) const; + + /** + * Method to get the description of the post + * @return The post's description + */ + QString description( ) const; + + /** + * Method to get the image of the post + * @return The post's image + */ + QImage image( ) const; + + /** + * Method to get the url of the post + * @return The post's url + */ + QUrl url( ) const; + + /** + * Method to get the id of the post + * @return The ID value + */ + QString id( ) const; + + /** + * Method to set the title of the post + * @param aTitle The post's new title + */ + void setTitle( const QString &aTitle ); + + /** + * Method to set the description of the post + * @param aDesc The post's new description + */ + void setDescription( const QString &aDesc ); + + /** + * Method to set the image of the post + * @param aPic The post's image + */ + void setImage( const QImage& aPic ); + + /** + * Method to set the url of the post + * @param aUrl The post's url + */ + void setUrl( QUrl& aUrl ); + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfPost &aPost ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfPost &aPost ); + + }; + + +/** + * Method for Externalization. Writes the SmfPost object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aPost The SmfPost object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfPost &aPost ); + +/** + * Method for Internalization. Reads a SmfPost object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aPost The SmfPost object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfPost &aPost); + +// Make the class SmfPost known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfPost) + +#endif /* SMFPOST_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfcontacts/smfpost_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfcontacts/smfpost_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,70 @@ +/** + * 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 class implemented for implicit sharing of SmfPost class + * + */ + +#ifndef SMFPOST_P_H_ +#define SMFPOST_P_H_ + +#include + +class SmfPostPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfPostPrivate( ) { m_title.clear(); m_desc.clear(); m_url.clear(); m_postId.clear(); } + + /** + * Constructor + */ + SmfPostPrivate( QString aTitle, QString aDesc, QImage aImage, QUrl aUrl ) + { + m_title = aTitle; + m_desc = aDesc; + m_image = aImage; + m_url = aUrl; + m_postId.clear(); + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfPostPrivate( const SmfPostPrivate &aOther ) : + QSharedData ( aOther ), + m_title ( aOther.m_title ), + m_desc ( aOther.m_desc ), + m_image ( aOther.m_image ), + m_url ( aOther.m_url ), + m_postId ( aOther.m_postId ) { } + + /** + * Destructor + */ + ~SmfPostPrivate( ); + + QString m_title; // title + QString m_desc; // description + QImage m_image; // image + QUrl m_url; // url + QString m_postId; // post's unique Id + +}; + +#endif /* SMFPOST_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfdes.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfdes.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,72 @@ +/** + * 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: + * Intro Page + * + * @ref smf_high_level_design + */ + +/** + * @mainpage SMF (Social Mobile Framework Interfaces) + * @defgroup smf_high_level_design SMF high level design + * + * Social Mobile Framework is a application level framework which allows Qt Applications + * use the common web APIs to perform social web activities. + * + * Product name is "SMF" + * + * For details please refer to http://developer.symbian.org/wiki/index.php/Social_Mobile_Framework + * + * @section smf_interfaces SMF Interfaces + * + * There are two sets of interfaces - + * @subsection smf_client_interfaces Client Interfaces + * - Client Applications (e.g. Media Player, Contacts, Game) uses these APIs to access SMF. see @ref smf_client_group + * + * @subsection smf_plugin_interfaces Plugin Interfaces + * - Service Providers (e.g. Facebook, Flickr, last.fm) implements these APIs to provide service to SMF - see @ref smf_plugin_group + * + * Currently, @ref smf_client_interfaces and @ref smf_plugin_interfaces are defined for remote contacts, remote + * image gallery and remote music services. There are common classes defined for holding data accross clients + * and plugins, present in inc\common, see - @ref smf_common_group + * + * + * @section smf_client_usage Client Usage Example + * - This shows how to use the SMF client APIs in applications, e.g. Client can define suitable Models using lists returned by these APIs + * - how to fetch a list of contacts from a remote server e.g. Facebook, see @ref MyApplication::displayFriends() + * - how to get a @ref QContact from a SmfContacts see @ref MyApplication::showlist() + * - how to get a list of images from a remote gallery e.g. Flickr.com, see @ref MyApplication::displayGallery() + * - how to post privately to a contact see @ref MyApplication::postUpdate() + * - how to tell others about the music you are currently listen to, see @ref MyApplication::updateCurrentPlaying() + * + * @section smf_sample_plugin Sample Plugin From Service provider + * - This shows how to write a plugin for extending SMF service. Authentication Application also needs to be provided for these plugins. + * - how to create request to be sent to a remote server e.g. Flickr.com, see @ref SamplePlugin::pictures() + * - how to implement posting of comment on a picture to Flickr.com, @ref SamplePlugin::postComment() + * - how to parse the response that arrived from Flickr.com, see @ref SamplePlugin::responseAvailable() + * - how to use JSON parsing from SmfPluginUtil, see @ref SamplePlugin::responseAvailable() + * + * @section smf_dependency Dependency + * SMF uses QtMobility for mainly contacts information, see QtMobility project. + */ +/** + * @defgroup smf_common_group Common Data Classes + */ +/** + * @defgroup smf_client_group Client Classes + */ +/** + * @defgroup smf_plugin_group Plugin Classes + */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfevent/smfevent.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfevent/smfevent.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,169 @@ +/** + * 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: + * The SmfEvent class represents an event + * + */ + +#ifndef SMFEVENT_H_ +#define SMFEVENT_H_ + +#include +#include +#include +#include +#include +#include + +class SmfEventPrivate; + +/** + * @ingroup smf_common_group + * The event class represents an event + */ +class SMFCLIENT_EXPORT SmfEvent : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfEvent( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfEvent( const SmfEvent &aOther ); + + /** + * Destructor + */ + ~SmfEvent( ); + + /** + * Method to get the event name + * @return The event name + */ + QString title( ) const; + + /** + * Method to get the event date and time + * @return The date and time of the event + */ + QDateTime eventDateTime( ) const; + + /** + * Method to get the event duration + * @return The duration of the event + */ + QTime duration( ) const; + + /** + * Method to get the artist names + * @return The list of artists in the event + */ + SmfArtists artists( ) const; + + /** + * Method to get the venue of the event + * @return The venue of the event + */ + SmfPlace venue( ) const; + + /** + * Method to get the URL for getting tickets for the event + * @return The Url for getting ticket for the event + */ + QUrl ticketUrl( ) const; + + /** + * Method to get the id of the event + * @return The ID value + */ + QString id( ) const; + + /** + * Method to set the event name + * @param aName The new event name + */ + void setTitle( const QString &aName ); + + /** + * Method to set the event date and time + * @param aDateTime The new date and time of the event + * + */ + void setEventDateTime( const QDateTime &aDateTime ); + + /** + * Method to set the event duration + * @param aDuration The new duration of the event + * + */ + void setDuration( const QTime &aDuration ); + + /** + * Method to set the artist + * @param aArtists The new artists in the event + */ + void setArtists( const SmfArtists &aArtists ); + + /** + * Method to set the venue name + * @param aVenue The new venue of the event + */ + void setVenue( const SmfPlace &aVenue ); + + /** + * Method to set the URL for getting tickets for the event + * @param aUrl The new Url for getting ticket for the event + */ + void setTicketUrl( const QUrl &aUrl ); + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfEvent &aEvent ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfEvent &aEvent ); + + }; + + +/** + * Method for Externalization. Writes the SmfEvent object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aEvent The SmfEvent object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfEvent &aEvent ); + +/** + * Method for Internalization. Reads a SmfEvent object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aEvent The SmfEvent object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfEvent &aEvent); + +#endif /* SMFEVENT_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfevent/smfevent_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfevent/smfevent_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,71 @@ +/** + * 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 class implemented for implicit sharing of SmfEvent class + * + */ + +#ifndef SMFEVENT_P_H_ +#define SMFEVENT_P_H_ + + +#include +#include +#include +#include + +class SmfEventPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfEventPrivate( ) { + m_name.clear(); + m_url.clear(); + m_eventId.clear(); + + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfEventPrivate( const SmfEventPrivate &aOther ) : + QSharedData ( aOther ), + m_name ( aOther.m_name ), + m_dateTime ( aOther.m_dateTime ), + m_duration ( aOther.m_duration ), + m_artists ( aOther.m_artists ), + m_venue ( aOther.m_venue ), + m_url ( aOther.m_url ), + m_eventId ( aOther.m_eventId ) { } + + /** + * Destructor + */ + ~SmfEventPrivate( ); + + QString m_name; // event name + QDateTime m_dateTime; // event date and time + QTime m_duration; // event duration + SmfArtists m_artists; // event artist names + SmfPlace m_venue; // venue of the event + QUrl m_url; // ticket url + QString m_eventId; + +}; + +#endif /* SMFEVENT_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfglobal.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfglobal.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,284 @@ +/** + * 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: + * The smfglobal.h files contains all global data common to Smf framework + * + */ + +#ifndef SMFGLOBAL_H_ +#define SMFGLOBAL_H_ + +#include +#include +#include + +/** + * Exact definition to be decided later + */ +#define SMF_SERVICE_NAME(INTERFACE,INTERFACENAME) + +/** + * Indicates first page for a web query + */ +const int SMF_FIRST_PAGE=0; + +/** + * Default value for per page item for web queries + */ +const int SMF_ITEMS_PER_PAGE=10; + + +/** + * Enum declaration for Network status information + */ +enum SmfNetworkStatus + { + SmfNetworkConnectedHome = 0, + SmfNetworkConnectedRoaming, // value = 1 + SmfNetworkStateNotKnown, // value = 2 + SmfNetworkConnected, // value = 3 + SmfNetworkNotConnected // value = 4 + }; + +/** + * Enum declaration for result of transport initialize operation + */ +enum SmfTransportInitializeResult + { + SmfTransportInitNetworkNotAvailable = 0, + SmfTransportInitRoamingNetworkUsageNotEnabled, // value = 1 + SmfTransportInitNoError // value = 2 + }; + +/** + * The enumeration used to indicate result of transport to the plugins + */ +enum SmfTransportResult + { + SmfTransportOpNoError = 0, + SmfTransportOpConnectionRefusedError, + SmfTransportOpRemoteHostClosedError, + SmfTransportOpHostNotFoundError, + SmfTransportOpTimeoutError, + SmfTransportOpOperationCanceledError, + SmfTransportOpSslHandshakeFailedError, + SmfTransportOpProxyConnectionRefusedError, + SmfTransportOpProxyConnectionClosedError, + SmfTransportOpProxyNotFoundError, + SmfTransportOpProxyTimeoutError, + SmfTransportOpProxyAuthenticationRequiredError, + SmfTransportOpContentAccessDenied, + SmfTransportOpContentOperationNotPermittedError, + SmfTransportOpContentNotFoundError, + SmfTransportOpAuthenticationRequiredError, + SmfTransportOpContentReSendError, + SmfTransportOpProtocolUnknownError, + SmfTransportOpProtocolInvalidOperationError, + SmfTransportOpUnknownNetworkError, + SmfTransportOpUnknownProxyError, + SmfTransportOpUnknownContentError, + SmfTransportOpProtocolFailure, + SmfTransportOpUnknownError, + SmfTransportOpIAPChanged, + SmfTransportOpCancelled + }; + +/** + * The enumeration used to indicate result of plugin manager operations + */ +enum SmfPluginManagerResult + { + SmfPluginNoError = 0, + SmfPluginNotFound, + SmfPluginNotLoaded, + SmfPluginLoaded, + SmfPluginLoadError, + SmfPluginAuthorised, + SmfPluginNotAuthorised, + SmfPluginRequestCreated, + SmfPluginRequestCreationFailed, + SmfPluginUnknownService, + SmfPluginRequestSendingFailed, + SmfPluginSOPCheckFailed, + SmfPluginServiceError, + SmfPluginResponseParsed, + SmfPluginResponseParseFailure, + SmfPluginSendRequestAgain, + SmfPluginUnknownError + }; + + +/** + * The enumeration used to denote errors reported by plugin + * Smf can't continue without handling these errors + */ +enum SmfPluginError + { + SmfPluginErrNone = 0, + SmfPluginErrTooManyRequest, + SmfPluginErrRequestQuotaExceeded, + SmfPluginErrInvalidRequest, + SmfPluginErrUserNotLoggedIn, + SmfPluginErrAuthenticationExpired, + SmfPluginErrPermissionDenied, + SmfPluginErrInvalidApplication, + SmfPluginErrServiceUnavailable, + SmfPluginErrServiceTemporaryUnavailable, + SmfPluginErrFormatNotSupported, + SmfPluginErrDataSizeExceeded + }; + +/** + * The enumeration used to track the plugin methods return type + */ +enum SmfPluginRetType + { + SmfSendRequestAgain = 0, + SmfRequestComplete, + SmfRequestError + }; + + +/** + * The enumeration used to indicate the type of network operation done + */ +enum SmfRequestOperation + { + SmfContactGetFriends = 0, + SmfContactGetFollowers, + SmfContactSearch, + SmfContactSearchNear, + SmfContactGetGroups, + SmfContactSearchInGroup, + SmfContactRetrievePosts, + SmfContactPost, + SmfContactUpdatePost, + SmfContactPostDirected, + SmfContactCommentOnAPost, + SmfContactPostAppearence, + SmfContactSharePost, + SmfMusicGetLyrics, + SmfMusicGetSubtitle, + SmfMusicGetEventsOnLoc, + SmfMusicGetVenueOnLoc, + SmfMusicGetEventsOnVenue, + SmfMusicPostEvents, + SmfMusicGetRecommendations, + SmfMusicGetTracks, + SmfMusicGetTrackInfo, + SmfMusicGetStores, + SmfMusicPostCurrentPlaying, + SmfMusicGetUserInfo, + SmfMusicSearchUser, + SmfMusicGetPlaylists, + SmfMusicGetPlaylistsOfUser, + SmfMusicAddToPlaylist, + SmfMusicPostCurrentPlayingPlaylist, + SmfPictureGetPictures, + SmfPictureDescription, + SmfPictureUpload, + SmfPictureMultiUpload, + SmfPicturePostComment + + }; + + +/** + * The structure used to hold the request created by the plugins + */ +struct SmfPluginRequestData + { + /** + * Indicates the type of operation performed, like getting Friends + * list, upload image etc + */ + SmfRequestOperation iRequestType; + + /** + * The QNetworkRequest that has to be filled up by the plugins + */ + QNetworkRequest iNetworkRequest; + + /** + * The data to be posted in case of HTTP POST operation + */ + QBuffer *iPostData; + + /** + * The type of HTTP transaction, like GET, POST etc + */ + QNetworkAccessManager::Operation iHttpOperationType; + + }; + +/** + * The structure used to hold the request created by the plugins + */ +struct SmfResultPage + { + /** + * The total number of items + */ + uint iTotalItems; + + /** + * The number of items per page + */ + uint iItemsPerPage; + + /** + * The total number of pages + */ + uint iTotalPages; + + /** + * The current fetched page number + */ + uint iPageNum; + }; + +/** + * The structure used to track the data usage of each plugins + */ +struct SmfPluginDataUsage + { + /** + * Application that called the plugin + */ + QString iAppName; + + /** + * Interface implemented by the plugin + */ + QString iInterfaceName; + + /** + * The service provider + */ + QString iServiceProviderName; + + /** + * number of bytes sent for this plugin + */ + uint iBytesSent; + + /** + * number of bytes received for this plugin + */ + uint iBytesReceived; + + }; + +#endif /* SMFGLOBAL_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfalbum.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfalbum.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,119 @@ +/** + * 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: + * The SmfAlbum class represents a music album + * + */ +#ifndef SMFALBUM_H_ +#define SMFALBUM_H_ + +#include +#include +#include +#include + +class SmfAlbumPrivate; +class SmfArtists; + +/** + * @ingroup smf_common_group + * The SmfAlbum class represents a music album + */ +class SMFCLIENT_EXPORT SmfAlbum : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfAlbum( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfAlbum( const SmfAlbum &aOther ); + + /** + * Overloaded = operator + * @param aOther The reference object + * @return The target reference value + */ + SmfAlbum& operator=( const SmfAlbum &aOther ); + + /** + * Destructor + */ + ~SmfAlbum( ); + + /** + * Method to get the album name + * @return The album name + */ + QString name( ) const; + + /** + * Method to get the album's image + * @return The album's image + */ + QImage image( ) const; + + /** + * Method to get the artist names + * @return The list of artists in the album + */ + SmfArtists artists( ) const; + + /** + * Method to get the id of the album + * @return The ID value + */ + QString id( ) const; + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfAlbum &aAlbum ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfAlbum &aAlbum ); + + }; + + +/** + * Method for Externalization. Writes the SmfAlbum object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aAlbum The SmfAlbum object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfAlbum &aAlbum ); + +/** + * Method for Internalization. Reads a SmfAlbum object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aAlbum The SmfAlbum object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfAlbum &aAlbum); + + +#endif /* SMFALBUM_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfalbum_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfalbum_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,62 @@ +/** + * 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 class implemented for implicit sharing of SmfAlbum class + * + */ + +#ifndef SMFALBUM_P_H_ +#define SMFALBUM_P_H_ + +#include +#include +#include + +class SmfAlbumPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfAlbumPrivate( ) { + m_name.clear(); + m_albumId.clear(); + + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfAlbumPrivate( const SmfAlbumPrivate &aOther ) : + QSharedData ( aOther ), + m_name ( aOther.m_name ), + m_image ( aOther.m_image ), + m_artists ( aOther.m_artists ), + m_albumId ( aOther.m_albumId ) { } + + /** + * Destructor + */ + ~SmfAlbumPrivate( ); + + QString m_name; // album name + QImage m_image; // album image + SmfArtists m_artists; // album's artists + QString m_albumId; + +}; + +#endif /* SMFALBUM_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfartists.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfartists.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,113 @@ +/** + * 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: + * The SmfArtists class represents the artists in a track or an album + * + */ + +#ifndef SMFARTISTS_H_ +#define SMFARTISTS_H_ + +#include +#include +#include +#include +#include + +class SmfArtistsPrivate; + +/** + * @ingroup smf_common_group + * The SmfArtists class represents the artists in a track or an album + */ +class SMFCLIENT_EXPORT SmfArtists : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfArtists( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfArtists( const SmfArtists &aOther ); + + /** + * Overloaded = operator + * @param aOther The reference object + */ + SmfArtists& operator=( const SmfArtists &aOther ); + + /** + * Destructor + */ + ~SmfArtists( ); + + /** + * Method to get the artists names + * @return The list of artists + */ + QStringList names( ) const; + + /** + * Method to get the image of the artists + * @return The image of te artists + */ + QImage image( ) const; + + /** + * Method to get the url of the artists + * @return The url of the artists + */ + QUrl url( ) const; + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfArtists &aArtists ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfArtists &aArtists ); + + }; + + +/** + * Method for Externalization. Writes the SmfArtists object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aArtists The SmfArtists object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfArtists &aArtists ); + +/** + * Method for Internalization. Reads a SmfArtists object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aArtists The SmfArtists object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfArtists &aArtists); + + +#endif /* SMFARTISTS_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfartists_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfartists_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,60 @@ +/** + * 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 class implemented for implicit sharing of SmfArtists class + * + */ + +#ifndef SMFARTISTS_P_H_ +#define SMFARTISTS_P_H_ + +#include +#include +#include +#include + +class SmfArtistsPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfArtistsPrivate( ) { + m_names.clear(); + m_url.clear(); + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfArtistsPrivate( const SmfArtistsPrivate &aOther ) : + QSharedData ( aOther ), + m_names ( aOther.m_names ), + m_image ( aOther.m_image ), + m_url ( aOther.m_url ) { } + + /** + * Destructor + */ + ~SmfArtistsPrivate( ); + + QStringList m_names; // artist names + QImage m_image; // image + QUrl m_url; // url +}; + + +#endif /* SMFARTISTS_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smflyrics.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smflyrics.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,114 @@ +/** + * 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: + * The SmfLyrics class represents an instance of a music track's lyrics + * + */ + +#ifndef SMFLYRICS_H_ +#define SMFLYRICS_H_ + +#include +#include +#include +#include + +class SmfLyricsPrivate; + +/** + * @ingroup smf_common_group + * The lyrics class represents an instance of a music track's lyrics + */ +class SMFCLIENT_EXPORT SmfLyrics : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfLyrics( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfLyrics( const SmfLyrics &aOther ); + + /** + * Destructor + */ + ~SmfLyrics( ); + + /** + * Method to get the lyrics + * @return The lyrics data + */ + QByteArray lyrics( ) const; + + /** + * Method to get the language + * @return The language + */ + QString language( ) const; + + /** + * Method to get the release year + * @return The release year + */ + QDateTime releaseYear( ) const; + + /** + * Method to get the id of the lyrics + * @return The ID value + */ + QString id( ) const; + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfLyrics &aLyrics ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfLyrics &aLyrics ); + + }; + + +/** + * Method for Externalization. Writes the SmfLyrics object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aLyrics The SmfLyrics object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfLyrics &aLyrics ); + +/** + * Method for Internalization. Reads a SmfLyrics object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aLyrics The SmfLyrics object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfLyrics &aLyrics); + +// Make the class SmfLyrics known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfLyrics) + +#endif /* SMFLYRICS_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smflyrics_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smflyrics_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,61 @@ +/** + * 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 class implemented for implicit sharing of SmfLyrics class + * + */ + +#ifndef SMFLYRICS_P_H_ +#define SMFLYRICS_P_H_ + +#include +#include + +class SmfLyricsPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfLyricsPrivate( ) { + m_lyrics.clear(); + m_language.clear(); + m_lyricsId.clear(); + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfLyricsPrivate( const SmfLyricsPrivate &aOther ) : + QSharedData ( aOther ), + m_lyrics ( aOther.m_lyrics ), + m_language ( aOther.m_language ), + m_releaseYr ( aOther.m_releaseYr ), + m_lyricsId ( aOther.m_lyricsId ) { } + + /** + * Destructor + */ + ~SmfLyricsPrivate( ); + + QByteArray m_lyrics; // lyrics data + QString m_language; // language + QDateTime m_releaseYr; // release year + QString m_lyricsId; // lyrics id + +}; + +#endif /* SMFLYRICS_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfmusicfingerprint.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfmusicfingerprint.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,92 @@ +/** + * 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: + * The SmfMusicFingerPrint class represents a music finger print used in searches + * + */ + +#ifndef SMFMUSICFINGERPRINT_H_ +#define SMFMUSICFINGERPRINT_H_ + +#include +#include +#include + +class SmfMusicFingerPrintPrivate; + +/** + * @ingroup smf_common_group + * The musicfingerprint class represents a music finger print used in searches + */ +class SMFCLIENT_EXPORT SmfMusicFingerPrint : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfMusicFingerPrint( QObject *aParent = 0 ); + + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfMusicFingerPrint( const SmfMusicFingerPrint &aOther ); + + /** + * Destructor + */ + ~SmfMusicFingerPrint( ); + + /** + * GEt the music finger print data + * @return The music finger print data + */ + QByteArray musicFingerPrint ( ) const; + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfMusicFingerPrint &aMFP ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfMusicFingerPrint &aMFP ); + + }; + + +/** + * Method for Externalization. Writes the SmfMusicFingerPrint object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aMFP The SmfMusicFingerPrint object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfMusicFingerPrint &aMFP ); + +/** + * Method for Internalization. Reads a SmfMusicFingerPrint object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aMFP The SmfMusicFingerPrint object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfMusicFingerPrint &aMFP); + +#endif /* SMFMUSICFINGERPRINT_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfmusicfingerprint_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfmusicfingerprint_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,51 @@ +/** + * 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 class implemented for implicit sharing of SmfMusicFingerPrint class + * + */ + +#ifndef SMFMUSICFINGERPRINT_P_H_ +#define SMFMUSICFINGERPRINT_P_H_ + +#include + +class SmfMusicFingerPrintPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfMusicFingerPrintPrivate( ); + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfMusicFingerPrintPrivate( const SmfMusicFingerPrintPrivate &aOther ) : + QSharedData ( aOther ), + m_fingerPrintData ( aOther.m_fingerPrintData ) { } + + /** + * Destructor + */ + ~SmfMusicFingerPrintPrivate( ); + + QByteArray m_fingerPrintData; + +}; + + +#endif /* SMFMUSICFINGERPRINT_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfmusicprofile.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfmusicprofile.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,127 @@ +/** + * 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: + * The music profile class represents a user's profile in music site + * + */ + +#ifndef SMFMUSICPROFILE_H_ +#define SMFMUSICPROFILE_H_ + +#include +#include +#include +#include +#include + +class SmfMusicProfilePrivate; + +/** + * @ingroup smf_common_group + * The music profile class represents a user's profile in music site + */ +class SMFCLIENT_EXPORT SmfMusicProfile : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfMusicProfile( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfMusicProfile( const SmfMusicProfile &aOther ); + + /** + * Destructor + */ + ~SmfMusicProfile( ); + + /** + * Method to get the user's used tracks + * @return The users track list + */ + QList musicUsageInfo( ) const; + + /** + * Method to get the user's interested tracks + * @return The users interested track list + */ + QList interestInfo( ) const; + + /** + * Method to get the user events as list of SmfEvents + * @return The list of events + */ + QList userEvents( ) const; + + /** + * Method to get the id of the music profile + * @return The ID value + */ + QString id( ) const; + + /** + * Method to set the user's used tracks + * @param aUsage The users new track list + */ + void setMusicUsageInfo( const QList& aUsage ); + + /** + * Method to set the user's interested tracks + * @param aInterest The users new interested track list + */ + void setInterestInfo( const QList& aInterest ); + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfMusicProfile &aProfile ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfMusicProfile &aProfile ); + + }; + + +/** + * Method for Externalization. Writes the SmfMusicProfile object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aProfile The SmfMusicProfile object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfMusicProfile &aProfile ); + +/** + * Method for Internalization. Reads a SmfMusicProfile object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aProfile The SmfMusicProfile object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfMusicProfile &aProfile); + +// Make the class SmfMusicProfile known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfMusicProfile) + +#endif /* SMFMUSICPROFILE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfmusicprofile_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfmusicprofile_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,64 @@ +/** + * 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 class implemented for implicit sharing of SmfMusicProfile class + * + */ + +#ifndef SMFMUSICPROFILE_P_H_ +#define SMFMUSICPROFILE_P_H_ + + +#include +#include +#include + +class SmfMusicProfilePrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfMusicProfilePrivate( ) { + m_usage.clear(); + m_interest.clear(); + m_events.clear(); + m_profileId.clear(); + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfMusicProfilePrivate( const SmfMusicProfilePrivate &aOther ) : + QSharedData ( aOther ), + m_usage ( aOther.m_usage ), + m_interest ( aOther.m_interest ), + m_events ( aOther.m_events ), + m_profileId ( aOther.m_profileId ) { } + + /** + * Destructor + */ + ~SmfMusicProfilePrivate( ); + + QList m_usage; // usage tracks + QList m_interest;// interested tracks + QList m_events; // events list + QString m_profileId; + +}; + +#endif /* SMFMUSICPROFILE_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfmusicrating.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfmusicrating.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,124 @@ +/** + * 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: + * The music rating class represents an instance of rating + * about a music track + * + */ + +#ifndef SMFMUSICRATING_H_ +#define SMFMUSICRATING_H_ + +#include +#include +#include + +class SmfTrackInfo; +class SmfMusicRatingPrivate; + +/** + * Indicates range of values to represent ratings, + * SP should normalize their rating value to this scale + */ +const int SMF_MAX_RATING = 10; +const int SMF_MIN_RATING = 0; + +/** + * @ingroup smf_common_group + * The music rating class represents an instance of rating + * about a music track + */ +class SMFCLIENT_EXPORT SmfMusicRating : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + * (parent should be of type SmfTrackInfo) + */ + SmfMusicRating(SmfTrackInfo *aParent = 0); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfMusicRating( const SmfMusicRating &aOther ); + + /** + * Overloaded = operator + * @param aOther The reference object + */ + SmfMusicRating& operator=( const SmfMusicRating &aOther ); + + /** + * Destructor + */ + ~SmfMusicRating( ); + + /** + * Method to get the rating + * @return The rating value + */ + int rating( ) const; + + /** + * Method to get the max rating + * @return The max rating value + */ + int maxRating( ) const; + + /** + * Method to get the min rating + * @return The min rating value + */ + int minRating( ) const; + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfMusicRating &aMusicRating ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfMusicRating &aMusicRating ); + + }; + + +/** + * Method for Externalization. Writes the SmfMusicRating object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aMusicRating The SmfMusicRating object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfMusicRating &aMusicRating ); + +/** + * Method for Internalization. Reads a SmfMusicRating object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aMusicRating The SmfMusicRating object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfMusicRating &aMusicRating); + +// Make the class SmfMusicRating known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfMusicRating) + +#endif /* SMFMUSICRATING_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfmusicrating_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfmusicrating_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,56 @@ +/** + * 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 class implemented for implicit sharing of SmfMusicRating class + * + */ + +#ifndef SMFMUSICRATING_P_H_ +#define SMFMUSICRATING_P_H_ + +#include + +class SmfMusicRatingPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfMusicRatingPrivate( ) { + m_rating = 0; + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfMusicRatingPrivate( const SmfMusicRatingPrivate &aOther ) : + QSharedData ( aOther ), + m_rating ( aOther.m_rating ), + m_max ( aOther.m_max ), + m_min ( aOther.m_min ) { } + + /** + * Destructor + */ + ~SmfMusicRatingPrivate( ); + + int m_rating; // rating + int m_max; // max rating + int m_min; // min rating + +}; + +#endif /* SMFMUSICRATING_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfplaylist.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfplaylist.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,132 @@ +/** + * 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: + * The playlist class represents an instance of a playlist + * + */ + +#ifndef SMFPLAYLIST_H_ +#define SMFPLAYLIST_H_ + +#include +#include +#include +#include + +class SmfPlaylistPrivate; + +/** + * @ingroup smf_common_group + * The playlist class represents an instance of a playlist + */ +class SMFCLIENT_EXPORT SmfPlaylist : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfPlaylist( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfPlaylist( const SmfPlaylist &aOther ); + + /** + * Destructor + */ + ~SmfPlaylist( ); + + /** + * Method to get the list of tracks in the playlist + * @return The list of tracks in the playlist + */ + QList trackList( ) const; + + /** + * Method to get the playlist title + * @return The title of the playlist + */ + QString playListTitle( ) const; + + /** + * Method to get the creation date of the playlist + * @return The date and time of creation of the playlist + */ + QDateTime creationDate( ) const; + + /** + * Method to get the id of the playlist + * @return The ID value + */ + QString id( ) const; + + /** + * Method to set the list of tracks in the playlist + * @param aList The new list of tracks in the playlist + */ + void setTrackList( const QList &aList ); + + /** + * Method to set the playlist title + * @param aTitle The new title of the playlist + */ + void setPlayListTitle( const QString &aTitle ); + + /** + * Method to set the creation date of the playlist + * @param aDate The new date and time of creation of the playlist + */ + void setCreationDate( const QDateTime &aDate ); + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfPlaylist &aPlaylist ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfPlaylist &aPlaylist ); + + }; + + +/** + * Method for Externalization. Writes the SmfPlaylist object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aPlaylist The SmfPlaylist object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfPlaylist &aPlaylist ); + +/** + * Method for Internalization. Reads a SmfPlaylist object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aPlaylist The SmfPlaylist object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfPlaylist &aPlaylist); + +// Make the class SmfPlaylist known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfPlaylist) + +#endif /* SMFPLAYLIST_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfplaylist_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfplaylist_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,61 @@ +/** + * 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 class implemented for implicit sharing of SmfPlaylist class + * + */ + +#ifndef SMFPLAYLIST_P_H_ +#define SMFPLAYLIST_P_H_ + +#include +#include + +class SmfPlaylistPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfPlaylistPrivate( ) { + m_trackList.clear(); + m_title.clear(); + m_playlistId.clear(); + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfPlaylistPrivate( const SmfPlaylistPrivate &aOther ) : + QSharedData ( aOther ), + m_trackList ( aOther.m_trackList ), + m_title ( aOther.m_title ), + m_creationDate ( aOther.m_creationDate ), + m_playlistId ( aOther.m_playlistId ) { } + + /** + * Destructor + */ + ~SmfPlaylistPrivate( ); + + QList m_trackList;// list of tracks + QString m_title; // playlist name + QDateTime m_creationDate; // creation date + QString m_playlistId; + +}; + +#endif /* SMFPLAYLIST_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfsubtitle.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfsubtitle.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,138 @@ +/** + * 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: + * The subtitle class represents information about a track's subtitle + * + */ + +#ifndef SMFSUBTITLE_H_ +#define SMFSUBTITLE_H_ + +#include +#include +#include +#include +#include + +enum SmfSubtitleSearchFilterFields + { + SubtitleLanguage = 0, + SubtitleFrameRate, // value = 1 + SubtitleDuration, // value = 2 + SubtitleReleaseYear, // value = 3 + SubtitleAll = SubtitleLanguage | SubtitleFrameRate | + SubtitleDuration | SubtitleReleaseYear + }; +typedef QMap SmfSubtitleSearchFilter; + +class SmfSubtitlePrivate; + +/** + * @ingroup smf_common_group + * The subtitle class represents information about a track's subtitle + */ +class SMFCLIENT_EXPORT SmfSubtitle : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfSubtitle( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfSubtitle( const SmfSubtitle &aOther ); + + /** + * Destructor + */ + ~SmfSubtitle( ); + + /** + * Method to get the subtitle as a bytearray + * @return The subtitle content + */ + QByteArray subtitle( ) const; + + /** + * Method to get the language + * @return The language + */ + QString language( ) const; + + /** + * Method to get the frame rate + * @return the frame rate + */ + double frameRate( ) const; + + /** + * Method to get the duration + * @return the duration + */ + double duration( ) const; + + /** + * Method to get the release year + * @return The release year + */ + QDateTime releaseYear( ) const; + + /** + * Method to get the id of the subtitle + * @return The ID value + */ + QString id( ) const; + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfSubtitle &aSubtitle ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfSubtitle &aSubtitle ); + + }; + + +/** + * Method for Externalization. Writes the SmfSubtitle object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aSubtitle The SmfSubtitle object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfSubtitle &aSubtitle ); + +/** + * Method for Internalization. Reads a SmfSubtitle object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aSubtitle The SmfSubtitle object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfSubtitle &aSubtitle); + +// Make the class SmfSubtitle known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfSubtitle) + +#endif /* SMFSUBTITLE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smfsubtitle_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smfsubtitle_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,66 @@ +/** + * 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 class implemented for implicit sharing of SmfSubtitle class + * + */ + +#ifndef SMFSUBTITLE_P_H_ +#define SMFSUBTITLE_P_H_ + +#include +#include + +class SmfSubtitlePrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfSubtitlePrivate( ) { + m_language.clear(); + m_frameRate = 0; + m_duration = 0; + m_subtitleId.clear(); + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfSubtitlePrivate( const SmfSubtitlePrivate &aOther ) : + QSharedData ( aOther ), + m_subtitle ( aOther.m_subtitle ), + m_language ( aOther.m_language ), + m_frameRate ( aOther.m_frameRate ), + m_duration ( aOther.m_duration ), + m_releaseYr ( aOther.m_releaseYr ), + m_subtitleId ( aOther.m_subtitleId ) { } + + /** + * Destructor + */ + ~SmfSubtitlePrivate( ); + + QByteArray m_subtitle; // subtitle data + QString m_language; // language + double m_frameRate; // frame rate + double m_duration; // duration + QDateTime m_releaseYr; // release year + QString m_subtitleId; // subtitle id + +}; + +#endif /* SMFSUBTITLE_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smftrackinfo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smftrackinfo.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,209 @@ +/** + * 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: + * The track info class represents information about a music track + * + */ + +#ifndef SMFTRACKINFO_H_ +#define SMFTRACKINFO_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +class SmfTrackInfoPrivate; + +/** + * @ingroup smf_common_group + * The track info class represents information about a music track + */ +class SMFCLIENT_EXPORT SmfTrackInfo : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + * (parent should be of type SmfMusicServicePlugin) + */ + SmfTrackInfo(QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfTrackInfo( const SmfTrackInfo &aOther ); + + /** + * Destructor + */ + ~SmfTrackInfo( ); + + /** + * Method to get the id of the track + * @return The ID value + */ + QString id( ) const; + + /** + * Method to get the track title + * @return The title of the track + */ + QString title( ) const; + + /** + * Method to get the track album + * @return The album of the track + */ + SmfAlbum album( ) const; + + /** + * Method to get the track's artists + * @return The artists of the track + */ + SmfArtists artists( ) const; + + /** + * Method to get the genre of the track + * @return The genre of the track + */ + QString genre( ) const; + + /** + * Method to get the track's tag + * @return The tag of the track + */ + QStringList tags( ) const; + + /** + * Method to get the release year of the track + * @return The release year of the track + */ + QDateTime year( ) const; + + /** + * Method to get the track's rating + * @return The rating of the track + */ + SmfMusicRating rating( ) const; + + /** + * Method to get the comments on the track + * @return The comments on the track + */ + QStringList comments( ) const; + + /** + * Method to get the track's duration + * @return The duration of the track + */ + QTime duration( ) const; + + /** + * Method to set the track title + * @param aTitle The new title of the track + */ + void setTitle( const QString &aTitle ); + + /** + * Method to set the track album + * @param aAlbum The new album of the track + */ + void setAlbum( const SmfAlbum &aAlbum ); + + /** + * Method to set the track's artists + * @param aArtists The new artists of the track + */ + void setArtists( const SmfArtists &aArtists ); + + /** + * Method to set the genre of the track + * @param aGenre The new genre of the track + */ + void setGenre( const QString &aGenre ); + + /** + * Method to set the track's tag + * @param aTag The tag of the track + */ + void setTags( const QStringList &aTags ); + + /** + * Method to set the release year of the track + * @param aYear The new release year of the track + */ + void setYear( const QDateTime &aYear ); + + /** + * Method to set the track's rating + * @param aRating The new rating of the track + */ + void setRating( const SmfMusicRating &aRating ); + + /** + * Method to set the comments on the track + * @param aComment The new comment of the track + */ + void setComment( const QStringList &aComments ); + + /** + * Method to set the duration of the track + * @param aDuration The new duration of the track + */ + void setDuration( const QTime &aDuration ); + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfTrackInfo &aTrackInfo ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfTrackInfo &aTrackInfo ); + + }; + + +/** + * Method for Externalization. Writes the SmfTrackInfo object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aTrackInfo The SmfTrackInfo object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfTrackInfo &aTrackInfo ); + +/** + * Method for Internalization. Reads a SmfTrackInfo object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aTrackInfo The SmfTrackInfo object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfTrackInfo &aTrackInfo); + +// Make the class SmfTrackInfo known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfTrackInfo) + +#endif /* SMFTRACKINFO_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfmusic/smftrackinfo_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfmusic/smftrackinfo_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,80 @@ +/** + * 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 class implemented for implicit sharing of SmfTrackInfo class + * + */ + +#ifndef SMFTRACKINFO_P_H_ +#define SMFTRACKINFO_P_H_ + +#include +#include +#include +#include + +class SmfTrackInfoPrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfTrackInfoPrivate( int aMaxRating = 0, int aMinRating = 0 ) : m_rating(/*aMaxRating, aMinRating*/) + { + m_trackId.clear(); + m_title.clear(); + m_album.clear(); + m_artist.clear(); + m_genre.clear(); + m_tags.clear(); + m_comments.clear(); + } + + /** + * Copy Constructor + * @param aOther The reference object to be copy constructed + */ + SmfTrackInfoPrivate( const SmfTrackInfoPrivate &aOther ) : + QSharedData ( aOther ), + m_trackId ( aOther.m_trackId ), + m_title ( aOther.m_title ), + m_album ( aOther.m_album ), + m_artists ( aOther.m_artists ), + m_genre ( aOther.m_genre ), + m_tags ( aOther.m_tags ), + m_year ( aOther.m_year ), + m_rating ( aOther.m_rating ), + m_comments ( aOther.m_comments ), + m_duration ( aOther.m_duration ) { } + + /** + * Destructor + */ + ~SmfTrackInfoPrivate( ); + + QString m_trackId; // track id + QString m_title; // title + SmfAlbum m_album; // album + SmfArtists m_artists; // artist name + QString m_genre; // genre information + QStringList m_tags; // tag information + QDateTime m_year; // release year + SmfMusicRating m_rating;// rating + QStringList m_comments; // comments + QTime m_duration; // duration + +}; + +#endif /* SMFTRACKINFO_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfpictures/smfpicture.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfpictures/smfpicture.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,215 @@ +/** + * 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: + * The picture class represents an instance of a picture + * + */ + +#ifndef SMFPICTURE_H_ +#define SMFPICTURE_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +class SmfPicturePrivate; + +/** + * SmfPictureVisibility enumeration + */ +enum SmfPictureVisibility + { + SMFVisibilityFriend, + SMFVisibilityPersonal, + SMFVisibilityFamily, + SMFVisibilityGroup, + SMFVisibilityPublic + }; + +/** + * @ingroup smf_common_group + * The picture class represents an instance of a picture + */ +class SMFCLIENT_EXPORT SmfPicture : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfPicture( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfPicture( const SmfPicture &aOther ); + + /** + * CConstructs SmfPicture from QImage + * @param aOther The QImage + */ + SmfPicture( const QImage &image ); + + /** + * Destructor + */ + ~SmfPicture( ); + + /** + * Method to get the id of the picture + * @return The ID value + */ + QString id( ) const; + + /** + * Method to get a picture owner + * @return The owner of the picture + */ + QString owner( ) const; + + /** + * Method to get a picture title + * @return The title of the picture + */ + QString title( ) const; + + /** + * Method to get a picture description + * @return The description of the picture + */ + QString description( ) const; + + /** + * Method to get a visibility of a picture for public + * @return The visibility mode of this picture for others + */ + SmfPictureVisibility visibility( ) const; + + /** + * Method to get the date of posting the picture + * @return The posted date of the picture + */ + QDateTime postedDate( ) const; + + /** + * Method to get the comments for the picture + * @return The comments for the picture + */ + QStringList comments( ) const; + + /** + * Method to get the tags for the picture + * @return The tags for the picture + */ + QStringList tags( ) const; + + /** + * Method to get the url of the picture + * @return The url of the picture + */ + QUrl url( ) const; + + /** + * Method to get the picture data as QImage + * @return The picture as QImage + */ + QImage picture( ) const; + + /** + * Method to set a picture owner + * @param aOwner The owner of the picture + */ + void setOwner( const QString &aOwner ); + + /** + * Method to set a picture title + * @param aTitle The title of the picture + */ + void setTitle( const QString &aTitle ); + + /** + * Method to set a picture description + * @param aDescription The description of the picture + */ + void setDescription( const QString &aDescription ); + + /** + * Method to set a visibility of a picture for public + * @param aVisibility aVisibility The visibility mode of + * this picture for others + */ + void setVisibility( const SmfPictureVisibility &aVisibility ); + + /** + * Method to add comment on the picture + * @param aComment The comment for the picture + */ + void addComment( const QString &aComment ); + + /** + * Method to add tags for the picture + * @param aTag The tag for the picture + */ + void addTags( const QStringList &aTags ); + + /** + * Method to set the picture data as QImage + * @param aData The picture as QImage + */ + void setPicture( const QImage &aData ); + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfPicture &aPic ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfPicture &aPic ); + + }; + + +/** + * Method for Externalization. Writes the SmfPicture object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aPic The SmfPicture object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfPicture &aPic ); + +/** + * Method for Internalization. Reads a SmfPicture object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aPic The SmfPicture object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfPicture &aPic); + +// Make the class SmfPicture known to QMetaType, so that as to register it. +Q_DECLARE_METATYPE(SmfPicture) + +#endif /* SMFPICTURE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfpictures/smfpicture_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfpictures/smfpicture_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,99 @@ +/** + * 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 class implemented for implicit sharing of SmfPicture class + * + */ + +#ifndef SMFPICTURE_P_H_ +#define SMFPICTURE_P_H_ + + +#include +#include +#include +#include +#include +#include + +class SmfPicturePrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfPicturePrivate( ) { + m_photoId.clear(); + m_owner.clear(); + m_title.clear(); + m_description.clear(); + m_comments.clear(); + m_tags.clear(); + m_url.clear(); + m_caption.clear(); + } + /** + * Constructor + */ + SmfPicturePrivate( const QImage &aImage ) { + m_photoId.clear(); + m_owner.clear(); + m_title.clear(); + m_description.clear(); + m_comments.clear(); + m_tags.clear(); + m_url.clear(); + m_picture = aImage; + m_caption.clear(); + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfPicturePrivate( const SmfPicturePrivate &aOther ) : + QSharedData ( aOther ), + m_photoId ( aOther.m_photoId ), + m_owner ( aOther.m_owner ), + m_title ( aOther.m_title ), + m_description ( aOther.m_description ), + m_picVisibility ( aOther.m_picVisibility ), + m_postedOn ( aOther.m_postedOn ), + m_comments ( aOther.m_comments ), + m_tags ( aOther.m_tags ), + m_url ( aOther.m_url ), + m_picture ( aOther.m_picture ), + m_caption ( aOther.m_caption ) { } + + /** + * Destructor + */ + ~SmfPicturePrivate( ); + + QString m_photoId; // unique ID of the picture, service provider specific + QString m_owner; // owner of the picture + QString m_title; // picture title + QString m_description;// description + SmfPictureVisibility m_picVisibility; // picture visibility + QDateTime m_postedOn;// date posted + QStringList m_comments;// comments + QStringList m_tags; // tags + QUrl m_url; // url + QImage m_picture; // picture data as bytearray + QString m_caption; // caption + +}; + +#endif /* SMFPICTURE_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfplace/smfplace.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfplace/smfplace.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,204 @@ +/** + * 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: + * The SmfPlace class represents a place and its related information + * Note: This class has dependencies on QtMobility project + * + */ + +#ifndef SMFPLACE_H_ +#define SMFPLACE_H_ + +#include +#include // Qt mobility class +#include +#include +#include + +using namespace QtMobility; // Qt mobility - namespace + +typedef enum +{ + SearchByStreet = 0x00, + SearchByLocality, + SearchByPostOffice, + SearchByTown, + SearchByRegion, + SearchByState, + SearchByCountry +}SmfLocationSearchBoundary; + +class SmfPlacePrivate; + +/** + * @ingroup smf_common_group + * The SmfPlace class represents a place and its related information. + * + * Note: This class has dependencies on QtMobility project + */ +class SMFCLIENT_EXPORT SmfPlace : public QObject + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfPlace( QObject *aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfPlace( const SmfPlace &aOther ); + + /** + * Overloaded = operator + * @param aOther The reference object + */ + SmfPlace operator=( const SmfPlace &aOther ); + + /** + * Destructor + */ + ~SmfPlace( ); + + /** + * Method to get the place name + * @return The place name + */ + QString name( ) const; + + /** + * Method to get the city of place + * @return The city of the place + */ + QString city( ) const; + + /** + * Method to get the street information of place + * @return The street information of the place + */ + QString street( ) const; + + /** + * Method to get the zip code of place + * @return The zip code of place + */ + QString zipCode( ) const; + + /** + * Method to get the country of place + * @return The country of place + */ + QString country( ) const; + + /** + * Method to get the Geo Position information (like information gathered + * on a global position, direction and velocity at a particular point + * in time) of the place. + * @return The Geo Position information of place + */ + QtMobility::QGeoPositionInfo geoPositionInfo( ) const; + + /** + * Method to get the url indicating the place + * @return The url indicating the place + */ + QUrl url( ) const; + + /** + * Method to get the id of the place + * @return The ID value + */ + QString id( ) const; + + /** + * Method to set the place name + * @param aPlace The new place name + */ + void setName( const QString& aPlace ); + + /** + * Method to set the city of place + * @param aCity The new city of the place + */ + void setCity( const QString& aCity ); + + /** + * Method to set the street information of place + * @param aStreet The new street information of the place + */ + void setStreet( const QString& aStreet ); + + /** + * Method to set the zip code of place + * @param aZipCode The new zip code of place + */ + void setZipCode( const QString& aZipCode ); + + /** + * Method to set the country of place + * @param aCountry The new country of place + */ + void setCountry( const QString& aCountry ); + + /** + * Method to set the Geo Postion information (like information gathered + * on a global position, direction and velocity at a particular point + * in time) of the place. + * @param aGeoPosInfo The new Geo Position information of place + */ + void setGeoPositionInfo( const QtMobility::QGeoPositionInfo& aGeoPosInfo ); + + /** + * Method to set the url indicating the place + * @param aUrl The new url indicating the place + */ + void setUrl( const QUrl& aUrl ); + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfPlace &aPlace ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfPlace &aPlace ); + + }; + + +/** + * Method for Externalization. Writes the SmfPlace object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aPlace The SmfPlace object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfPlace &aPlace ); + +/** + * Method for Internalization. Reads a SmfPlace object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aPlace The SmfPlace object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfPlace &aPlace); + +#endif /* SMFPLACE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/common/smfplace/smfplace_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/common/smfplace/smfplace_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,75 @@ +/** + * 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 class implemented for implicit sharing of SmfPlace class + * + */ + +#ifndef SMFPLACE_P_H_ +#define SMFPLACE_P_H_ + +#include +#include // Qt mobility class +#include + +using namespace QtMobility; // Qt mobility - namespace + +class SmfPlacePrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfPlacePrivate( ) { + m_name.clear(); + m_city.clear(); + m_street.clear(); + m_zipcode.clear(); + m_country.clear(); + m_url.clear(); + m_placeId.clear(); } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfPlacePrivate( const SmfPlacePrivate &aOther ) : + QSharedData ( aOther ), + m_name ( aOther.m_name ), + m_city ( aOther.m_city ), + m_street ( aOther.m_street ), + m_zipcode ( aOther.m_zipcode ), + m_country ( aOther.m_country ), + m_geo ( aOther.m_geo ), + m_url ( aOther.m_url ), + m_placeId ( aOther.m_placeId ) { } + + /** + * Destructor + */ + ~SmfPlacePrivate( ); + + QString m_name; // place name + QString m_city; // city of place + QString m_street; // street of place + QString m_zipcode; // zip code of place + QString m_country; // country of place + QtMobility::QGeoPositionInfo m_geo; // place geo position information + QUrl m_url; // url indicating the place + QString m_placeId; // place id + +}; + +#endif /* SMFPLACE_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfclient/smfclient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfclient/smfclient.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,55 @@ +/** + * 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: + * The SmfEvent class represents an event + * + */ + +#ifndef SMFCLIENT_H +#define SMFCLIENT_H + +#include +#include +#include + +#include "../common/SmfClientGlobal.h" + +class SmfProvider; + +/** + * @ingroup smf_client_group + * Interface for a base service provider. Other service provider classes contains + * implementation of this base class so that each has access to service provider + * information. + * All of the functionality described here should be implemented by a service + * specific plug-in object. + */ +class SMFCLIENT_EXPORT SmfClient +{ + /*Q_OBJECT*/ + +public: + + /** + * @param name of the service + * @return service provider list + */ + QList* GetServices(const QString& serviceName); + QList* GetServices(const QString& serviceName, const QString& providerName); + QList* GetServices(const QString& serviceName, const SmfProvider& provider); +}; + + +#endif // SMFCLIENT_H diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfclient/smfcontactfetcher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfclient/smfcontactfetcher.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,212 @@ +/** + * 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: + * The SmfEvent class represents an event + * + */ + +#ifndef SMFCONTACTHETCHER_H +#define SMFCONTACTHETCHER_H + +#include +#include "smfglobal.h" +#include "smfprovider.h" +#include "smfcontact.h" +#include "smfplace.h" +class SmfProvider; //base-class for service provider +class SmfContact; //class for Contact in a social network +class SmfGroup; //class for a group in social network +typedef QList SmfContactList; + +//List of SmfGroup +typedef QList SmfGroupList; +/** + * @ingroup smf_client_group + * Interface to search for contacts/connections from a service provider. This class + * provides basic functionality to allow applications to obtain list of + * contacts or friends in a social networking service. + * Note that to get the base provider info like service name, icon, description etc + * use getProvider(). + * See also: + * SmfProvider::serviceName(), SmfProvider::serviceIcon(), SmfProvider::description() + * + * All of the functionality described here should be implemented by a service + * specific plug-in object. + * Interface name:- org.symbian.smf.client.contact.fetcher + */ +class SMFCLIENT_EXPORT SmfContactFetcher : public QObject +{ + Q_OBJECT + +public: + + /** + * Constructs the SmfContactFetcher. + * @param parent base provider info + * @param contact Used for searching friends of the given contact + * Seeing as this is a plug-in implementation, these will realistically + * be generated by SMF factory of some kind + */ + SmfContactFetcher(SmfProvider* baseProvider); + SmfContactFetcher(SmfProvider* baseProvider, SmfContact* contact); + ~SmfContactFetcher(); + +public: + /** + * Get the friend listing asynchronously. The friendsListAvailable() signal + * is emitted with SmfContactList once data is arrived. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + bool friends(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); + + /** + * Get the list of followers asynchronously. The followersListAvailable() signal + * is emitted with SmfContactList once data is arrived. Please note that some + * service may not support followers/fans - FALSE is returned if not supported. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + bool followers(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); // list of contact objects + + /** + * Searches for a contact The searchContactFinished() signal + * is emitted with SmfContactList once data is arrived. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void search(SmfContact* contact,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // list of contact objects + + /** + * Searches for a contacts (friends) who are near the user. + * Signal searchNearFinished() is emitted with SmfContactList once data is arrived. + * Proximity defines accuracy level + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + bool searchNear(SmfPlace* location,SmfLocationSearchBoundary proximity,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; + + + /** + * Get the list of groups. The groupListAvailable() signal + * is emitted with SmfGroupList once data is arrived. False might be returned + * if this service doesn't support any mode of grouping (very rare). + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + bool groups(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // list of group objects + + /** + * Searches for Smf Contacts in an Smf group. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + * @param group The group to be searcged in + */ + bool searchInGroup(SmfGroup group,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // list of contact objects + + + //APIs to get/set base provider info (SmfProvider) + + /** + * Gets the base provider info + */ + SmfProvider* getProvider() ; + +public slots: + +signals: + + /** + * This signal is emitted when a request to get friends is completed. + * Note if number of friends is large, then it can download the list page by page. + * In that case this signal is emitted multiple times. + * @param list list of friends + * @param error error string + * @param resultPage Page number info + * @see friends() + */ + void friendsListAvailable(SmfContactList* list, QString error, SmfResultPage resultPage); + + /** + * This signal is emitted when a request to get followers is completed + * Note if number of followers is large, then it can download the list page by page + * In that case this signal is emitted multiple times. + * @param list list of followers + * @param error error string + * @param resultPage Page number info + * @see followers() + */ + void followersListAvailable(SmfContactList* list, QString error, SmfResultPage resultPage); + + /** + * This signal is emitted when a request to get groups is completed + * Note if number of groups is large, then it can download the list page by page + * In that case this signal is emitted multiple times. + * @param list list of groups + * @param error error string + * @param resultPage Page number info + * @see groups() + */ + void groupListAvailable(SmfGroupList* list, QString error, SmfResultPage resultPage); + + /** + * Emitted when search for a contact is finished. + * Note if number of contacts in the search is large, then it can download the list page by page + * In that case this signal is emitted multiple times. + * @param list List of filtered contacts + * @param resultPage Page number info + * @see search() + */ + void searchContactFinished(SmfContactList* list,QString error, SmfResultPage resultPage); + + + /** + * Emitted when search for contacts who are near a geographic location, is finished. + * Note if number of contacts in the search is large, then it can download the list page by page + * In that case this signal is emitted multiple times. + * @param list List of filtered contacts + * @param resultPage Page number info + * @see search() + */ + void searchNearFinished(SmfContactList* list,QString error, SmfResultPage resultPage); + + /** + * Emitted when search for a contact in a group is finished + * Note if number of contacts in the search is large, then it can download the list page by page + * In that case this signal is emitted multiple times. + * @param list list of filtered contacts + * @param resultPage Page number info + * @see searchInGroup() + */ + void searchInGroupFinished(SmfContactList* list,QString error, SmfResultPage resultPage); + +private: + SmfProvider* m_baseProvider; +}; + +SMF_SERVICE_NAME(SmfContactFetcher, "org.symbian.smf.client.contact.fetcher\0.2") +#endif // SMFCONTACTHETCHER_H diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfclient/smfgallery.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfclient/smfgallery.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,135 @@ +/** + * 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: + * The SmfEvent class represents an event + * + */ + +#ifndef SMFGALLERY_H +#define SMFGALLERY_H + +#include "smfglobal.h" +#include "smfprovider.h" +#include "../common/SmfClientGlobal.h" +class SmfProvider; +class SmfComment; //user id, string, and url +class SmfPicture; + + +#include +#include +#include +//List of SmfPicture +typedef QList SmfPictureList; +/** + * @ingroup smf_client_group + * Interface to a remote gallery service. This class + * provides some basic gallery functionality to allow applications + * to interact with a picture gallery in a social network. + * + * Note that branding information for the particular service implementation + * is available from getProvider() API. See also: + * SmfProvider::serviceName(), SmfProvider::serviceIcon() + * + * All of the functionality described here should be implemented by a service + * specific plug-in object. + * Interface name for SmfGallery org.symbian.smf.client.gallery + */ +class SMFCLIENT_EXPORT SmfGallery : public QObject +{ + Q_OBJECT + +public: + /** + * Constructs SmfGallery. + * @param baseProvider The base provider info + * Seeing as this is a plug-in implementation, these will realistically + be generated by SMF factory of some kind + */ + + SmfGallery(SmfProvider* baseprovider = 0); + ~SmfGallery(); + +public: + /** + * Get the picture listing asynchronously. + * The picturesAvailable() signal is emitted with SmfPictureList once the pictures have arrived. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void pictures(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); + + /** + * Returns a user title/caption for the picture + */ + QString description(SmfPicture& picture); // A user title or caption, maybe? + + //APIs to get/set base provider info (SmfProvider) + + /** + * Gets the base provider info + */ + SmfProvider* getProvider() ; + +public slots: + /** + * Upload an image.Implemented as slot to connect to UI controls more easily + * uploadFinished() signal is emitted with the success value of the upload + * @param image the image to be uploaded + */ + void upload(SmfPicture* image) ; + + /** + * Upload an list image.Implemented as slot to connect to UI controls more easily + * uploadFinished() signal is emitted with the success value of the upload + * @param images the list image to be uploaded + */ + void upload(SmfPictureList* images) ; + + /** + * Posts a comment for an image. uploadFinished() signal is emitted + * with success of the post once comment is posted. + * @param image Image to comment on + * @param comment Comment to post + */ + void postComment(SmfPicture image, SmfComment comment) ; + +signals: + /* + * Notification on arrival of list of SmfPicture as a result of request. + * Note if number of friends is large, then it can download the list page by page. + * In that case this signal is emitted multiple times. + * through pictures(). + * @param pics Picture list + * @param error Error string + * @param resultPage Page number info + */ + void picturesAvailable(SmfPictureList* pics, QString error, SmfResultPage resultPage); + + /** + * Notification of the success of the uploading of image/comment + * @param error The upload success result of each individual pictures + */ + void uploadFinished(QList error); +private: + SmfProvider* m_baseProvider; +}; + +SMF_SERVICE_NAME(SmfGallery, "org.symbian.smf.client.gallery\0.2") + +#endif // SMFGALLERY_H + diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfclient/smfmusic.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfclient/smfmusic.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,526 @@ +/** + * 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: + * The SmfEvent class represents an event + * + */ + +#ifndef SMFMUSIC_H +#define SMMUSIC_H + +#include + +#include +#include + +#include "smfglobal.h" +#include "smfprovider.h" +#include "smfcontact.h" +#include "smfevent.h" + +class SmfProvider; //basic Smf service Provider info +class SmfContact; // Smf contact +class SmfMusicRating;//rating value from 0..31 - services would map accordingly +class SmfMusicProfile; //user profile containing music usage and interest info, extends SmfContact +class SmfTrackInfo; //id, title, album, artist, genre, tag, director,release year, rating, comment info +class SmfMusicFingerPrint; //generation is not in scope of smf +class SmfVenue; +class SmfEvent; +class SmfPlaylist; +class SmfLyricsService; +class SmfLyrics; +class SmfSubtitle; +class SmfSubtitleSearchFilter; + +typedef QList SmfMusicProfileList; +typedef QList SmfTrackInfoList; +typedef QList SmfEventsList; +typedef QList SmfProviderList; +typedef QList SmfPlaylistList; +typedef QList SmfVenueList; +typedef QList SmfLyricsList; +typedef QList SmfSubtitleList; +/** + * @ingroup smf_client_group + * Basic music service ("org.symbian.smf.client.music.service") + */ +class SMFCLIENT_EXPORT SmfMusicService : public QObject +{ + Q_OBJECT + +public: + /** + * Constructs SmfMusicService. + * @param baseProvider The base provider info + * Seeing as this is a plug-in implementation, these will realistically + * be generated by SMF factory of some kind + */ + SmfMusicService(SmfProvider* baseProvider = 0); + ~SmfMusicService(); + +public: + + /** + * Gets self profile information asynchronously. + * userInfoAvailable() signal is emitted with SmfMusicProfile when the info is arrived + */ + void userinfo() ; + + /** + * Asynchronously searches information about other service users for a particular venue + * searchInfoAvailable() signal is emitted with SmfMusicProfileList when the info is arrived. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void searchUser(SmfVenue venue,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; + + /** + * Gets the base provider info + */ + SmfProvider* getProvider() ; + + +signals: + /** + * Notification on arrival of the self profile as result of userinfo(). + * @param profile The self profile + */ + void userInfoAvailable(SmfMusicProfile* profile, QString error); + + void searchInfoAvailable(SmfMusicProfileList& profileList, QString error,SmfResultPage resultPage); +private: + SmfProvider* m_baseProvider; +}; +SMF_SERVICE_NAME(SmfMusicService, "org.symbian.smf.client.music.service\0.2") + + +/** +* Provides service ("org.symbian.smf.client.music.search") for music search +*/ +class SMFCLIENT_EXPORT SmfMusicSearch : public QObject +{ + Q_OBJECT + +public: + /** + * Constructs SmfMusicSearch with base provider as arguement. + * Seeing as this is a plug-in implementation, these will realistically + * be generated by SMF factory of some kind + */ + + SmfMusicSearch(SmfProvider* baseProvider = 0); + ~SmfMusicSearch(); + +public: + // Get the track listing - might be made asynchrnous later + + /** + * Searches for music recommendations similar to a particulartrack asynchronously. + * The signal trackSearchAvailable() is emitted with SmfTrackInfoList + * once its arrived. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param track The track for which similar recommendations need to be fetched. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void recommendations(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // basic list of track objects + + /** + * Searches for tracks similar to a given track asynchronously. + * The signal trackSearchAvailable() is emitted with SmfTrackInfoList + * once its arrived. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param track The search criteria, similar tracks are searched + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void tracks(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // basic list of track objects + + /** + * Searches for a track having similar finger print asynchronously. + * The signal trackSearchAvailable() is emitted with SmfTrackInfoList + * once its arrived. + * @param signature The search criteria,signature to be searched for + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void trackInfo(SmfMusicFingerPrint signature,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // search by fingerprint object + + /** + * Search information about where to buy this song from asynchronously. + * The signal storeSearchAvailable() is emitted with SmfProviderList once its arrived. + * @param track The search criteria for stores + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void stores(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; + + //APIs to get/set base provider info (SmfProvider) + + /** + * Gets the base provider info + */ + SmfProvider* getProvider() ; + + +public slots: + + /** + * Posts currently playing track. + * Success can be checked by checking the signal postFinished() + * @param track Track to post + */ + void postCurrentPlaying(SmfTrackInfo track) ; + //int postRating(SmfTrackInfo track, SmfMusicRating rate) ; + //int postComments(SmfTrackInfo track, SmfComment comment) ; + +signals: + /** + * Emitted when the search result for a track is available. + * Note if number of tacks in the search is large, then it can download the list page by page. + * In that case this signal is emitted multiple times. + * @param resultPage Page number info + */ + void trackSearchAvailable(SmfTrackInfoList* result, QString error,SmfResultPage resultPage); + + /** + * Emitted when the search result for a store is available. + * Note if number of tacks in the search is large, then it can download the list page by page. + * In that case this signal is emitted multiple times. + * @param resultPage Page number info + */ + void storeSearchAvailable(SmfProviderList* result, QString error, SmfResultPage resultPage); +private: + SmfProvider* m_baseProvider; +}; +SMF_SERVICE_NAME(SmfMusicSearch, "org.symbian.smf.client.music.search\0.2") + + +/** + * Remote playlist + */ +class SMFCLIENT_EXPORT SmfPlaylist : public QObject + { + Q_OBJECT + +public: + SmfPlaylist(); + ~SmfPlaylist(); + + /** + * Gets tracks in the playlist + */ + SmfTrackInfoList* getTrackList(); + + /** + * Gets playlist title + */ + QString getPlayListTitle(); + + /** + * Gets the creation date + */ + QDateTime getCreationDate(); + + /** + * Sets tracks in the playlist + */ + void setTrackList(SmfTrackInfoList* trackList); + + /** + * Sets playlist title + */ + void setPlayListTitle(QString title); + + /** + * Sets creation date + */ + void setCreationDate(QDateTime time); + +private: + SmfTrackInfoList* m_trackList; + QString m_title; + QDateTime m_creationDate; + }; + + +/** + * provides service ("org.symbian.smf.client.music.playlist") + * + * Interface to a remote playlist service. This class + * provides some basic functionality to allow applications + * to interact with playlists in some music related service provider (e.g. last.fm). + * + * Note that branding information for the particular service implementation + * is available from getProvider() API. See also: + * SmfProvider::serviceName(), SmfProvider::serviceIcon() + * + * All of the functionality described here should be implemented by a service + * specific plug-in object. + * + */ +class SMFCLIENT_EXPORT SmfPlaylistService : public QObject +{ + Q_OBJECT + +public: + /** + * Constructs SmfPlaylistService with base provider info + * Seeing as this is a plug-in implementation, these will realistically + * be generated by SMF factory of some kind + */ + SmfPlaylistService(SmfProvider* baseProvider = 0); + ~SmfPlaylistService(); + +public: + + /** + * Gets the list playlists for the logged-in user asynchronously. + * The signal playlistsListAvailable() signal is emitted with + * SmfPlaylistList once its arrived . + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void playlists(int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // basic list of playlist objects + + /** + * Gets the list playlists for the given user asynchronously. + * The signal playlistsListAvailable() signal is emitted with + * SmfPlaylistList once its arrived. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param user User for which to get the playlists + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void playlistsOf(SmfMusicProfile* user,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; + + //APIs to get/set base provider info (SmfProvider) + + /** + * Gets the base provider info + */ + SmfProvider* getProvider() ; + + +public slots: + + /** + * Upload currently playing track to a playlist. Signal + * playlistUpdated() can be checked for success value + * @param plst The playlist to be added in + * @param tracks The list of tracks to uploaded + */ + int addToPlaylist(SmfPlaylist plst, SmfTrackInfoList* tracks) ; + + /** + * Upload currently playing playlist . Signal + * playlistUpdated() can be checked for success value + * @param plst The playlist to be uploaded + */ + int postCurrentPlayingPlaylist(SmfPlaylist plst) ; + + +signals: + /** + * Notification of availability of list of playlists requested. + * Note if number of list is large, then it can download the list page by page. + * In that case this signal is emitted multiple times. + * @param resultPage Page number info + */ + void playlistsListAvailable(SmfPlaylistList*, QString error, SmfResultPage resultPage); + /** + * Signals remote updation of playlist with success value + */ + int playlistUpdated(bool success) ; +private: + SmfProvider* m_baseProvider; +}; +SMF_SERVICE_NAME(SmfPlaylistService, "org.symbian.smf.client.music.playlist\0.2") + + +/** +* provides service ("org.symbian.smf.client.music.events") +*/ +class SMFCLIENT_EXPORT SmfMusicEvents : public QObject +{ + Q_OBJECT + +public: + /** + * Constructs SmfMusicEvents with base provider info + * Seeing as this is a plug-in implementation, these will realistically + * be generated by SMF factory of some kind + */ + SmfMusicEvents(SmfProvider* baseProvider = 0); + ~SmfMusicEvents(); + +public: + + /** + * Gets list of events in a particular location asynchronously. + * eventsAvailable() signal is emitted with SmfEventsList once its arrived. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void events(QtMobility::QContactGeolocation location,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; + + /** + * Gets list of venues of a particular location asynchronously. + * venuesAvailable() signal is emitted with SmfVenueList once its arrived. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void venues(QtMobility::QContactGeolocation location,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // basic list of venue objects + + /** + * Gets list of events in a particular venue asynchronously. + * eventsAvailable() signal is emitted with SmfEventsList once its arrived. + * When the list is big user can specify the page number and per page item data. + * If not supplied by the user default values are used. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void events(SmfVenue venue,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // basic list of events objects + + + //APIs to get/set base provider info (SmfProvider) + + /** + * Gets the base provider info + */ + SmfProvider* getProvider() ; + + +public slots: + + /** + * Updates events. Might not be supported by all service provider. + * eventsUpdated() signal can be checked for success value. + * @param SmfEventsList List of events to be posted + */ + void postEvents(SmfEventsList events); + +signals: + + /** + * Notification of the success of request to post an event + */ + void eventsUpdated(bool success); + + /** + * Notification on arrival of event lists + * Note if number of list is large, then it can download the list page by page. + * In that case this signal is emitted multiple times. + * @param resultPage Page number info + */ + void eventsAvailable(SmfEventsList* list, QString error, SmfResultPage resultPage); + + /** + * Notification on arrival of venues lists + * Note if number of list is large, then it can download the list page by page. + * In that case this signal is emitted multiple times. + * @param resultPage Page number info + */ + void venuesAvailable(SmfVenueList* list, QString error, SmfResultPage resultPage); +private: + SmfProvider* m_baseProvider; +}; +SMF_SERVICE_NAME(SmfMusicEvents, "org.symbian.smf.client.music.events\0.2") + + +/** +* provides service ("org.symbian.smf.client.music.lyrics") +*/ +class SMFCLIENT_EXPORT SmfLyricsService : public QObject +{ + Q_OBJECT + +public: + /** + * Constructs SmfLyricsService with base provider info. + * Seeing as this is a plug-in implementation, these will realistically + * be generated by SMF factory of some kind + */ + + SmfLyricsService(SmfProvider* baseProvider = 0); + ~SmfLyricsService(); + +public: + + /** + * Get the lyrics lists asynchrnously, it fetches texts without time info. + * lyricsAvailable() notification comes SmfLyricsList with when the data is available + * @param track Track for which lyrics needs to be fetched. + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void lyrics(SmfTrackInfo track,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; + + /** + * Get the lyrics lists asynchrnously, it fetches texts with time info. + * Subtitle search filter can be applied + * subtitleAvailable() notification comes SmfSubtitleList with when the data is available + * @param track Track for which subtitle needs to be fetched. + * @param filter Subtitle search filter + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + */ + void subtitles(SmfTrackInfo track, SmfSubtitleSearchFilter filter,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE) ; // texts with time information + //APIs to get/set base provider info (SmfProvider) + + /** + * Gets the base provider info + */ + SmfProvider* getProvider() ; + + +public slots: + + +signals: + + /** + * Notification on arrival of lyrics + * Note if the list is large, then it can download the list page by page. + * In that case this signal is emitted multiple times. + * @param resultPage Page number info + */ + void lyricsAvailable(SmfLyricsList* list, QString error, SmfResultPage resultPage); + + /** + * Notification on arrival of subtitle based on filter. + * Note if the list is large, then it can download the list page by page. + * In that case this signal is emitted multiple times. + * @param resultPage Page number info + */ + void subtitleAvailable(SmfSubtitleList* list, QString error, SmfResultPage resultPage); +private: + SmfProvider* m_baseProvider; +}; +SMF_SERVICE_NAME(SmfLyricsService, "org.symbian.smf.client.music.lyrics\0.2") + +#endif // SMFMUSIC_H + diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfclient/smfpostprovider.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfclient/smfpostprovider.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,201 @@ +/** + * 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: + * The SmfEvent class represents an event + * + */ +#ifndef SMFPOSTPROVIDER_H +#define SMFPOSTPROVIDER_H + +#include +#include +#include +#include + +#include "smfglobal.h" +#include "smfprovider.h" +#include "smfcontact.h" +#include "smfplace.h" + +class SmfProvider; //base-class for service provider +class SmfContact; //class for Contact in a social network + + + +/** + * class for information (text, image and url) contained in post in social network + * This could be changed to contain html data + * + * For those service provider which supports only string format, @see supportedFormats() + */ +class SmfPost : public QTextDocument + { + Q_OBJECT + +public: + SmfPost ( QObject * parent = 0 ); + SmfPost ( const QString & text, QObject * parent = 0 ); + +private: + QString* id; + SmfProvider* provider; + }; + +/** + * Presence info of the user + */ +enum SmfAppearenceInfo + { + ENotSupported, + EOnline, + EOffline, + EBusy, + EDoNotDisturb, + EAppearOffline, + EOther + }; + +//Post lists +typedef QList SmfPostList; + +/** + * @ingroup smf_client_group + * Interface to post scrap/tweet like info. + * Note that branding information for the particular service implementation + * is available from getProvider() API. See also: + * SmfProvider::serviceName(), SmfProvider::serviceIcon(), SmfProvider::description() + * + * Interface name for SmfPostProvider is org.symbian.smf.client.contact.posts + */ +class SMFCLIENT_EXPORT SmfPostProvider : public QObject + { + Q_OBJECT + +public: + /** + * Constructs SmfPostProvider. + * @param baseProvider The base provider info + * Seeing as this is a plug-in implementation, these will realistically + * be generated by SMF factory of some kind + */ + SmfPostProvider(SmfProvider* baseProvider); + ~SmfPostProvider(); + + +public: + /** + * returns maximum no of chars (unicode) that service provider can post without truncation + * negative value means no limit + */ + qint32 maxCharsInPost() const; + /** + * returns maximum no of items that can be returned in a single query to getPosts + * negative value means feature not supported. + */ + qint32 maxItems() const; + + /** + * returns all the formatting of posts that this service provider supports. + * May return 0 items to mean only QString is supported. + */ + QVector supportedFormats () const; + + /** + * returns whether this SP supports Appearence @see SmfAppearenceInfo + */ + bool supportsAppearence () const; + +public slots: + /** + * Gets the posts asynchronously. The signal postsAvailable()with SmfPostList is emitted + * once the post lists are available + * @param user user's contact in this SP, omit for self contact + * @param pageNum Page number to download, SMF_FIRST_PAGE denotes fresh query. + * @param perPage Item per page, default is SMF_ITEMS_PER_PAGE + * @see postsAvailable() + */ + void posts(SmfContact* user = 0,int pageNum=SMF_FIRST_PAGE,int perPage=SMF_ITEMS_PER_PAGE); + + /** + * Updates a post to own area, the success of the post can be checked with signal + * updatePostFinished() signal + * @param postData data to be posted + * @param location location data + */ + void post(SmfPost& postData,SmfPlace& location) ; + /** + * Updates the last post to own area with new data, the success of the post can be checked with signal + * updatePostFinished() signal + * @param postData edited/new data to be posted + * @param location location data + */ + void updatePost(SmfPost& postData); + + /** + * Updates a post to a particular Smf contact. the success of the post can be checked with signal + * updatePostFinished() signal. + * @param postData data to be posted + * @param contact contact to which the post is to be directed + * @param location location data + */ + void postDirected(SmfPost& postData,SmfContact& contact,SmfPlace* location=0); + + /** + * Posts appearance info of the user.e.g. appear offline, busy, do-not-disturb + * @param appearence user appearance + * @see SmfPresenceInfo + * @return False on Failure/Not supported + */ + bool postAppearence(SmfAppearenceInfo appearence); + /** + * Share /a contact's post to user's friends and followers (e.g. retweet in twitter, share on facebook) + * emits updatePostFinished() signal when done. + * @param postData data to be posted + * @param contact contact to which the post belonged + * @param bool whether user changed items within the post + */ + void sharePost(SmfPost& postData,SmfContact& contact,bool edited); + + //APIs to get/set base provider info (SmfProvider) + + /** + * Gets the base provider info + */ + SmfProvider* getProvider() const; + +signals: + + /** + * Emitted when a request to getPosts() is finished + * Note if number of posts is large, then it can download the list page by page + * In that case this signal is emitted multiple times. + * @param list list of posts + * @param error error string + * @param resultPage Page number info + */ + void postsAvailable(SmfPostList* list, QString error, SmfResultPage resultPage); + + /** + * Emitted when update post is finished. + * @param success the success of the update + */ + void postFinished(bool success); + + private: + SmfProvider* m_baseProvider; + }; + +SMF_SERVICE_NAME(SmfPostProvider, "org.symbian.smf.client.contact.posts\0.2") +#endif // SMFPOSTPROVIDER_H diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfclient/smfprovider.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfclient/smfprovider.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,91 @@ +/** + * 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: + * The SmfEvent class represents an event + * + */ + +#ifndef SMFPROVIDER_H +#define SMFPROVIDER_H + +#include +#include +#include + +#include "../common/SmfClientGlobal.h" +/** + * @ingroup smf_client_group + * Interface for a base service provider. Other service provider classes contains + * implementation of this base class so that each has access to service provider + * information. + * All of the functionality described here should be implemented by a service + * specific plug-in object. + */ +class SMFCLIENT_EXPORT SmfProvider : public QObject +{ + Q_OBJECT + +public: + /** + * Seeing as this is a plug-in implementation, these will realistically be generated by SMF factory of some kind + */ + + SmfProvider(QObject* parent = 0); + ~SmfProvider(); + +public: + /** + * Localizable name of the service + * @return service name + */ + QString& serviceName() const; + + /** + * Logo of the service + * @return logo image of the service + */ + QImage& serviceIcon() const; + + /** + * Readable service description + * @return service description + */ + QString description() const; + + /* + * Website of the service + */ + QUrl serviceUrl() const; + + /** + * URL of the application providing this service + */ + QUrl applicationUrl() const; // + + /** + * service types - list of interfaces that this provider support + */ + QList serviceTypes() const; +}; +/** +* Externalization +*/ +QDataStream &operator<<(QDataStream &, const SmfProvider&); +/** + * Internalization + */ +QDataStream &operator>>(QDataStream &, SmfProvider&); + +#endif // SMFPROVIDER_H diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/base/smfpluginbase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/base/smfpluginbase.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,106 @@ +/** + * 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: + * The SmfPluginBase class is the base class for all plugins. + * + */ + +#ifndef SMFPLUGINBASE_H_ +#define SMFPLUGINBASE_H_ + +#include +#include +#include + +/** + * @ingroup smf_plugin_group + * The SmfPluginBase class is the base class for all plugins + */ +class SmfPluginBase : public QObject + { + Q_OBJECT + +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfPluginBase( QObject* aParent = 0 ); + + /** + * Destructor + */ + ~SmfPluginBase( ); + + /** + * Method to get the provider information + * @return Instance of SmfProviderBase + */ + virtual SmfProviderBase* getProviderInfo( ) = 0; + + /** + * Method to get the result for a network request. + * @param aTransportResult The result of transport operation + * @param aReply The QNetworkReply instance for the request + * @param aResult [out] An output parameter to the plugin manager.If the + * return value is SmfSendRequestAgain, QVariant will be of type + * SmfPluginRequestData. + * + * For SmfContactFetcherPlugin: If last operation was friends() or followers() + * or search() or searchInGroup() or searchNear(), aResult will be of type + * QList. If last operation was groups(), aResult will be of + * type QList + * For SmfPostProviderPlugin: If last operation was retrieve(), aResult will be + * of type QList. If last operation was post() or updatePost() or + * postDirected() or commentOnAPost() or postAppearence() or sharePost(), + * aResult will be of type bool + * For SmfLyricsServicePlugin: If last operation was lyrics(), aResult will + * be of type QList. If last operation was subtitles(), aResult will + * be of type QList. + * For SmfMusicEventsPlugin: If last operation was events(), aResult will + * be of type QList. If last operation was venues(), aResult + * will be of type QList. If last operation was postEvents(), + * aResult will be of type bool + * For SmfMusicSearchPlugin: If last operation was recommendations() or + * tracks() or trackInfo(), aResult will be of type QList. + * If last operation was stores(), aResult will be of type + * QList. If last operation was postCurrentPlaying(), + * aResult will be of type bool. + * For SmfMusicServicePlugin: If last operation was userInfo(), aResult + * will be of type SmfMusicProfile. If last operation was searchUser(), + * aResult will be of type QList. + * For SmfPlaylistServicePlugin: If last operation was playlists() or + * playlistsOf(), aResult will be of type QList. If last + * operation was addToPlaylist() or postCurrentPlayingPlaylist(), + * aResult will be of type bool. + * For SmfGalleryPlugin: If last operation was pictures(), aResult will + * be of type QList. If last operation was description(), + * aResult will be of type QString. If last operation was upload() or + * postComment(), aResult will be of type bool. + * + * @param aRetType [out] SmfPluginRetType + * @param aPageResult [out] The SmfResultPage structure variable + */ + virtual SmfPluginError responseAvailable( + const SmfTransportResult &aTransportResult, + QNetworkReply *aReply, + QVariant* aResult, + SmfPluginRetType &aRetType, + SmfResultPage &aPageResult ) = 0; + + }; + + +#endif /* SMFPLUGINBASE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/base/smfpluginutil.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/base/smfpluginutil.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,128 @@ +/** + * 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: + * The Plugin util class provides the information required for the + * plugins from Smf framework + * + */ + +#ifndef SMFPLUGINUTIL_H_ +#define SMFPLUGINUTIL_H_ + +#include +#include + +/** + * see http://qjson.sourceforge.net/usage.html for more details + */ +using namespace QJson; +class Parser; + +enum SmfSignatureMethod + { + HMAC_SHA1, + RSA_SHA1, + PLAINTEXT + }; + +enum SmfParsingMode + { + ParseForRequestContent, //Inline query format (foo=bar&bar=baz&baz=foo ...), suitable for POST requests. + ParseForInlineQuery, // Same as ParseForRequestContent, but prepends the string with a question mark - + // suitable for GET requests (appending parameters to the request URL) + ParseForHeaderArguments // HTTP request header format (parameters to be put inside a request header). + }; + +/** + * The Plugin util class provides the information required for the + * plugins from Smf framework + */ +class SmfPluginUtil : public QObject + { + Q_OBJECT + +public: + /** + * Method to get the instance of SmfPluginUtil class + * @param aParser The JSON parser utility object instance + * @return The instance of SmfPluginUtil class + */ + static SmfPluginUtil* getInstance ( Parser *aParser ); + + /** + * Destructor + */ + ~SmfPluginUtil ( ); + + /** + * Method called by plugins to get the handle to QJson library + * @param aHandle [out] The QJson handle + */ + Parser* getJsonHandle( void ); + + /** + * Method called by plugins to get the OAuth Keys. The PM sends the + * keys only if the pluginID is that of a currently loaded plugin + * @param aKeys [out] The OAuth keys + * @param aPluginID The ID of the plugin that requests for + * the OAuth keys + */ + void getAuthKeys( QMap &aKeys, QString aPluginID ); + + /** + * Method called by plugins to get the Nonce value + * @param aStr [out] The Nonce value + */ + void getNonce( QString &aStr ); + + /** + * Method called by plugins to generate a parameters string required to + * access Protected Resources using OAuth authorization. + * @param aRequestUrl The request URL + * @param aOperation The type of http operation + * @param aToken The access token + * @param aTokenSecret The token secret + * @param aSignatureMethod The signature method to be used + * @param aParams A map of parameters to its values + * @param aMode The mode of creation of the request + * @return The cretd parameter string + */ + QByteArray createParameterString( const QString &aRequestUrl, + QNetworkAccessManager::Operation aOperation, + const QByteArray &aToken, + const QByteArray &aTokenSecret, + const SmfSignatureMethod aSignatureMethod, + const QMultiMap &aParams, + const SmfParsingMode aMode); + +private: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfPluginUtil ( Parser *aParser ); + + +private: + /** + * The single instance of SmfPluginUtil + */ + static SmfPluginUtil* m_myInstance; + + Parser *m_jsonParser; + + }; + +#endif /* SMFPLUGINUTIL_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/base/smfproviderbase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/base/smfproviderbase.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,162 @@ +/** + * 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: + * The Provider Base class is the class that has to be contained as a member + * in all Plug-in Interfaces. + * + */ + +#ifndef SMFPROVIDERBASE_H_ +#define SMFPROVIDERBASE_H_ + +#include +#include +#include +#include +#include +#include + +class SmfProviderBasePrivate; + +/** + * @ingroup smf_plugin_group + * The Provider Base class is the class that has to be contained as a member + * in all Plug-in Interfaces. + * + * All of plug-ins should contain this class as a member and should also + * contain a public method to get instance of this class. + */ +class SmfProviderBase : public QObject + { + Q_OBJECT + +public: + /** + * Constructor with default argument + * @param aParent The parent object + */ + SmfProviderBase( QObject* aParent = 0 ); + + /** + * Copy Constructor + * @param aOther The reference object + */ + SmfProviderBase( const SmfProviderBase &aOther ); + + /** + * Destructor + */ + ~SmfProviderBase( ); + + /** + * Method to get the Localisable name of the service. + * @return The Localisable name of the service. + */ + QString serviceName( ) const; + + /** + * Method to get the Logo of the service + * @return The Logo of the service + */ + QImage serviceIcon( ) const; + + /** + * Method to get the Readable service description + * @return The Readable service description + */ + QString description( ) const; + + /** + * Method to get the Website of the service + * @return The Website of the service + */ + QUrl serviceUrl( ) const; + + /** + * Method to get the URL of the Application providing this service + * @return The URL of the Application providing this service + */ + QUrl applicationUrl( ) const; + + /** + * Method to get the Icon of the application + * @return The Icon of the application + */ + QImage applicationIcon( ) const; + + /** + * Method to get the Plugin specific ID + * @return The Plugin specific ID + */ + QString pluginId( ) const; + + /** + * Method to get the ID of the authentication application + * for this service + * @param aProgram The authentication application name + * @param aArguments List of arguments required for authentication app + * @param aMode Strting mode for authentication application + * @return The ID of the authentication application + */ + QString authenticationApp( QString &aProgram, QStringList & aArguments, + QIODevice::OpenModeFlag aMode = QIODevice::ReadWrite ) const; + + /** + * Method to get the unique registration ID provided by the + * Smf for authorised plugins + * @return The unique registration ID/token provided by the Smf for + * authorised plugins + */ + QString smfRegistrationId( ) const; + + /** + * Method to get the data usage of each plugin + * @return The data usage structure + */ + SmfPluginDataUsage getDataUsage( ) const; + +private: + QSharedDataPointer d; + + friend QDataStream &operator<<( QDataStream &aDataStream, + const SmfProviderBase &aProviderBase ); + + friend QDataStream &operator>>( QDataStream &aDataStream, + SmfProviderBase &aProviderBase ); + + }; + + +/** + * Method for Externalization. Writes the SmfProviderBase object to + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be written + * @param aProviderBase The SmfProviderBase object to be externalized + * @return reference to the written stream + */ +QDataStream &operator<<( QDataStream &aDataStream, + const SmfProviderBase &aProviderBase ); + +/** + * Method for Internalization. Reads a SmfProviderBase object from + * the stream and returns a reference to the stream. + * @param aDataStream Stream to be read + * @param aProviderBase The SmfProviderBase object to be internalized + * @return reference to the stream + */ +QDataStream &operator>>( QDataStream &aDataStream, + SmfProviderBase &aProviderBase); + +#endif /* SMFPROVIDERBASE_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/base/smfproviderbase_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/base/smfproviderbase_p.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,82 @@ +/** + * 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 class implemented for implicit sharing of SmfProviderBase class + * + */ + +#ifndef SMFPROVIDERBASE_P_H_ +#define SMFPROVIDERBASE_P_H_ + +#include +#include +#include +#include +#include + + +class SmfProviderBasePrivate : public QSharedData +{ +public: + /** + * Constructor + */ + SmfProviderBasePrivate( ) { + m_serviceName.clear(); + m_description.clear(); + m_serviceUrl.clear(); + m_applicationUrl.clear(); + m_pluginId.clear(); + m_authenticationAppId = 0; + m_registrationId.clear(); + } + + /** + * Copy Consturctor + * @param aOther The reference object to be copy constructed + */ + SmfProviderBasePrivate( const SmfProviderBasePrivate &aOther ) : + QSharedData ( aOther ), + m_serviceName ( aOther.m_serviceName ), + m_serviceIcon ( aOther.m_serviceIcon ), + m_description ( aOther.m_description ), + m_serviceUrl ( aOther.m_serviceUrl ), + m_applicationUrl ( aOther.m_applicationUrl ), + m_applicationIcon ( aOther.m_applicationIcon ), + m_pluginId ( aOther.m_pluginId ), + m_authenticationAppId ( aOther.m_authenticationAppId ), + m_registrationId ( aOther.m_registrationId ), + m_usage ( aOther.m_usage ) { } + + /** + * Destructor + */ + ~SmfProviderBasePrivate( ); + + QString m_serviceName; // the Localisable name of the service + QImage m_serviceIcon; // the Logo of the service + QString m_description; // the Readable service description + QUrl m_serviceUrl; // the Website of the service + QUrl m_applicationUrl; // URL of the Application providing this service + QImage m_applicationIcon; //Icon of the application + QString m_pluginId; // The Plugin specific ID + QString m_authenticationAppId; // ID of the authentication application for this service + QString m_registrationId; // unique registration ID provided by the + // Smf for authorised plugins + SmfPluginDataUsage m_usage; //data usage of each plugin + +}; + +#endif /* SMFPROVIDERBASE_P_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/smfcontacts/smfcontactfetcherplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/smfcontacts/smfcontactfetcherplugin.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,138 @@ +/** + * 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: + * Interface specification for fetching contacts + * + */ + + +#ifndef SMFCONTACTFETCHERPLUGIN_H_ +#define SMFCONTACTFETCHERPLUGIN_H_ + +#include +#include +#include +#include + +// Forward declaration +class SmfPluginManagerUtil; + +/** + * @ingroup smf_plugin_group + * Interface specification for fetching contacts. This class provides + * basic functionality to allow applications to obtain list of + * friends, followers, groups of a user in a social networking service. + * + * All of the functionality described here should be implemented by a service + * specific plug-in. + */ +class SmfContactFetcherPlugin : public SmfPluginBase + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aUtil The SmfPluginManagerUtil instance. The plugins can + * call the method getAuthKeys() of this class, with its pluginID to + * get the OAuth keys, keys are returned only if this plugin is + * authorised by Smf franework + */ + SmfContactFetcherPlugin( SmfPluginManagerUtil* aUtil ); + + /** + * Destructor + */ + ~SmfContactFetcherPlugin( ); + + /** + * Method to get the list of friends + * @param aRequest [out] The request data to be sent to network + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError friends( SmfPluginRequestData &aRequest, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to get the list of followers + * @param aRequest [out] The request data to be sent to network + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError followers( SmfPluginRequestData &aRequest, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to search for a contact + * @param aRequest [out] The request data to be sent to network + * @param aContact contact to be searched + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError search( SmfPluginRequestData &aRequest, + const SmfContact &aContact, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to search for contacts (friends) who are near the user. + * Proximity defines accuracy level + * @param aRequest [out] The request data to be sent to network + * @param aLocation The location search criteria + * @param aProximity location search boundary + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError searchNear( SmfPluginRequestData &aRequest, + const SmfPlace &aLocation, + const SmfLocationSearchBoundary &aProximity, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to get the list of groups + * @param aRequest [out] The request data to be sent to network + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError groups( SmfPluginRequestData &aRequest, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to search for a contact in a group + * @param aRequest [out] The request data to be sent to network + * @param aGroup the group in which to search + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError searchInGroup( SmfPluginRequestData &aRequest, + const SmfGroup &aGroup, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + }; + +Q_DECLARE_INTERFACE( SmfContactFetcherPlugin, "org.symbian.smf.plugin.contact.fetcher/v1.0" ); + +#endif /* SMFCONTACTFETCHERPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/smfcontacts/smfpostproviderplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/smfcontacts/smfpostproviderplugin.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,197 @@ +/** + * 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 + * + * @section DESCRIPTION + * + * Interface specification for getting/posting updates to a social site + * + */ + + +#ifndef SMFPOSTPROVIDERPLUGIN_H_ +#define SMFPOSTPROVIDERPLUGIN_H_ + +#include +#include +#include +#include + +// Forward declaration +class SmfPluginManagerUtil; + +/** + * SmfPresenceInfo. + * Indicates the presence information of user like Online, Offline, Busy, + * Do no disturb, Appear Offline etc. + */ +enum SmfPresenceInfo + { + ENotSupported, + EOnline, + EOffline, + EBusy, + EDoNotDisturb, + EAppearOffline, + EOther + }; + +/** + * @ingroup smf_plugin_group + * Interface to get/update the posts to a service provider. This class + * provides basic functionality to allow applications to obtain list of + * posts, updates posts or change the presence information to a social + * networking service. + * + * All of the functionality described here should be implemented by a service + * specific plug-in. + */ +class SmfPostProviderPlugin : public SmfPluginBase + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aUtil The SmfPluginManagerUtil instance. The plugins can + * call the method getAuthKeys() of this class, with its pluginID to + * get the OAuth keys, keys are returned only if this plugin is + * authorised by Smf franework + */ + SmfPostProviderPlugin( SmfPluginManagerUtil* aUtil ); + + /** + * Destructor + */ + ~SmfPostProviderPlugin( ); + + /** + * Method that returns maximum no of chars (unicode) that service + * provider can post without truncation. Negative value means + * no limit + * @return Max characters that can be posted without truncation + */ + virtual qint32 maxCharsInPost( ) const = 0; + /** + * Method that returns maximum no of items that can be returned + * in a single query to getPosts. Negative value means feature + * not supported. + * @return Max items that can be returned in a single query + */ + virtual qint32 maxItems( ) const = 0; + + /** + * supportedFormats ( ) const = 0; + + /** + * Method that returns whether this SP supports Appearence + * @return Returns true if Appearance is supported, else false. + * @see SmfAppearenceInfo + */ + virtual bool supportsAppearence ( ) const = 0; + + /** + * Method to get the latest posts + * @param aRequest [out] The request data to be sent to network + * @param aUser The user's contact in this SP, omit for self contact + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError retrieve( SmfPluginRequestData &aRequest, + const SmfContact &aUser = 0, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + + /** + * Method to update a post to own area. + * @param aRequest [out] The request data to be sent to network + * @param aPostData The post data to be posted + * @param aLocation The location + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError post( SmfPluginRequestData &aRequest, + const SmfPost &aPostData, + const SmfPlace &aLocation ) = 0; + + /** + * Method to update the last post to own area with new data + * @param aRequest [out] The request data to be sent to network + * @param aPostData The edited/new data to be posted + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError updatePost( SmfPluginRequestData &aRequest, + const SmfPost &aPostData ) = 0; + + /** + * Method to update a post to a particular contact + * @param aRequest [out] The request data to be sent to network + * @param aPostData The post data to be posted + * @param aContact The contact where the data has to be posted + * @param aLocation The location + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError postDirected( SmfPluginRequestData &aRequest, + const SmfPost &aPostData, + const SmfContact &aContact, + const SmfPlace &aLocation = NULL ) = 0; + + + /** + * Method to post a comment on a post. + * @param aRequest [out] The request data to be sent to network + * @param aTarget Post on which comment has to be posted + * @param aComment comment to be posted + * @param aLocation location data + */ + virtual SmfPluginError commentOnAPost(SmfPluginRequestData &aRequest, + const SmfPost& aTarget, + const SmfPost& aComment, + const SmfPlace &aLocation = NULL); + + /** + * Method to update the presence information of the user + * @param aRequest [out] The request data to be sent to network + * @param aAppearence The appearence information + * @param aStatus The status string + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError postAppearence( SmfPluginRequestData &aRequest, + const SmfPresenceInfo &aAppearence, + const QString &aStatus ) = 0; + + /** + * Share /a contact's post to user's friends and followers + * (e.g. retweet in twitter, share on facebook) + * @param aRequest [out] The request data to be sent to network + * @param aPostData data to be posted + * @param aContact contact to which the post belonged + * @param aEdited whether user changed items within the post + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError sharePost( SmfPluginRequestData &aRequest, + const SmfPost& aPostData, + const SmfContact& aContact, + const bool &aEdited); + + + }; + +Q_DECLARE_INTERFACE( SmfPostProviderPlugin, "org.symbian.smf.plugin.contact.posts/v1.0" ); + +#endif /* SMFPOSTPROVIDERPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/smfmusic/smflyricsserviceplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/smfmusic/smflyricsserviceplugin.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,90 @@ +/** + * 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: + * Interface specification for music track lyrics + * + */ + + +#ifndef SMFLYRICSSERVICEPLUGIN_H_ +#define SMFLYRICSSERVICEPLUGIN_H_ + +#include +#include +#include +#include +#include + +// Forward declaration +class SmfPluginManagerUtil; + +/** + * @ingroup smf_plugin_group + * Interface specification for music track lyrics + * + * All of the functionality described here should be implemented by a service + * specific plug-in. + */ +class SmfLyricsServicePlugin : public SmfPluginBase + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aUtil The SmfPluginManagerUtil instance. The plugins can + * call the method getAuthKeys() of this class, with its pluginID to + * get the OAuth keys, keys are returned only if this plugin is + * authorised by Smf franework + */ + SmfLyricsServicePlugin( SmfPluginManagerUtil* aUtil ); + + /** + * Destructor + */ + ~SmfLyricsServicePlugin( ); + + /** + * Method to get the lyrics + * @param aRequest [out] The request data to be sent to network + * @param aTrack The track whose lyrics need to be fetched + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError lyrics( SmfPluginRequestData &aRequest, + const SmfTrackInfo &aTrack, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to get the subtitle + * @param aRequest [out] The request data to be sent to network + * @param aTrack The track whose subtitle need to be fetched + * @param aFilter The subtitle search filter if any + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError subtitles( SmfPluginRequestData &aRequest, + const SmfTrackInfo &aTrack, + const SmfSubtitleSearchFilter &aFilter = SubtitleAll, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + }; + +Q_DECLARE_INTERFACE( SmfLyricsServicePlugin, "org.symbian.smf.plugin.music.lyrics/v1.0" ); + +#endif /* SMFLYRICSSERVICEPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/smfmusic/smfmusiceventsplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/smfmusic/smfmusiceventsplugin.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,114 @@ +/** + * 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: + * Interface specification for music events + * Note: This class has dependencies on QtMobility project + * + */ + + +#ifndef SMFMUSICEVENTSPLUGIN_H_ +#define SMFMUSICEVENTSPLUGIN_H_ + +#include +#include +#include +#include + +// Forward declaration +class SmfPluginManagerUtil; + +using namespace QtMobility; + +/** + * @ingroup smf_plugin_group + * Interface specification for music events + * + * All of the functionality described here should be implemented by a service + * specific plug-in. + * + * Note: This class has dependencies on QtMobility project + */ +class SmfMusicEventsPlugin : public SmfPluginBase + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aUtil The SmfPluginManagerUtil instance. The plugins can + * call the method getAuthKeys() of this class, with its pluginID to + * get the OAuth keys, keys are returned only if this plugin is + * authorised by Smf framework + */ + SmfMusicEventsPlugin( SmfPluginManagerUtil* aUtil ); + + /** + * Destructor + */ + ~SmfMusicEventsPlugin( ); + + /** + * Method to get the events based on location + * @param aRequest [out] The request data to be sent to network + * @param aLocation Location of the event + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError events( SmfPluginRequestData &aRequest, + const QtMobility::QContactGeolocation &aLocation, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to get the venues based on location + * @param aRequest [out] The request data to be sent to network + * @param aLocation Location of the venue + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError venues( SmfPluginRequestData &aRequest, + const QtMobility::QContactGeolocation &aLocation, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to get the events based on venues + * @param aRequest [out] The request data to be sent to network + * @param aVenue Venue of the event + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError events( SmfPluginRequestData &aRequest, + const SmfPlace &aVenue, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to post events + * @param aRequest [out] The request data to be sent to network + * @param aEventList The list of events to be posted + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError postEvents( SmfPluginRequestData &aRequest, + const QList &aEventList ) = 0; + + }; + +Q_DECLARE_INTERFACE( SmfMusicEventsPlugin, "org.symbian.smf.plugin.music.events/v1.0" ); + +#endif /* SMFMUSICEVENTSPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/smfmusic/smfmusicsearchplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/smfmusic/smfmusicsearchplugin.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,128 @@ +/** + * 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: + * Interface specification for music search services + * + */ + + +#ifndef SMFMUSICSEARCHPLUGIN_H_ +#define SMFMUSICSEARCHPLUGIN_H_ + +#include +#include +#include +#include + +// Forward declaration +class SmfPluginManagerUtil; + +/** + * @ingroup smf_plugin_group + * Interface specification for music search services. This class + * provides basic functionality to allow applications to search for + * tracks, get recommented tracks etc + * + * All of the functionality described here should be implemented by a service + * specific plug-in. + */ +class SmfMusicSearchPlugin : public SmfPluginBase + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aUtil The SmfPluginManagerUtil instance. The plugins can + * call the method getAuthKeys() of this class, with its pluginID to + * get the OAuth keys, keys are returned only if this plugin is + * authorised by Smf franework + */ + SmfMusicSearchPlugin( SmfPluginManagerUtil *aUtil ); + + /** + * Destructor + */ + ~SmfMusicSearchPlugin( ); + + /** + * Method to get recommended tracks + * @param aRequest [out] The request data to be sent to network + * @param aTrack The track for which similar recommendations + * need to be fetched. + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError recommendations( SmfPluginRequestData &aRequest, + const SmfTrackInfo &aTrack, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to get similar tracks + * @param aRequest [out] The request data to be sent to network + * @param aTrack The track for which similar tracks + * need to be fetched. + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError tracks( SmfPluginRequestData &aRequest, + const SmfTrackInfo &aTrack, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to get tracks having a similar finger print + * @param aRequest [out] The request data to be sent to network + * @param aSignature The finger print to be searched for need to be + * fetched. + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError trackInfo( SmfPluginRequestData &aRequest, + const SmfMusicFingerPrint &aSignature, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to search information about where to buy this song from + * @param aRequest [out] The request data to be sent to network + * @param aTrack The track for which stores need to be searched + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError stores( SmfPluginRequestData &aRequest, + const SmfTrackInfo &aTrack, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to post the currently playing track + * @param aRequest [out] The request data to be sent to network + * @param aTrack The current playing track, that should be posted + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError postCurrentPlaying( + SmfPluginRequestData &aRequest, + const SmfTrackInfo &aTrack ) = 0; + + }; + +Q_DECLARE_INTERFACE( SmfMusicSearchPlugin, "org.symbian.smf.plugin.music.search/v1.0" ); + +#endif /* SMFMUSICSEARCHPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/smfmusic/smfmusicserviceplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/smfmusic/smfmusicserviceplugin.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,83 @@ +/** + * 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: + * Interface specification for music services + * + */ + + +#ifndef SMFMUSICSERVICEPLUGIN_H_ +#define SMFMUSICSERVICEPLUGIN_H_ + +#include +#include +#include + +// Forward declaration +class SmfPluginManagerUtil; + +/** + * @ingroup smf_plugin_group + * Interface specification for music services. This class provides basic + * functionality to allow application to search for a user or check for + * user information etc. + * + * All of the functionality described here should be implemented by a service + * specific plug-in. + */ +class SmfMusicServicePlugin : public SmfPluginBase + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aUtil The SmfPluginManagerUtil instance. The plugins can + * call the method getAuthKeys() of this class, with its pluginID to + * get the OAuth keys, keys are returned only if this plugin is + * authorised by Smf franework + */ + SmfMusicServicePlugin( SmfPluginManagerUtil *aUtil ); + + /** + * Destructor + */ + ~SmfMusicServicePlugin( ); + + /** + * Method to get self profile information + * @param aRequest [out] The request data to be sent to network + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError userInfo( SmfPluginRequestData &aRequest ) = 0; + + /** + * Method to search information about other service users for a + * particular place + * @param aRequest [out] The request data to be sent to network + * @param aPlace The place which is the search criteria + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError searchUser( SmfPluginRequestData &aRequest, + const SmfPlace &aPlace, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + }; + +Q_DECLARE_INTERFACE( SmfMusicServicePlugin, "org.symbian.smf.plugin.music.service/v1.0" ); + +#endif /* SMFMUSICSERVICEPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/smfmusic/smfplaylistserviceplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/smfmusic/smfplaylistserviceplugin.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,109 @@ +/** + * 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: + * Interface specification for playlists service + * + */ + + +#ifndef SMFPLAYLISTSERVICEPLUGIN_H_ +#define SMFPLAYLISTSERVICEPLUGIN_H_ + +#include +#include +#include +#include + +// Forward declaration +class SmfPluginManagerUtil; + +/** + * @ingroup smf_plugin_group + * Interface specification for playlists service. This class provides + * basic functionality to allow applications to get playlists of a user, + * add some track to an existing playlist, post the current playing + * playlists etc. + * + * All of the functionality described here should be implemented by a service + * specific plug-in. + */ +class SmfPlaylistServicePlugin : public SmfPluginBase + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aUtil The SmfPluginManagerUtil instance. The plugins can + * call the method getAuthKeys() of this class, with its pluginID to + * get the OAuth keys, keys are returned only if this plugin is + * authorised by Smf franework + */ + SmfPlaylistServicePlugin( SmfPluginManagerUtil *aUtil ); + + /** + * Destructor + */ + ~SmfPlaylistServicePlugin( ); + + /** + * Method to get the playlist + * @param aRequest [out] The request data to be sent to network + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError playlists( SmfPluginRequestData &aRequest, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to get the playlist of a particular user + * @param aRequest [out] The request data to be sent to network + * @param aUser The user whose playlists need to be fetched + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError playlistsOf( SmfPluginRequestData &aRequest, + const SmfMusicProfile &aUser, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to add tracks to a playlist + * @param aRequest [out] The request data to be sent to network + * @param aPlaylist The playlist where tracks should be added + * @param aTracks The tracks to be added to the playlist + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError addToPlaylist( SmfPluginRequestData &aRequest, + const SmfPlaylist &aPlaylist, + const QList &aTracks ) = 0; + + /** + * Method to post the current playing playlist + * @param aRequest [out] The request data to be sent to network + * @param aPlaylist The current playing playlist which should be posted + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError postCurrentPlayingPlaylist( + SmfPluginRequestData &aRequest, + const SmfPlaylist &aPlaylist ) = 0; + + }; + +Q_DECLARE_INTERFACE( SmfPlaylistServicePlugin, "org.symbian.smf.plugin.music.playlist/v1.0" ); + +#endif /* SMFPLAYLISTSERVICEPLUGIN_H_ */ diff -r 86af6c333601 -r 0446eb7b28aa smf/inc/smfplugins/smfpictures/smfgalleryplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smf/inc/smfplugins/smfpictures/smfgalleryplugin.h Thu Apr 15 15:35:36 2010 +0530 @@ -0,0 +1,129 @@ +/** + * 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: + * Interface specification for plugins that implement gallery related services + * + */ + +#ifndef SMFGALLERYPLUGIN_H_ +#define SMFGALLERYPLUGIN_H_ + +#include +#include +#include + +// Forward declaration +class SmfPluginManagerUtil; + +/** + * @ingroup smf_plugin_group + * Interface specification for plugins that implement gallery related services + * like getting pictures, their description, uploading, posting comments + * on pictures etc + * + * All of the functionality described here should be implemented by a service + * specific plug-in. + * + * A sample call flow between SmfPluginMgr and SmfGalleryPlugin is shown here + * + * @msc + hscale = "2"; + SmfServer,SmfTransportMgr,SmfPluginMgr,SmfGalleryPlugin; + ...; + SmfPluginMgr=>SmfTransportMgr [ label = "connect(SIGNAL(finished()), SLOT(replyFinished()))" ] ; + ...; + SmfServer=> SmfPluginMgr[ label = "loadAndCheckPlugin()" ] ; + SmfPluginMgr=>SmfPluginMgr [ label = "SmfGalleryPlugin smfglpl= load()" ] ; + SmfPluginMgr=>SmfGalleryPlugin [ label = "QNetworkRequest req = smfglpl.pictures()" ] ; + SmfPluginMgr=>SmfTransportMgr [ label = "nwmgr.get( req )" ] ; + ...; + SmfTransportMgr=>SmfPluginMgr [ label = "replyFinished( reply )" ] ; + SmfPluginMgr=>SmfGalleryPlugin [ label = "status = responseAvailable( reply, &data )" ] ; + SmfPluginMgr=>SmfServer [ label = "if(status ==complete) dataStream << data;" ] ; + @endmsc + * + */ +class SmfGalleryPlugin : public SmfPluginBase + { + Q_OBJECT +public: + /** + * Constructor with default argument + * @param aUtil The SmfPluginManagerUtil instance. The plugins can + * call the method getAuthKeys() of this class, with its pluginID to + * get the OAuth keys, keys are returned only if this plugin is + * authorised by Smf franework + */ + SmfGalleryPlugin( SmfPluginManagerUtil *aUtil ); + + /** + * Destructor + */ + ~SmfGalleryPlugin( ); + + /** + * Method to get a list of pictures + * @param aRequest [out] The request data to be sent to network + * @param aPageNum The page to be extracted + * @param aItemsPerPage Number of items per page + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError pictures( SmfPluginRequestData &aRequest, + const int aPageNum = SMF_FIRST_PAGE, + const int aItemsPerPage = SMF_ITEMS_PER_PAGE ) = 0; + + /** + * Method to get a description + * @param aRequest [out] The request data to be sent to network + * @param aImage The image abot which the description is required + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError description( SmfPluginRequestData &aRequest, + const SmfPicture &aImage ) = 0; + + /** + * Method to upload a picture + * @param aRequest [out] The request data to be sent to network + * @param aImage The image to be uploaded + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError upload( SmfPluginRequestData &aRequest, + const SmfPicture &aImage ) = 0; + + /** + * Method to upload a list of pictures + * @param aRequest [out] The request data to be sent to network + * @param aImages The list of images to be uploaded + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError upload( SmfPluginRequestData &aRequest, + const QList &aImages ) = 0; + + /** + * Method to post comment on a picture is available + * @param aRequest [out] The request data to be sent to network + * @param aImage The image on which comment is to be posted + * @param aComment The comment to be posted + * @return SmfPluginError Plugin error if any, else SmfPluginErrNone + */ + virtual SmfPluginError postComment( SmfPluginRequestData &aRequest, + const SmfPicture &aImage, + const SmfComment &aComment ) = 0; + + }; + +Q_DECLARE_INTERFACE( SmfGalleryPlugin, "org.symbian.smf.plugin.gallery/v1.0" ); + +#endif /* SMFGALLERYPLUGIN_H_ */