usbdrv/peripheral/public/usbotgperipheralcontrolif.h
changeset 33 089413cdde3c
child 59 bbdce6bffaad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbdrv/peripheral/public/usbotgperipheralcontrolif.h	Fri Jul 23 15:54:47 2010 +0800
@@ -0,0 +1,80 @@
+// Copyright (c) 2000-2009 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:
+// e32\include\drivers\usbcshared.h
+// Kernel side definitions for the USB Device driver stack (PIL + LDD).
+// 
+//
+
+/**
+ @file usbotgperipheralcontrolif.h
+ @internalTechnology
+*/
+
+#ifndef USBOTGPERIPHERALCONTROLIF_H
+#define USBOTGPERIPHERALCONTROLIF_H
+
+#include <usb/usb_peripheral_shai.h> // For UsbShai::TUsbPeripheralEvent
+
+/**
+ * This M-class specifies the observer interface that the OTG state
+ * machine implements to listen to events of the peripheral stack.
+ */
+NONSHARABLE_CLASS(MUsbOtgPeripheralObserverIf)
+    {
+    public:
+    /**
+     * Called by the peripheral stack to report a peripheral event to
+     * the OTG stack.
+     *
+     * @param aEvent An enumeration value specifying the type of event
+     *   that has occurred
+     */
+    virtual void NotifyPeripheralEvent(UsbShai::TUsbPeripheralEvent aEvent) = 0;
+    };
+
+
+/**
+ * This M-class specifies the control interface that the OTG state
+ * machine uses to control the peripheral stack and register for
+ * peripheral events.
+ */
+NONSHARABLE_CLASS(MUsbOtgPeripheralControlIf)
+    {
+    public:
+    /**
+     * Called by the OTG state machine to enable the peripheral stack.
+     * When called, the peripheral stack must activate the controller
+     * and connect to the bus as soon as possible.
+     */
+    virtual void EnablePeripheralStack() = 0;
+
+    /**
+     * Called by the OTG state machine to disable the peripheral
+     * stack. When called, the peripheral stack must immediately
+     * disconnect from the bus and deactivate the controller.
+     */
+    virtual void DisablePeripheralStack() = 0;
+
+    /**
+     * Called by the OTG state machine to set the peripheral event
+     * observer.
+     *
+     * @param aObserver Pointer to the OTG Observer, or NULL when the
+     *   OTG stack is being shutdown.
+     */
+    virtual void SetOtgObserver(MUsbOtgPeripheralObserverIf* aObserver) = 0;
+    };
+
+
+#endif    // USBOTGPERIPHERALCONTROLIF_H