javauis/mmapi_qt/baseline/inc/cmmaplayerevent.h
branchRCL_3
changeset 25 ae942d28ec0e
parent 17 0fd27995241b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/mmapi_qt/baseline/inc/cmmaplayerevent.h	Tue Aug 31 15:09:22 2010 +0300
@@ -0,0 +1,121 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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 is used to post events to the java.
+*
+*/
+
+
+#ifndef CMMAPLAYEREVENT_H
+#define CMMAPLAYEREVENT_H
+
+//  INCLUDES
+#include "cmmaevent.h"
+
+//  CLASS DECLARATION
+/**
+*   This class is used to post events to the java.
+*/
+
+NONSHARABLE_CLASS(CMMAPlayerEvent): public CMMAEvent
+{
+public:
+    enum TEventType
+    {
+        EStarted = 0,
+        EStopped = 1,
+        EStoppedAtTime = 2,
+        EEndOfMedia = 3,
+        EDurationUpdated = 4,
+        EAudioDeviceUnavailable = 5,
+        EVolumeChanged = 6,
+        ESizeChanged = 7,
+        EError = 8,
+        EClosed = 9,
+        ERecordStarted = 10,
+        ERecordStopped = 11,
+        EPrivateDataAvailable = 12,
+        EPrivateDataOverwritten = 13,
+        EBufferingStarted = 14,
+        EBufferingEStopped = 15,
+        ERecordError = 16,
+        ENOKIA_EXTERNAL_VOLUME_EVENT = 17, // Event ID for Nokia volume key
+        EAudioOutputPreferenceChangeEvent =18 // Event ID for Audio Routing Preference Change
+    };
+
+private:
+    enum TEventParams
+    {
+        ENormal = 0,    // string and object
+        EString,        // int and string
+        ELong,          // int and long
+        EObject         // int and object
+    };
+
+public:
+    /**
+     * Constructor. One of set methods must be called before sending this
+     * event.
+     * @param aNotifyObject Java Objects.
+     * @param aHandleEventMethod Java method.
+     * @param aDisposable Defaults to disposable event.
+     */
+    CMMAPlayerEvent(jobject aNotifyObject,
+                    jmethodID aHandleEventMethod,
+                    TDisposability aDisposable = EDisposableEvent);
+
+    /**
+     * Destructor.
+     */
+    ~CMMAPlayerEvent();
+
+    /**
+     * Sets event data.
+     * @param aEventType Type of the event.
+     * @param aEventData Data to be send to Java
+     */
+    void SetLongEvent(TEventType aEventType, const TInt64& aEventData);
+
+    /**
+     * Sets event data.
+     * @param aEventType Type of the event.
+     * @param aEventData Data to be send to Java
+     */
+    void SetStringEventL(TEventType aEventType, const TDesC& aEventData);
+
+    /**
+     * Sets event data.
+     * @param aEventType Type of the event.
+     * @param aEventData Data to be send to Java
+     */
+    void SetObjectEventL(TEventType aEventType, const jobject aEventData);
+private: // from CJavaEvent
+    void Dispatch(JNIEnv& aJni);
+
+private: // Data
+    TEventType iEventType;
+    TEventParams iEventParams;
+
+    // Used when sending ELong event.
+    TInt64 iLongEventData;
+
+    // Owned event data. Used when sending EString event.
+    HBufC* iStringEventData;
+    // Owned event type. Used when sending ENormal event.
+    HBufC* iStringEventType;
+
+    // Used when sending ENormal or EObject event.
+    jobject iObjectEventData;
+};
+
+#endif // CMMAPLAYEREVENT_H