symbian-qemu-0.9.1-12/qemu-symbian-svp/plugins/syborg_usbtest.py
author Shimizu Satoshi <s_shimizu@isb.co.jp>
Mon, 18 Oct 2010 19:39:25 +0900
changeset 124 606eafc6d6a8
parent 52 0dfaca43d90e
permissions -rw-r--r--
Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
124
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
     1
import qemu
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
     2
import os
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
     3
from ctypes import cdll
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
     4
import ctypes
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
     5
import datetime
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
     6
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
     7
class syborg_usbtest(qemu.devclass):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
     8
  REG_ID           = 0
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
     9
  REG_INT_ENABLE   = 1
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    10
  REG_DATA_TYPE    = 2
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    11
  REG_DMA_ADDR     = 3
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    12
  REG_DMA_SIZE     = 4
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    13
  REG_DMA_INFO     = 5
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    14
  REG_DMA_INFOSIZE = 6
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    15
  REG_DMA_CONNECT  = 7
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    16
  REG_DMA_DISCONNECT  = 8
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    17
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    18
  def loaddll(self):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    19
    #Load DLL
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    20
    print "start dll load"
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    21
    self.path = r'.\webcamapi.dll'
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    22
    self.webcamdll = cdll.LoadLibrary(self.path)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    23
    print "end dll load"
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    24
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    25
  def connect(self):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    26
    #Connect to USB Camera
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    27
    print "Connect to USB Camera"
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    28
    if self.infobuffer == 0:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    29
      self.infobuffer = ctypes.create_string_buffer(self.infosize)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    30
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    31
    self.DevHandle = self.webcamdll.ConnectDevHandle()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    32
    self.bufSize = ctypes.c_int()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    33
    self.PinHandle = self.webcamdll.ConnectPinHandle(self.DevHandle, ctypes.byref(self.bufSize), ctypes.byref(self.infobuffer))
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    34
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    35
    infobuf = self.infobuffer
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    36
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    37
    for x in infobuf:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    38
        ch = ord(x)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    39
        if self.infosize > 0:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    40
            self.dma_writeb(self.dataformat, ch)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    41
            self.dataformat += 1
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    42
            self.infosize -= 1
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    43
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    44
  def readframe(self):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    45
    #Read frame data
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    46
    if self.buffer == 0:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    47
      self.buffer = ctypes.create_string_buffer(self.bufSize.value)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    48
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    49
    self.timelog("Read frame data Start")
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    50
    self.Ret = self.webcamdll.ReadFrameData(self.PinHandle, ctypes.byref(self.buffer), self.bufSize.value)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    51
    self.timelog("Read frame data End")
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    52
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    53
    #Write frame data. This is for debug.
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    54
    #self.Ret = self.webcamdll.WriteFrameData("_frameData.bin", ctypes.byref(self.buffer), self.bufSize.value);
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    55
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    56
    buf = self.buffer
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    57
    length = len(buf)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    58
    count = 0
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    59
    for x in range(1, length, 2):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    60
        if self.dma_size > 0:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    61
          self.buf = ord(buf[count+1]) <<  8 | ord(buf[count+0])
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    62
          self.dma_writel(self.dma_addr, self.buf)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    63
          self.dma_addr += 2
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    64
          self.dma_size -= 2
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    65
          count += 2
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    66
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    67
    self.set_irq_level(0, self.int_enable)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    68
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    69
  def timelog(self,buf):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    70
    date = datetime.datetime.today().isoformat()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    71
    print "%(view)s %(time)s" % {"view":buf,"time":date}
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    72
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    73
  def create(self):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    74
    self.int_enable = 1
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    75
    self.dma_addr = 0
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    76
    self.dma_size = 0
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    77
    self.cha = 0
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    78
    self.dataformat = 0
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    79
    self.infosize = 0
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    80
    self.buffer = 0
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    81
    self.infobuffer = 0
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    82
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    83
  def write_reg(self, offset, value):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    84
  #This func is called when PDD performed WriteReg func.
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    85
    offset >>= 2
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    86
    if offset==self.REG_INT_ENABLE:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    87
        self.int_enable=value
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    88
        if value==1:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    89
          if self.data_type==0:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    90
            self.readframe()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    91
        else:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    92
          if self.data_type==0:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    93
            self.set_irq_level(0, self.int_enable)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    94
            #self.timer_off()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    95
          elif self.data_type==1:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    96
            self.set_irq_level(0, self.int_enable)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    97
    elif offset == self.REG_DATA_TYPE:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    98
      self.data_type = value
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
    99
    elif offset == self.REG_DMA_ADDR:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   100
      self.dma_addr = value
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   101
    elif offset == self.REG_DMA_SIZE:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   102
      self.dma_size = value
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   103
    elif offset == self.REG_DMA_INFO:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   104
      self.dataformat = value
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   105
    elif offset == self.REG_DMA_INFOSIZE:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   106
      self.infosize = value
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   107
    elif offset == self.REG_DMA_CONNECT:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   108
      self.loaddll()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   109
      self.connect()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   110
    elif offset == self.REG_DMA_DISCONNECT:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   111
      self.Ret = self.webcamdll.DisconnectPinHandle(self.PinHandle)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   112
      self.set_irq_level(0, self.int_enable)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   113
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   114
  def read_reg(self, offset):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   115
  #This func is called when PDD performed ReadReg func.
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   116
    offset >>= 2
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   117
    if offset == self.REG_ID:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   118
      return 0xc600f000
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   119
    elif offset == self.REG_INT_ENABLE:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   120
      return self.int_enable
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   121
    elif offset == self.REG_DMA_ADDR:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   122
      return self.dma_addr
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   123
    elif offset == self.REG_DMA_SIZE:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   124
      return self.dma_size
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   125
    elif offset == self.REG_DMA_FORMAT:
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   126
      return self.dataformat
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   127
    return 0
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   128
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   129
  def save(self, f):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   130
    f.put_u32(self.int_enable)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   131
    f.put_u32(self.dma_addr)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   132
    f.put_u32(self.dma_size)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   133
    f.put_u32(self.dataformat)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   134
    f.put_u32(self.infosize)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   135
    f.put_u32(self.buffer)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   136
    f.put_u32(self.infobuffer)
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   137
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   138
  def load(self, f):
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   139
    self.int_enable = f.get_u32()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   140
    self.dma_addr = f.get_u32()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   141
    self.dma_size = f.get_u32()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   142
    self.dataformat = f.get_u32()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   143
    self.infosize = f.get_u32()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   144
    self.buffer = f.get_u32()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   145
    self.infobuffer = f.get_u32()
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   146
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   147
  # Device class properties
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   148
  regions = [qemu.ioregion(0x1000, readl=read_reg, writel=write_reg)]
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   149
  irqs = 1
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   150
  name = "syborg,usbtest"
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   151
  properties={"chardev":None}
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   152
606eafc6d6a8 Obtain an image of Webcamera from QEMU and add the Bitmap change display function.
Shimizu Satoshi <s_shimizu@isb.co.jp>
parents: 52
diff changeset
   153
qemu.register_device(syborg_usbtest)