--- /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
--- 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<SmfProvider>* galleries = SmfClient::GetServices("org.symbian.smf.gallery\0.2");
+ QList<SmfProvider>* 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<SmfProvider>* contactFetcherList = SmfClient::GetServices("org.symbian.smf.contact.fetcher\0.2");
+ QList<SmfProvider>* 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<SmfProvider>* postServices = SmfClient::GetServices("org.symbian.smf.contact.posts\0.2");
+ QList<SmfProvider>* 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<SmfProvider>* smfProList = SmfClient::GetServices("org.symbian.smf.music\0.2");
+ QList<SmfProvider>* 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<SmfProvider>* smfProList = SmfClient::GetServices("org.symbian.smf.client.music.search\0.2");
+ QList<SmfProvider>* 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<SmfProvider>* smfProList = SmfClient::GetServices("org.symbian.smf.music.lyrics\0.2","lyricsfly.com");
+ QList<SmfProvider>* 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*)));
--- 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 <QtCore/QtGlobal>
-
-
-#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_ */
--- 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 <QDateTime>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfCommentPrivate> 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_ */
--- 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 <QDateTime>
-#include <QSharedData>
-
-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_ */
--- 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 <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfContactPrivate> 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_ */
--- 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 <QSharedData>
-
-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_ */
--- 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 <smfcontact.h>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfContact>* 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<SmfContact> 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<SmfGroupPrivate> 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_ */
--- 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 <smfcontact.h>
-#include <QSharedData>
-
-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<SmfContact> *m_members; // members in the group
- QString m_groupName;
- QString m_groupId;
- // Other details to be added
-};
-
-
-#endif /* SMFGROUP_P_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 <QImage>
-#include <QUrl>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <QTextDocument>
-#include <smfclientglobal.h>
-
-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<SmfPostPrivate> 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_ */
--- 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 <QSharedData>
-
-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_ */
--- 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
- */
--- 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 <smfplace.h>
-#include <smfartists.h>
-#include <QStringList>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfEventPrivate> 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_ */
--- 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 <smfplace.h>
-#include <smfartists.h>
-#include <QStringList>
-#include <QSharedData>
-
-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_ */
--- 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 <QBuffer>
-#include <QNetworkRequest>
-#include <QNetworkAccessManager>
-
-/**
- * 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_ */
--- 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 <QImage>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfAlbumPrivate> 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_ */
--- 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 <smfartists.h>
-#include <QStringList>
-#include <QSharedData>
-
-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_ */
--- 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 <QImage>
-#include <QUrl>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfArtistsPrivate> 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_ */
--- 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 <QImage>
-#include <QUrl>
-#include <QSharedData>
-
-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_ */
--- 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 <qdatastream.h>
-#include <QDateTime>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfLyricsPrivate> 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_ */
--- 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 <QDateTime>
-#include <QSharedData>
-
-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_ */
--- 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 <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfMusicFingerPrintPrivate> 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_ */
--- 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 <QSharedData>
-
-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_ */
--- 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 <smftrackinfo.h>
-#include <smfevent.h>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfTrackInfo> musicUsageInfo( ) const;
-
- /**
- * Method to get the user's interested tracks
- * @return The users interested track list
- */
- QList<SmfTrackInfo> interestInfo( ) const;
-
- /**
- * Method to get the user events as list of SmfEvents
- * @return The list of events
- */
- QList<SmfEvent> 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<SmfTrackInfo>& aUsage );
-
- /**
- * Method to set the user's interested tracks
- * @param aInterest The users new interested track list
- */
- void setInterestInfo( const QList<SmfTrackInfo>& aInterest );
-
-private:
- QSharedDataPointer<SmfMusicProfilePrivate> 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_ */
--- 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 <smftrackinfo.h>
-#include <smfevent.h>
-#include <QSharedData>
-
-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<SmfTrackInfo> m_usage; // usage tracks
- QList<SmfTrackInfo> m_interest;// interested tracks
- QList<SmfEvent> m_events; // events list
- QString m_profileId;
-
-};
-
-#endif /* SMFMUSICPROFILE_P_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 <QObject>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfMusicRatingPrivate> 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_ */
--- 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 <QSharedData>
-
-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_ */
--- 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 <smftrackinfo.h>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfTrackInfo> 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<SmfTrackInfo> &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<SmfPlaylistPrivate> 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_ */
--- 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 <smftrackinfo.h>
-#include <QSharedData>
-
-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<SmfTrackInfo> m_trackList;// list of tracks
- QString m_title; // playlist name
- QDateTime m_creationDate; // creation date
- QString m_playlistId;
-
-};
-
-#endif /* SMFPLAYLIST_P_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 <QObject>
-#include <qdatastream.h>
-#include <QDateTime>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-enum SmfSubtitleSearchFilterFields
- {
- SubtitleLanguage = 0,
- SubtitleFrameRate, // value = 1
- SubtitleDuration, // value = 2
- SubtitleReleaseYear, // value = 3
- SubtitleAll = SubtitleLanguage | SubtitleFrameRate |
- SubtitleDuration | SubtitleReleaseYear
- };
-typedef QMap<SmfSubtitleSearchFilterFields,QString> 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<SmfSubtitlePrivate> 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_ */
--- 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 <QDateTime>
-#include <QSharedData>
-
-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_ */
--- 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 <QTime>
-#include <qdatastream.h>
-#include <smfmusicrating.h>
-#include <smfartists.h>
-#include <smfalbum.h>
-#include <QStringList>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfTrackInfoPrivate> 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_ */
--- 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 <QTime>
-#include <smfmusicrating.h>
-#include <QStringList>
-#include <QSharedData>
-
-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_ */
--- 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 <QDateTime>
-#include <QStringList>
-#include <QUrl>
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfPicturePrivate> 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_ */
--- 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 <QDateTime>
-#include <QStringList>
-#include <QUrl>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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_ */
--- 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 <QUrl>
-#include <qgeopositioninfo.h> // Qt mobility class
-#include <qdatastream.h>
-#include <QSharedData>
-#include <smfclientglobal.h>
-
-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<SmfPlacePrivate> 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_ */
--- 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 <QUrl>
-#include <qgeopositioninfo.h> // Qt mobility class
-#include <QSharedData>
-
-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_ */
--- 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 <QObject>
-#include <QImage>
-#include <QUrl>
-
-#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<SmfProvider>* GetServices(const QString& serviceName);
- static QList<SmfProvider>* GetServices(const QString& serviceName, const QString& providerName);
- static QList<SmfProvider>* GetServices(const QString& serviceName, const SmfProvider& provider);
-};
-
-
-#endif // SMFCLIENT_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 <QObject>
-#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<SmfContact> SmfContactList;
-
-//List of SmfGroup
-typedef QList<SmfGroup> 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
--- 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 <QObject>
-#include <QDateTime>
-#include <QStringList>
-//List of SmfPicture
-typedef QList<SmfPicture> 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<bool> error);
-private:
- SmfProvider* m_baseProvider;
-};
-
-SMF_SERVICE_NAME(SmfGallery, "org.symbian.smf.client.gallery\0.2")
-
-#endif // SMFGALLERY_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 <QObject>
-
-#include <qmobilityglobal.h>
-#include <qgeopositioninfo.h>
-
-#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<SmfMusicProfile> SmfMusicProfileList;
-typedef QList<SmfTrackInfo> SmfTrackInfoList;
-typedef QList<SmfEvent> SmfEventsList;
-typedef QList<SmfProvider> SmfProviderList;
-typedef QList<SmfPlaylist> SmfPlaylistList;
-typedef QList<SmfVenue> SmfVenueList;
-typedef QList<SmfLyrics> SmfLyricsList;
-typedef QList<SmfSubtitle> 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
-
--- 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 <QObject>
-#include <qmobilityglobal.h>
-#include <qgeopositioninfo.h>
-#include <QTextDocument>
-
-#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<SmfPost> 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<QTextFormat> 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
--- 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 <QObject>
-#include <QImage>
-#include <QUrl>
-
-#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<QString> serviceTypes() const;
-};
-/**
-* Externalization
-*/
-QDataStream &operator<<(QDataStream &, const SmfProvider&);
-/**
- * Internalization
- */
-QDataStream &operator>>(QDataStream &, SmfProvider&);
-
-#endif // SMFPROVIDER_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 <smfproviderbase.h>
-#include <QNetworkReply>
-#include <smfglobal.h>
-
-/**
- * @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<SmfContact>. If last operation was groups(), aResult will be of
- * type QList<SmfGroup>
- * For SmfPostProviderPlugin: If last operation was retrieve(), aResult will be
- * of type QList<SmfPost>. 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<SmfEvent>. If last operation was venues(), aResult
- * will be of type QList<SmfPlace>. 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<SmfTrackInfo>.
- * If last operation was stores(), aResult will be of type
- * QList<SmfProvider>. 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<SmfMusicProfile>.
- * For SmfPlaylistServicePlugin: If last operation was playlists() or
- * playlistsOf(), aResult will be of type QList<SmfPlaylist>. 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<SmfPicture>. 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_ */
--- 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 <QImage>
-#include <QUrl>
-#include <QBuffer>
-#include <smfglobal.h>
-#include <qdatastream.h>
-#include <QSharedData>
-
-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<SmfProviderBasePrivate> 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_ */
--- 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 <QImage>
-#include <QUrl>
-#include <QBuffer>
-#include <smfglobal.h>
-#include <QSharedData>
-
-
-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_ */
--- 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 <smfpluginbase.h>
-#include <smfcontact.h>
-#include <smfgroup.h>
-#include <smfplace.h>
-
-/**
- * @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_ */
--- 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 <smfpluginbase.h>
-#include <smfcontact.h>
-#include <smfpost.h>
-#include <smfplace.h>
-
-/**
- * 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;
-
- /**
- * <Method that returns all the formatting of posts that this
- * service provider supports. May return 0 items to mean
- * only QString is supported.
- * @return Supported formats of posts
- */
- virtual QVector<QTextFormat> 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_ */
--- 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 <smfpluginbase.h>
-#include <smftrackinfo.h>
-#include <QString>
-#include <smfsubtitle.h>
-#include <smflyrics.h>
-
-/**
- * @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_ */
--- 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 <smfpluginbase.h>
-#include <qtcontacts.h>
-#include <smfevent.h>
-#include <smfplace.h>
-
-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<SmfEvent> aEventList ) = 0;
-
- };
-
-Q_DECLARE_INTERFACE( SmfMusicEventsPlugin, "org.symbian.smf.plugin.music.events/v1.0" );
-
-#endif /* SMFMUSICEVENTSPLUGIN_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 <smfpluginbase.h>
-#include <QList>
-#include <smfmusicfingerprint.h>
-#include <smftrackinfo.h>
-
-/**
- * @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_ */
--- 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 <smfpluginbase.h>
-#include <smfmusicprofile.h>
-#include <smfplace.h>
-
-/**
- * @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_ */
--- 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 <smfpluginbase.h>
-#include <smfplaylist.h>
-#include <smfmusicprofile.h>
-#include <smftrackinfo.h>
-
-/**
- * @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<SmfTrackInfo> 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_ */
--- 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 <smfpluginbase.h>
-#include <smfpicture.h>
-#include <smfcomment.h>
-
-/**
- * @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<SmfPicture> &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_ */
--- /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 <QNetworkRequest>
+#include <QNetworkAccessManager>
+
+/**
+ * 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<QByteArray, QByteArray> 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<QByteArray, QByteArray> &aParams,
+ const SmfParsingMode aMode,
+ QBuffer *aPostData )
+ {
+ SmfPluginError error;
+ QString url = m_provider->serviceUrl().toString();
+
+ // Get the oAuth keys from The Smf Server
+ QMap<QString, QString> 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<QByteArray, QByteArray> 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<QByteArray, QByteArray> 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<SmfPicture> &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<QByteArray, QByteArray> 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<SmfPicture>. 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<SmfPicture>. 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 )
--- /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 <QVariant>
+#include <qplugin.h>
+
+#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<SmfPicture> &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<SmfPicture>. 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<QByteArray, QByteArray> &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*/
--- /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 <QtCore/QtGlobal>
+#include <QMetaType>
+
+#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_ */
--- /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 <QDateTime>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfCommentPrivate> 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_ */
--- /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 <QDateTime>
+#include <QSharedData>
+
+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_ */
--- /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 <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfContactPrivate> 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_ */
--- /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 <QSharedData>
+
+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_ */
--- /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 <smfcontact.h>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfContact>* 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<SmfContact> 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<SmfGroupPrivate> 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_ */
--- /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 <smfcontact.h>
+#include <QSharedData>
+
+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<SmfContact> *m_members; // members in the group
+ QString m_groupName;
+ QString m_groupId;
+ // Other details to be added
+};
+
+
+#endif /* SMFGROUP_P_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 <QImage>
+#include <QUrl>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <QTextDocument>
+#include <smfclientglobal.h>
+
+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<SmfPostPrivate> 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_ */
--- /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 <QSharedData>
+
+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_ */
--- /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
+ */
--- /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 <smfplace.h>
+#include <smfartists.h>
+#include <QStringList>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfEventPrivate> 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_ */
--- /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 <smfplace.h>
+#include <smfartists.h>
+#include <QStringList>
+#include <QSharedData>
+
+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_ */
--- /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 <QBuffer>
+#include <QNetworkRequest>
+#include <QNetworkAccessManager>
+
+/**
+ * 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_ */
--- /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 <QImage>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfAlbumPrivate> 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_ */
--- /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 <smfartists.h>
+#include <QStringList>
+#include <QSharedData>
+
+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_ */
--- /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 <QImage>
+#include <QUrl>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfArtistsPrivate> 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_ */
--- /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 <QImage>
+#include <QUrl>
+#include <QStringList>
+#include <QSharedData>
+
+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_ */
--- /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 <qdatastream.h>
+#include <QDateTime>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfLyricsPrivate> 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_ */
--- /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 <QDateTime>
+#include <QSharedData>
+
+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_ */
--- /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 <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfMusicFingerPrintPrivate> 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_ */
--- /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 <QSharedData>
+
+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_ */
--- /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 <smftrackinfo.h>
+#include <smfevent.h>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfTrackInfo> musicUsageInfo( ) const;
+
+ /**
+ * Method to get the user's interested tracks
+ * @return The users interested track list
+ */
+ QList<SmfTrackInfo> interestInfo( ) const;
+
+ /**
+ * Method to get the user events as list of SmfEvents
+ * @return The list of events
+ */
+ QList<SmfEvent> 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<SmfTrackInfo>& aUsage );
+
+ /**
+ * Method to set the user's interested tracks
+ * @param aInterest The users new interested track list
+ */
+ void setInterestInfo( const QList<SmfTrackInfo>& aInterest );
+
+private:
+ QSharedDataPointer<SmfMusicProfilePrivate> 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_ */
--- /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 <smftrackinfo.h>
+#include <smfevent.h>
+#include <QSharedData>
+
+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<SmfTrackInfo> m_usage; // usage tracks
+ QList<SmfTrackInfo> m_interest;// interested tracks
+ QList<SmfEvent> m_events; // events list
+ QString m_profileId;
+
+};
+
+#endif /* SMFMUSICPROFILE_P_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 <QObject>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfMusicRatingPrivate> 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_ */
--- /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 <QSharedData>
+
+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_ */
--- /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 <smftrackinfo.h>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfTrackInfo> 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<SmfTrackInfo> &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<SmfPlaylistPrivate> 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_ */
--- /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 <smftrackinfo.h>
+#include <QSharedData>
+
+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<SmfTrackInfo> m_trackList;// list of tracks
+ QString m_title; // playlist name
+ QDateTime m_creationDate; // creation date
+ QString m_playlistId;
+
+};
+
+#endif /* SMFPLAYLIST_P_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 <QObject>
+#include <qdatastream.h>
+#include <QDateTime>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+enum SmfSubtitleSearchFilterFields
+ {
+ SubtitleLanguage = 0,
+ SubtitleFrameRate, // value = 1
+ SubtitleDuration, // value = 2
+ SubtitleReleaseYear, // value = 3
+ SubtitleAll = SubtitleLanguage | SubtitleFrameRate |
+ SubtitleDuration | SubtitleReleaseYear
+ };
+typedef QMap<SmfSubtitleSearchFilterFields,QString> 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<SmfSubtitlePrivate> 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_ */
--- /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 <QDateTime>
+#include <QSharedData>
+
+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_ */
--- /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 <QTime>
+#include <qdatastream.h>
+#include <smfmusicrating.h>
+#include <smfartists.h>
+#include <smfalbum.h>
+#include <QStringList>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfTrackInfoPrivate> 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_ */
--- /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 <QTime>
+#include <smfmusicrating.h>
+#include <QStringList>
+#include <QSharedData>
+
+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_ */
--- /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 <QImage>
+#include <QDateTime>
+#include <QStringList>
+#include <QUrl>
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <QMetaType>
+
+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<SmfPicturePrivate> 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_ */
--- /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 <QDateTime>
+#include <QStringList>
+#include <QUrl>
+#include <QSharedData>
+#include <smfclientglobal.h>
+#include <smfpicture.h>
+
+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_ */
--- /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 <QUrl>
+#include <qgeopositioninfo.h> // Qt mobility class
+#include <qdatastream.h>
+#include <QSharedData>
+#include <smfclientglobal.h>
+
+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<SmfPlacePrivate> 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_ */
--- /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 <QUrl>
+#include <qgeopositioninfo.h> // Qt mobility class
+#include <QSharedData>
+
+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_ */
--- /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 <QObject>
+#include <QImage>
+#include <QUrl>
+
+#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<SmfProvider>* GetServices(const QString& serviceName);
+ QList<SmfProvider>* GetServices(const QString& serviceName, const QString& providerName);
+ QList<SmfProvider>* GetServices(const QString& serviceName, const SmfProvider& provider);
+};
+
+
+#endif // SMFCLIENT_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 <QObject>
+#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<SmfContact> SmfContactList;
+
+//List of SmfGroup
+typedef QList<SmfGroup> 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
--- /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 <QObject>
+#include <QDateTime>
+#include <QStringList>
+//List of SmfPicture
+typedef QList<SmfPicture> 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<bool> error);
+private:
+ SmfProvider* m_baseProvider;
+};
+
+SMF_SERVICE_NAME(SmfGallery, "org.symbian.smf.client.gallery\0.2")
+
+#endif // SMFGALLERY_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 <QObject>
+
+#include <qmobilityglobal.h>
+#include <qgeopositioninfo.h>
+
+#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<SmfMusicProfile> SmfMusicProfileList;
+typedef QList<SmfTrackInfo> SmfTrackInfoList;
+typedef QList<SmfEvent> SmfEventsList;
+typedef QList<SmfProvider> SmfProviderList;
+typedef QList<SmfPlaylist> SmfPlaylistList;
+typedef QList<SmfVenue> SmfVenueList;
+typedef QList<SmfLyrics> SmfLyricsList;
+typedef QList<SmfSubtitle> 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
+
--- /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 <QObject>
+#include <qmobilityglobal.h>
+#include <qgeopositioninfo.h>
+#include <QTextDocument>
+
+#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<SmfPost> 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<QTextFormat> 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
--- /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 <QObject>
+#include <QImage>
+#include <QUrl>
+
+#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<QString> serviceTypes() const;
+};
+/**
+* Externalization
+*/
+QDataStream &operator<<(QDataStream &, const SmfProvider&);
+/**
+ * Internalization
+ */
+QDataStream &operator>>(QDataStream &, SmfProvider&);
+
+#endif // SMFPROVIDER_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 <smfproviderbase.h>
+#include <QNetworkReply>
+#include <smfglobal.h>
+
+/**
+ * @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<SmfContact>. If last operation was groups(), aResult will be of
+ * type QList<SmfGroup>
+ * For SmfPostProviderPlugin: If last operation was retrieve(), aResult will be
+ * of type QList<SmfPost>. 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<SmfLyrics>. If last operation was subtitles(), aResult will
+ * be of type QList<SmfSubtitle>.
+ * For SmfMusicEventsPlugin: If last operation was events(), aResult will
+ * be of type QList<SmfEvent>. If last operation was venues(), aResult
+ * will be of type QList<SmfPlace>. 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<SmfTrackInfo>.
+ * If last operation was stores(), aResult will be of type
+ * QList<SmfProvider>. 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<SmfMusicProfile>.
+ * For SmfPlaylistServicePlugin: If last operation was playlists() or
+ * playlistsOf(), aResult will be of type QList<SmfPlaylist>. 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<SmfPicture>. 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_ */
--- /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 <QObject.h>
+#include <QNetworkAccessManager>
+
+/**
+ * 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<QString, QString> &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<QByteArray, QByteArray> &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_ */
--- /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 <QImage>
+#include <QUrl>
+#include <QBuffer>
+#include <smfglobal.h>
+#include <qdatastream.h>
+#include <QSharedData>
+
+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<SmfProviderBasePrivate> 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_ */
--- /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 <QImage>
+#include <QUrl>
+#include <QBuffer>
+#include <smfglobal.h>
+#include <QSharedData>
+
+
+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_ */
--- /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 <smfpluginbase.h>
+#include <smfcontact.h>
+#include <smfgroup.h>
+#include <smfplace.h>
+
+// 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_ */
--- /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 <smfpluginbase.h>
+#include <smfcontact.h>
+#include <smfpost.h>
+#include <smfplace.h>
+
+// 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;
+
+ /**
+ * <Method that returns all the formatting of posts that this
+ * service provider supports. May return 0 items to mean
+ * only QString is supported.
+ * @return Supported formats of posts
+ */
+ virtual QVector<QTextFormat> 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_ */
--- /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 <smfpluginbase.h>
+#include <smftrackinfo.h>
+#include <QString>
+#include <smfsubtitle.h>
+#include <smflyrics.h>
+
+// 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_ */
--- /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 <smfpluginbase.h>
+#include <qtcontacts.h>
+#include <smfevent.h>
+#include <smfplace.h>
+
+// 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<SmfEvent> &aEventList ) = 0;
+
+ };
+
+Q_DECLARE_INTERFACE( SmfMusicEventsPlugin, "org.symbian.smf.plugin.music.events/v1.0" );
+
+#endif /* SMFMUSICEVENTSPLUGIN_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 <smfpluginbase.h>
+#include <QList>
+#include <smfmusicfingerprint.h>
+#include <smftrackinfo.h>
+
+// 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_ */
--- /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 <smfpluginbase.h>
+#include <smfmusicprofile.h>
+#include <smfplace.h>
+
+// 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_ */
--- /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 <smfpluginbase.h>
+#include <smfplaylist.h>
+#include <smfmusicprofile.h>
+#include <smftrackinfo.h>
+
+// 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<SmfTrackInfo> &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_ */
--- /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 <smfpluginbase.h>
+#include </inc/common/smfpictures/smfpicture.h>
+#include </inc/common/smfcomment/smfcomment.h>
+
+// 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<SmfPicture> &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_ */