--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoutils_plat/videoscheduler_api/inc/ipvideo/CCseScheduledProgram.h Wed Sep 01 12:20:37 2010 +0100
@@ -0,0 +1,286 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: This class contains data for scheduled programs.*
+*/
+
+
+#ifndef __CCSESCHEDULEDPROGRAM_H__
+#define __CCSESCHEDULEDPROGRAM_H__
+
+#include <e32def.h>
+#include <e32base.h>
+#include <s32strm.h>
+
+// CONSTANTS
+const TInt KCseNameMaxLength = 255; // Based on SymbianDB column max length
+
+/**
+* Scheduled program data.
+*/
+class CCseScheduledProgram : public CBase
+ {
+ public: // Constructors and destructors
+ /**
+ * Two-phased constructor.
+ */
+ IMPORT_C static CCseScheduledProgram* NewL();
+
+ /**
+ * Two-phased copy constructor.
+ */
+ IMPORT_C static CCseScheduledProgram* NewL( CCseScheduledProgram& aProg );
+
+ /**
+ * Destructor.
+ * @return None.
+ */
+ IMPORT_C virtual ~CCseScheduledProgram();
+
+
+ // Enums
+ // Schedule type
+ enum TCseScheduleType
+ {
+ ECseReminder = 0,
+ ECseRecording,
+ ECseProgramGuideUpdate,
+ ECseScheduleDownload,
+ ECseOther
+ };
+
+ // Plugin type:
+ enum TCsePluginType
+ {
+ // Only one of this kind of plugin can be running at same time
+ ECseUniPlugin = 1,
+ // Several of this kind of plugin can be running same time
+ ECseMultiPlugin
+ };
+ public: // New methods
+ /**
+ * Externalizes class content to stream.
+ * @param aStream Writestream where to write content
+ * @return None.
+ */
+ IMPORT_C void ExternalizeL( RWriteStream& aStream );
+
+ /**
+ * Internalizes class content from stream.
+ * @param aStream Readstream from where to read content
+ * @return None.
+ */
+ IMPORT_C void InternalizeL( RReadStream& aStream );
+
+ /**
+ * Calculates externalization length.
+ * @return Length of the stream needed when class is externalized.
+ */
+ IMPORT_C TInt ExternalizeLength();
+
+ public: // Setters
+
+ /**
+ * Sets new plugin type for schedule.
+ * EUniPlugin for plugins that can have only one running at a given time.
+ * EMultiPlugin for plugins that can have several running at a given time
+ * @param aPluginType New plugin type
+ */
+ IMPORT_C void SetPluginType( TInt32 aPluginType );
+
+ /**
+ * Sets new schedule name.
+ * @param aName New name of the schedule
+ */
+ IMPORT_C void SetName( const TDesC8& aName );
+
+ /**
+ * Sets new schedule start time.
+ * @param aStartTime New start time of the schedule
+ */
+ IMPORT_C void SetStartTime( const TTime& aStartTime );
+
+ /**
+ * Sets new schedule end time.
+ * @param aEndTime New end time of the schedule
+ */
+ IMPORT_C void SetEndTime( const TTime& aEndTime );
+
+ /**
+ * Sets new application uid for schedule.
+ * @param aAppUid New application uid of the schedule
+ */
+ IMPORT_C void SetAppUid( const TInt32 aAppUid );
+
+ /**
+ * Sets new plugin uid for schedule
+ * @param aPluginUid New plugin uid of the schedule
+ */
+ IMPORT_C void SetPluginUid( const TInt32 aPluginUid );
+
+ /**
+ * Sets new application data for schedule
+ * @param aAppData New application data of the schedule
+ */
+ IMPORT_C void SetApplicationDataL( const TDesC8& aAppData );
+
+ /**
+ * Sets new database identifier for the schedule. Note that this should only
+ * be set by Common Scheduling Engine, not the application using it.
+ * @param aDbIdentifier New database identifier of the schedule
+ */
+ IMPORT_C void SetDbIdentifier( const TUint32 aDbIdentifier );
+
+ /**
+ * Sets new schedule for the schedule.
+ * @param aScheduleType New schedule type of the schedule
+ */
+ IMPORT_C void SetScheduleType( const TInt32 aScheduleType );
+
+ // Getters
+ /**
+ * Get the type of scheduler plugin
+ * EUniPlugin for plugins that can have only one running at a given time.
+ * EMultiPlugin for plugins that can have several running at a given time
+ * @return Schedule plugin type.
+ */
+ IMPORT_C TInt32 PluginType() const;
+
+ /**
+ * Get the name of the schedule.
+ * @return Schedule name.
+ */
+ IMPORT_C TPtrC8 Name() const;
+
+ /**
+ * Gets the start time of the schedule.
+ * @return Start time.
+ */
+ IMPORT_C TTime& StartTime();
+
+ /**
+ * Gets the end time of the schedule.
+ * @return End time.
+ */
+ IMPORT_C TTime& EndTime();
+
+ /**
+ * Gets the application uid of the schedule
+ * @return Application uid.
+ */
+ IMPORT_C TInt32 AppUid() const;
+
+ /**
+ * Gets the plugin uid of the schedule.
+ * @return Plugin uid.
+ */
+ IMPORT_C TInt32 PluginUid() const;
+
+ /**
+ * Gets the application data of the schedule.
+ * @return Application data.
+ */
+ IMPORT_C TPtrC8 ApplicationData();
+
+ /**
+ * Gets the database identifier of the schedule.
+ * @return Database identifier
+ */
+ IMPORT_C TUint32 DbIdentifier() const;
+
+ /**
+ * Gets the schedule type of the schedule.
+ * @return Schedule type
+ */
+ IMPORT_C TInt32 ScheduleType() const;
+
+ /**
+ * Dumps content of schedule to debug trace
+ * @return None
+ */
+ IMPORT_C void DebugDump() const;
+
+ protected: // Constructors
+ /**
+ * Default constructor
+ */
+ EXPORT_C CCseScheduledProgram();
+
+ /**
+ * Symbian 2nd phase constructor can leave.
+ */
+ void ConstructL();
+
+ protected: // Data
+ /**
+ * Name
+ * Name of the scheduled program, e.g. name of the TV program.
+ */
+ TBuf8<KCseNameMaxLength> iName;
+
+ /**
+ * Start time
+ * Start time when the scheduled program is run (passed to plugin which is defined here).
+ */
+ TTime iStartTime;
+
+ /**
+ * End time
+ * End time for schedules that take longer time to complete, for example recording of the TV program.
+ * If schedule is "instant" (e.g. just notification to user) start time and end time should be the same.
+ */
+ TTime iEndTime;
+
+ /**
+ * Application UID
+ * This is the application uid of the program that has added this schedule. Can be used to retrieve
+ * all schedules of certain application.
+ */
+ TInt32 iAppUid;
+
+ /**
+ * Plugin UID
+ * UID of the plugin where this scheduled program is passed when the time is right.
+ */
+ TInt32 iPluginUid;
+
+ /**
+ * Application Data
+ * Application specific data for the plugin. Common scheduling Engine has no knowledge what
+ * this data contains.
+ */
+ HBufC8* iAppData;
+
+ /**
+ * DB identifier
+ * Used to separate schedules from each other in database. Should be only added by Common
+ * scheduling engine, not by application using it.
+ */
+ TUint32 iDbIdentifier;
+
+ /**
+ * Schedule type
+ * Type of this schedule, e.g. reminder, recording...
+ */
+ TInt32 iScheduleType;
+
+ /**
+ * Schedule plugin type
+ * Type of the plugin where this schedule will be run
+ */
+ TInt32 iPluginType;
+ };
+
+#endif //__CCSESCHEDULEDPROGRAM_H__
+
+// End of file