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-- |
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) |