author | Matt Plumtree <matt.plumtree@nokia.com> |
Tue, 02 Nov 2010 09:43:32 +0000 | |
branch | graphics-phase-3 |
changeset 130 | b62870f3934d |
parent 52 | 0dfaca43d90e |
child 124 | 606eafc6d6a8 |
permissions | -rw-r--r-- |
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 |
#include <kern_priv.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 |
#include "webcamera_ldd.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 |
#include <webcamera_driver.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
|
21 |
|
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 |
#define DP(format...) Kern::Printf(format) |
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 |
|
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 |
_LIT(KDriver1PanicCategory,"WebcameraDevice"); |
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 |
/** |
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 |
*Create Logic device. |
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 |
* |
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 |
DECLARE_STANDARD_LDD() |
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 |
DP("DECLARE_STANDARD_LDD()"); |
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 |
return new DWebcameraLogicalDevice; |
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 |
} |
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 |
/** |
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 |
Constructor |
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 |
*/ |
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 |
DWebcameraLogicalDevice::DWebcameraLogicalDevice() |
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 |
DP("DWebcameraLogicalDevice()"); |
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 |
// Set version number for this device |
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 |
iVersion=RWebcameraDevice::VersionRequired(); |
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 |
// Indicate that we work with a PDD |
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 |
iParseMask=KDeviceAllowPhysicalDevice; |
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 |
|
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 |
Destructor |
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 |
DWebcameraLogicalDevice::~DWebcameraLogicalDevice() |
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 |
{ |
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 |
|
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 |
Second stage constructor for DDriver1Factory. |
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 |
This must at least set a name for the driver object. |
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 |
|
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 |
@return KErrNone if successful, otherwise one of the other system wide error codes. |
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 |
*/ |
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 |
TInt DWebcameraLogicalDevice::Install() |
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 |
{ |
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 |
DP("DWebcameraLogicalDevice::Install()"); |
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 |
return SetName(&RWebcameraDevice::Name()); |
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 |
|
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 |
Return the drivers capabilities. |
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 |
Called in the response to an RDevice::GetCaps() 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
|
71 |
|
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 |
@param aDes User-side descriptor to write capabilities information into |
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 |
*/ |
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 |
void DWebcameraLogicalDevice::GetCaps(TDes8& aDes) 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
|
75 |
{ |
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 |
// Create a capabilities object |
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 |
RWebcameraDevice::TCaps caps; |
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 |
caps.iVersion = iVersion; |
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 |
// Write it back to user memory |
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 |
Kern::InfoCopy(aDes,(TUint8*)&caps,sizeof(caps)); |
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 |
|
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 |
Called by the kernel's device driver framework to create a Logical 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
|
85 |
This is called in the context of the user thread (client) which requested the creation of a Logical 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
|
86 |
(E.g. through a call to RBusLogicalChannel::DoCreate) |
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 |
The thread is in a critical section. |
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 |
|
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 |
@param aChannel Set to point to the created Logical 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
|
90 |
|
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 |
@return KErrNone if successful, otherwise one of the other system wide error codes. |
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 |
TInt DWebcameraLogicalDevice::Create(DLogicalChannelBase*& aChannel) |
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 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
95 |
DP("DWebcameraLogicalDevice::Create() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
96 |
aChannel = new DWebcameraLogicalChannel; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
97 |
if(!aChannel) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
98 |
return KErrNoMemory; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
99 |
return KErrNone; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
100 |
DP("DWebcameraLogicalDevice::Create() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
101 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
102 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
103 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
104 |
Constructor |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
105 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
106 |
DWebcameraLogicalChannel::DWebcameraLogicalChannel() |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
107 |
: iReceiveDataDfc(GetOneFlameDfc, this, 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
|
108 |
,iCaptureDfc(CaptureDfc,this,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
|
109 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
110 |
DP("DWebcameraLogicalChannel::DWebcameraLogicalChannel() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
111 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
112 |
// Get pointer to client threads DThread object |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
113 |
iClient=&Kern::CurrentThread(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
114 |
// Open a reference on client thread so it's control block can't dissapear until |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
115 |
// this driver has finished with it. |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
116 |
((DObject*)iClient)->Open(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
117 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
118 |
DP("DWebcameraLogicalChannel::DWebcameraLogicalChannel() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
119 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
120 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
121 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
122 |
Destructor |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
123 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
124 |
DWebcameraLogicalChannel::~DWebcameraLogicalChannel() |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
125 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
126 |
DP("DWebcameraLogicalChannel::~DWebcameraLogicalChannel() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
127 |
// Cancel all processing that we may be doing |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
128 |
DoCancel(RWebcameraDevice::EAllRequests); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
129 |
if (iComm) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
130 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
131 |
delete iComm; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
132 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
133 |
if (iChunk) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
134 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
135 |
Epoc::FreePhysicalRam(iPhysAddr, iSize); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
136 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
137 |
// Close our reference on the client thread |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
138 |
Kern::SafeClose((DObject*&)iClient,NULL); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
139 |
DP("DWebcameraLogicalChannel::~DWebcameraLogicalChannel() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
140 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
141 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
142 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
143 |
Called when a user thread requests a handle to this 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
|
144 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
145 |
TInt DWebcameraLogicalChannel::RequestUserHandle(DThread* aThread, TOwnerType aType) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
146 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
147 |
// Make sure that only our client can get a handle |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
148 |
if (aType!=EOwnerThread || aThread!=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
|
149 |
return KErrAccessDenied; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
150 |
return KErrNone; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
151 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
152 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
153 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
154 |
Second stage constructor called by the kernel's device driver framework. |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
155 |
This is called in the context of the user thread (client) which requested the creation of a Logical 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
|
156 |
(E.g. through a call to RBusLogicalChannel::DoCreate) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
157 |
The thread is in a critical section. |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
158 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
159 |
@param aUnit The unit argument supplied by the 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
|
160 |
@param aInfo The info argument supplied by the 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
|
161 |
@param aVer The version argument supplied by the 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
|
162 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
163 |
@return KErrNone if successful, otherwise one of the other system wide error codes. |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
164 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
165 |
TInt DWebcameraLogicalChannel::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& aVer) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
166 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
167 |
DP("DWebcameraLogicalChannel::DoCreate() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
168 |
if(!Kern::CurrentThreadHasCapability(ECapability_None,__PLATSEC_DIAGNOSTIC_STRING("Checked by Webcamera"))) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
169 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
170 |
return KErrPermissionDenied; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
171 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
172 |
// Check version |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
173 |
if (!Kern::QueryVersionSupported(RWebcameraDevice::VersionRequired(),aVer)) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
174 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
175 |
return KErrNotSupported; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
176 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
177 |
// Setup LDD for receiving client messages |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
178 |
SetDfcQ(Kern::DfcQue0()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
179 |
iMsgQ.Receive(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
180 |
// Associate DFCs with the same queue we set above to receive client messages on |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
181 |
iReceiveDataDfc.SetDfcQ(iDfcQ); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
182 |
iCaptureDfc.SetDfcQ(iDfcQ); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
183 |
// Give PDD a pointer to this 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
|
184 |
Pdd()->iLdd=this; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
185 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
186 |
//allocate Memory |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
187 |
iSize=Kern::RoundToPageSize(BUFSIZE); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
188 |
TInt rtn=Epoc::AllocPhysicalRam(iSize, iPhysAddr); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
189 |
if (rtn != KErrNone) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
190 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
191 |
return rtn; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
192 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
193 |
rtn=DPlatChunkHw::New(iChunk, iPhysAddr, iSize,EMapAttrUserRw|EMapAttrBufferedC); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
194 |
if (rtn != KErrNone) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
195 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
196 |
if (iPhysAddr) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
197 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
198 |
Epoc::FreePhysicalRam(iPhysAddr, iSize); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
199 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
200 |
return rtn; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
201 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
202 |
iLAdr = reinterpret_cast<TUint8*>(iChunk->LinearAddress()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
203 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
204 |
iComm=HBuf8::New(BUFSIZE); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
205 |
if (!iComm) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
206 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
207 |
return KErrNotSupported; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
208 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
209 |
iReceiveDataBuffer=iComm; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
210 |
iCaptureBuffer=iComm; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
211 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
212 |
DP("DWebcameraLogicalChannel::DoCreate() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
213 |
return KErrNone; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
214 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
215 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
216 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
217 |
Process a message for this logical 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
|
218 |
This function is called in the context of a DFC thread. |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
219 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
220 |
@param aMessage The message to process. |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
221 |
The iValue member of this distinguishes the message type: |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
222 |
iValue==ECloseMsg, channel close message |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
223 |
iValue==KMaxTInt, a 'DoCancel' message |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
224 |
iValue>=0, a 'DoControl' message with function number equal to iValue |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
225 |
iValue<0, a 'DoRequest' message with function number equal to ~iValue |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
226 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
227 |
void DWebcameraLogicalChannel::HandleMsg(TMessageBase* aMsg) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
228 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
229 |
DP("DWebcameraLogicalChannel::HandleMsg() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
230 |
TThreadMessage& m=*(TThreadMessage*)aMsg; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
231 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
232 |
// Get message type |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
233 |
TInt id=m.iValue; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
234 |
DP("id=%d",id); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
235 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
236 |
// Decode the message type and dispatch it to the relevent handler function... |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
237 |
if (id==(TInt)ECloseMsg) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
238 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
239 |
DoCancel(RWebcameraDevice::EAllRequests); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
240 |
m.Complete(KErrNone, EFalse); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
241 |
return; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
242 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
243 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
244 |
if(m.Client()!=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
|
245 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
246 |
Kern::ThreadKill(m.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
|
247 |
EExitPanic, |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
248 |
ERequestFromWrongThread, |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
249 |
KDriver1PanicCategory); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
250 |
m.Complete(KErrNone,ETrue); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
251 |
return; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
252 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
253 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
254 |
if (id==KMaxTInt) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
255 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
256 |
DoCancel(m.Int0()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
257 |
m.Complete(KErrNone,ETrue); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
258 |
return; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
259 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
260 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
261 |
if (id<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
|
262 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
263 |
// DoRequest |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
264 |
TRequestStatus* pS=(TRequestStatus*)m.Ptr0(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
265 |
TInt rtn =DoRequest(~id,pS,m.Ptr1(),aMsg); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
266 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
267 |
if (rtn != KErrNone) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
268 |
Kern::RequestComplete(iClient,pS,rtn); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
269 |
m.Complete(KErrNone,ETrue); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
270 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
271 |
else |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
272 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
273 |
// DoControl |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
274 |
TInt rtn = DoControl(id,m.Ptr0(),aMsg); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
275 |
m.Complete(rtn,ETrue); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
276 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
277 |
DP("DWebcameraLogicalChannel::HandleMsg() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
278 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
279 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
280 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
281 |
Process synchronous 'control' requests |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
282 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
283 |
TInt DWebcameraLogicalChannel::DoControl(TInt aFunction, TAny* a1, TAny* a2) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
284 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
285 |
DP("DWebcameraLogicalChannel::DoControl() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
286 |
TInt rtn; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
287 |
TThreadMessage& m=*(TThreadMessage*)a2; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
288 |
TRequestStatus* pS=(TRequestStatus*)m.Ptr0(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
289 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
290 |
switch (aFunction) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
291 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
292 |
case RWebcameraDevice::EGetConfig: |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
293 |
// rtn = GetConfig((TDes8*)a1); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
294 |
rtn = KErrNone; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
295 |
if ( rtn != KErrNone ) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
296 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
297 |
Kern::RequestComplete(iClient,pS,rtn); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
298 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
299 |
break; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
300 |
case RWebcameraDevice::ESetConfig: |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
301 |
// rtn = SetConfig((const TDesC8*)a1); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
302 |
break; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
303 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
304 |
default: |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
305 |
rtn = KErrNotSupported; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
306 |
Kern::RequestComplete(iClient,pS,rtn); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
307 |
break; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
308 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
309 |
DP("DWebcameraLogicalChannel::DoControl() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
310 |
return rtn; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
311 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
312 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
313 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
314 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
315 |
Process asynchronous requests. |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
316 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
317 |
TInt DWebcameraLogicalChannel::DoRequest(TInt aReqNo, |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
318 |
TRequestStatus* aStatus, |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
319 |
TAny* a1, |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
320 |
TAny* a2) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
321 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
322 |
DP("DWebcameraLogicalChannel::DoRequest() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
323 |
TInt rtn; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
324 |
TThreadMessage& m=*(TThreadMessage*)a2; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
325 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
326 |
iRequesting =ETrue; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
327 |
rtn = KErrNone; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
328 |
DP("aReqNo=%d",aReqNo); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
329 |
switch(aReqNo) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
330 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
331 |
case RWebcameraDevice::EStart: |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
332 |
DP("EStart=%d",RWebcameraDevice::EStart); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
333 |
iReceiveDataStatus = aStatus; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
334 |
iReceiving = ETrue ; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
335 |
iReceiveDataBuffer->FillZ(iCaptureBuffer->MaxLength()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
336 |
iReceiveDataBuffer->Zero(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
337 |
DP("iReceiveDataBuffer Len=%d",iReceiveDataBuffer->MaxLength()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
338 |
DP("iReceiveDataBuffer Len=%d",iReceiveDataBuffer->Length()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
339 |
rtn = Pdd()->StartViewerFinder(iPhysAddr,iSize); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
340 |
if ( rtn != KErrNone ) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
341 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
342 |
DP("rtn=%d",rtn); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
343 |
iReceiving = EFalse ; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
344 |
Kern::RequestComplete(iClient,aStatus,rtn); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
345 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
346 |
else |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
347 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
348 |
DP("rtn=%d",rtn); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
349 |
// Example Platform Security capability check which tests the |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
350 |
// client for ECapability_None (which always passes)... |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
351 |
if ( iRequesting == EFalse ) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
352 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
353 |
DP("iRequesting=EFalse"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
354 |
iReceiving = EFalse ; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
355 |
Kern::RequestComplete(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
|
356 |
iReceiveDataStatus, |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
357 |
iReceiveDataResult); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
358 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
359 |
else |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
360 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
361 |
DP("iRequesting=ETrue"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
362 |
iReceiveDataDescriptor=(TDes8*)a1; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
363 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
364 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
365 |
break; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
366 |
case RWebcameraDevice::ECapture: |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
367 |
iCaptureing = ETrue ; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
368 |
iCaptureStatus = aStatus; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
369 |
iCaptureBuffer->FillZ(iCaptureBuffer->MaxLength()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
370 |
iCaptureBuffer->Zero(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
371 |
DP("iCaptureBuffer Len=%d",iCaptureBuffer->MaxLength()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
372 |
DP("iCaptureBuffer Len=%d",iCaptureBuffer->Length()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
373 |
rtn = Pdd()->StartCapture(iPhysAddr,iSize); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
374 |
DP("rtn=%d",rtn); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
375 |
if ( rtn != KErrNone ) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
376 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
377 |
iCaptureing = EFalse ; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
378 |
Kern::RequestComplete(iClient,aStatus,rtn); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
379 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
380 |
else |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
381 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
382 |
if ( iRequesting == EFalse ) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
383 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
384 |
DP("iRequesting=EFalse"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
385 |
iReceiving = EFalse ; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
386 |
Kern::RequestComplete(iClient,iCaptureStatus,iCaptureResult); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
387 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
388 |
else |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
389 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
390 |
DP("Capture iRequesting=ETrue"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
391 |
iCaptureDescriptor=(TDes8*)a1; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
392 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
393 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
394 |
break; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
395 |
default: |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
396 |
rtn=KErrNotSupported; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
397 |
Kern::RequestComplete(iClient,aStatus,rtn); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
398 |
break; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
399 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
400 |
iRequesting = EFalse; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
401 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
402 |
DP("DWebcameraLogicalChannel::DoRequest() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
403 |
return rtn; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
404 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
405 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
406 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
407 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
408 |
Process cancelling of asynchronous requests. |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
409 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
410 |
void DWebcameraLogicalChannel::DoCancel(TUint aMask) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
411 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
412 |
DP("DWebcameraLogicalChannel::DoCancel() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
413 |
TInt rtn; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
414 |
DP("aMask=%d",aMask); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
415 |
if (aMask&(1<<RWebcameraDevice::EStart)) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
416 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
417 |
DP("RWebcameraDevice::EStart=%d",RWebcameraDevice::EStart); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
418 |
if (iReceiveDataStatus) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
419 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
420 |
DP("iReceiveDataStatus=%d",iReceiveDataStatus); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
421 |
Pdd()->Stop(DWebcameraDriverBase::USB_cancel); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
422 |
iReceiving = EFalse ; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
423 |
iReceiveDataDfc.Cancel(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
424 |
Kern::RequestComplete(iClient,iReceiveDataStatus,KErrCancel); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
425 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
426 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
427 |
if (aMask&(1<<RWebcameraDevice::ECapture)) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
428 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
429 |
DP("RWebcameraDevice::ECapture=%d",RWebcameraDevice::ECapture); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
430 |
if (iCaptureStatus) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
431 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
432 |
Pdd()->Stop(DWebcameraDriverBase::USB_cancel); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
433 |
iReceiving = EFalse ; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
434 |
iCaptureDfc.Cancel(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
435 |
Kern::RequestComplete(iClient,iCaptureStatus,KErrCancel); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
436 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
437 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
438 |
DP("DWebcameraLogicalChannel::DoCancel() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
439 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
440 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
441 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
442 |
Called by PDD from ISR to indicate that a ReceiveData 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
|
443 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
444 |
void DWebcameraLogicalChannel::GetOneFlameComplete(TInt aDataSize) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
445 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
446 |
DP("DWebcameraLogicalChannel::GetOneFlameComplete() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
447 |
DP("datasize=%d",aDataSize); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
448 |
iSaveSize=iSize - aDataSize; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
449 |
// Queue DFC |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
450 |
iReceiveDataDfc.Add(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
451 |
//set size of received data |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
452 |
if (iSaveSize > 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
|
453 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
454 |
iReceiveDataResult = KErrNone; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
455 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
456 |
else |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
457 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
458 |
iReceiveDataResult = KErrUnknown;//TODO:define of error |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
459 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
460 |
DP("DWebcameraLogicalChannel::GetOneFlameComplete() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
461 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
462 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
463 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
464 |
Called by PDD from ISR to indicate that a get capture image 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
|
465 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
466 |
void DWebcameraLogicalChannel::CaptureComplete(TInt aDataSize) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
467 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
468 |
DP("DWebcameraLogicalChannel::CaptureComplete() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
469 |
DP("datasize=%d",aDataSize); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
470 |
iSaveSize=iSize - aDataSize; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
471 |
// Queue DFC |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
472 |
iCaptureDfc.Add(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
473 |
//set size of received data |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
474 |
if (iSaveSize > 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
|
475 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
476 |
iCaptureResult = KErrNone; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
477 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
478 |
else |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
479 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
480 |
iCaptureResult = KErrUnknown;//TODO:define of error |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
481 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
482 |
DP("DWebcameraLogicalChannel::CaptureComplete() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
483 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
484 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
485 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
486 |
DFC Callback which gets triggered after the PDD has signalled that getting oneflame 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
|
487 |
This just casts aPtr and calls DoGetOneFlameComplete(). |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
488 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
489 |
void DWebcameraLogicalChannel::GetOneFlameDfc(TAny* aPtr) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
490 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
491 |
DP("DWebcameraLogicalChannel::GetOneFlameDfc() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
492 |
((DWebcameraLogicalChannel*)aPtr)->DoGetOneFlameComplete(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
493 |
DP("DWebcameraLogicalChannel::GetOneFlameDfc() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
494 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
495 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
496 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
497 |
DFC Callback which gets triggered after the PDD has signalled that getting Capture image 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
|
498 |
This just casts aPtr and calls DoCaptureComplete(). |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
499 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
500 |
void DWebcameraLogicalChannel::CaptureDfc(TAny* aPtr) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
501 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
502 |
DP("DWebcameraLogicalChannel::CaptureDfc() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
503 |
((DWebcameraLogicalChannel*)aPtr)->DoCaptureComplete(); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
504 |
DP("DWebcameraLogicalChannel::CaptureDfc() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
505 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
506 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
507 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
508 |
Called from a DFC after the PDD has signalled that getting oneflame 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
|
509 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
510 |
void DWebcameraLogicalChannel::DoGetOneFlameComplete() |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
511 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
512 |
DP("DWebcameraLogicalChannel::DoGetOneFlameComplete() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
513 |
iReceiveDataBuffer->Copy(iLAdr,iSaveSize); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
514 |
DP("iReceiveDataBuffer Len=%d",iReceiveDataBuffer->Length()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
515 |
// Write data to client from our buffer |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
516 |
TInt result=Kern::ThreadDesWrite(iClient,iReceiveDataDescriptor,*iReceiveDataBuffer,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
|
517 |
// Finished with client descriptor, so NULL it to help detect coding errors |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
518 |
iReceiveDataDescriptor = NULL; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
519 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
520 |
// Use result code from PDD if it was an error |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
521 |
if(iReceiveDataResult!=KErrNone) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
522 |
result = iReceiveDataResult; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
523 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
524 |
// Complete clients 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
|
525 |
Kern::RequestComplete(iClient,iReceiveDataStatus,result); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
526 |
DP("DWebcameraLogicalChannel::DoGetOneFlameComplete() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
527 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
528 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
529 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
530 |
Called from a DFC after the PDD has signalled that getting Capture image 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
|
531 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
532 |
void DWebcameraLogicalChannel::DoCaptureComplete() |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
533 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
534 |
DP("DWebcameraLogicalChannel::DoCaptureComplete() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
535 |
iCaptureBuffer->Copy(iLAdr,iSaveSize); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
536 |
DP("iCaptureBuffer Len=%d",iCaptureBuffer->Length()); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
537 |
// Write data to client from our buffer |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
538 |
TInt result=Kern::ThreadDesWrite(iClient,iCaptureDescriptor,*iCaptureBuffer,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
|
539 |
// Finished with client descriptor, so NULL it to help detect coding errors |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
540 |
iCaptureDescriptor = NULL; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
541 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
542 |
// Use result code from PDD if it was an error |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
543 |
if(iCaptureResult!=KErrNone) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
544 |
result = iCaptureResult; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
545 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
546 |
// Complete clients 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
|
547 |
Kern::RequestComplete(iClient,iCaptureStatus,result); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
548 |
DP("DWebcameraLogicalChannel::DoCaptureComplete() end"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
549 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
550 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
551 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
552 |
Process a GetConfig control message. This writes the current driver configuration to a |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
553 |
RWebcameraDevice::TConfigBuf supplied by the 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
|
554 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
555 |
TInt DWebcameraLogicalChannel::GetConfig(TDes8* aConfigBuf) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
556 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
557 |
//unsupported |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
558 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
559 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
560 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
561 |
Process a SetConfig control message. This sets the driver configuration using a |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
562 |
RWebcameraDevice::TConfigBuf supplied by the 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
|
563 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
564 |
TInt DWebcameraLogicalChannel::SetConfig(const TDesC8* aConfigBuf) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
565 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
566 |
//unsupported |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
567 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
568 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
569 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
570 |
Fill a TConfig with the drivers current configuration. |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
571 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
572 |
/*void DWebcameraLogicalChannel::CurrentConfig(RWebcameraDevice::TConfig& aConfig) |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
573 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
574 |
//unsupported |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
575 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
576 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
577 |
|
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
578 |
/** |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
579 |
*Get the point to Physical 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
|
580 |
*/ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
581 |
DWebcameraDriverBase* DWebcameraLogicalChannel::Pdd() |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
582 |
{ |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
583 |
DP("DWebcameraLogicalChannel::Pdd() start"); |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
584 |
return (DWebcameraDriverBase*)iPdd; |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
585 |
} |
0dfaca43d90e
Added web camera drivers and QEMU plug-in for obtaining and transferring dummy data.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff
changeset
|
586 |