baseport/syborg/webcamera/webcamera_device.h
author andrew.jordan <>
Tue, 07 Sep 2010 23:21:20 +0100
changeset 105 70ccc05e6c8c
parent 52 0dfaca43d90e
permissions -rw-r--r--
NTT DOCOMO, INC - Fix for Bug 3598 - The argument for ReadReg() and WriteReg() in Syborg BSP overflows
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
52
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     1
/*
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     2
* Copyright (c) 2010 ISB.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     3
* All rights reserved.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     8
*
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     9
* Initial Contributors:
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    10
* ISB - initial contribution.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    11
*
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    12
* Contributors:
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    13
*
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    14
* Description: USB driver for test
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    15
*
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    16
*/
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    17
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    18
#ifndef __deviceBASE_H
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    19
#define __deviceBASE_H
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    20
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    21
#include <comm.h>
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    22
#include <e32hal.h>
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    23
#include <e32ver.h>
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    24
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    25
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    26
class DWebcameraLogicalChannelBase : public DLogicalChannel
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    27
{
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    28
public:
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    29
	/**
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    30
	  Called by PDD from ISR to indicate that a get oneflame operation has completed.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    31
	*/
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    32
    virtual void GetOneFlameComplete(TInt aResult)=0;
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    33
	/** 
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    34
	call to the function if one Capture image is received.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    35
	*/
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    36
    virtual void CaptureComplete(TInt aResult)=0;
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    37
	/** 
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    38
	call to the function if one flame is received.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    39
	*/
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    40
	/** 
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    41
	call to the function if one Capture image is received.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    42
	*/
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    43
	virtual void DoCaptureComplete()=0;
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    44
	
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    45
public:
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    46
  /**
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    47
   * pointer to client.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    48
   */	
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    49
	DThread* iClient;	
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    50
};
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    51
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    52
class DWebcameraDriverBase : public DBase
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    53
{
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    54
public:
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    55
  /**
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    56
  Enumeration of stop modes.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    57
  */
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    58
  enum TUSBStopMode
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    59
	{
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    60
	USB_ViewerFinder =0,
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    61
	USB_capture      =1,
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    62
	USB_cancel      =2
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    63
	};
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    64
  /**
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    65
  request.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    66
  */
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    67
  virtual TInt StartViewerFinder(TUint aBuffer,TInt aSize)=0;
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    68
  /**
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    69
  Enumeration of stop modes.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    70
  */
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    71
  virtual TInt StartCapture(TUint aBuffer,TInt aSize)=0;
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    72
  /**
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    73
  Enumeration of stop modes.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    74
  */
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    75
  virtual void Stop(TUSBStopMode aMode)=0;
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    76
//virtual void Caps(TDes8 &aCaps) const;
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    77
 
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    78
public:
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    79
  /**
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    80
   * pointer to logic channel.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    81
   */		
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    82
  DWebcameraLogicalChannelBase* iLdd;
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    83
   /**
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    84
   * Linear Addresses of Peripherals.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    85
   */		
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    86
  TLinAddr iPortAddr;
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    87
  /**
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    88
   * interrupt number.
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    89
   */		
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    90
  TInt iIrq;
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    91
  
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    92
};
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    93
0dfaca43d90e Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    94
#endif