blob: 1b826c7f8477d3e97d88e4e692704525844d8416
1 | /* |
2 | * Copyright (C) 2011 The Android Open Source Project |
3 | * |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. |
6 | * You may obtain a copy of the License at |
7 | * |
8 | * http://www.apache.org/licenses/LICENSE-2.0 |
9 | * |
10 | * Unless required by applicable law or agreed to in writing, software |
11 | * distributed under the License is distributed on an "AS IS" BASIS, |
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
13 | * See the License for the specific language governing permissions and |
14 | * limitations under the License. |
15 | */ |
16 | |
17 | #ifndef HW_EMULATOR_CAMERA_EMULATED_QEMU_CAMERA_H |
18 | #define HW_EMULATOR_CAMERA_EMULATED_QEMU_CAMERA_H |
19 | |
20 | /* |
21 | * Contains declaration of a class EmulatedQemuCamera that encapsulates |
22 | * functionality of an emulated camera connected to the host. |
23 | */ |
24 | |
25 | #include "EmulatedCamera.h" |
26 | #include "EmulatedQemuCameraDevice.h" |
27 | |
28 | namespace android { |
29 | |
30 | /* Encapsulates functionality of an emulated camera connected to the host. |
31 | */ |
32 | class EmulatedQemuCamera : public EmulatedCamera { |
33 | public: |
34 | /* Constructs EmulatedQemuCamera instance. */ |
35 | EmulatedQemuCamera(int cameraId, struct hw_module_t* module); |
36 | |
37 | /* Destructs EmulatedQemuCamera instance. */ |
38 | ~EmulatedQemuCamera(); |
39 | |
40 | /*************************************************************************** |
41 | * EmulatedCamera virtual overrides. |
42 | **************************************************************************/ |
43 | |
44 | public: |
45 | /* Initializes EmulatedQemuCamera instance. */ |
46 | status_t Initialize(const char* device_name, |
47 | const char* frame_dims, |
48 | const char* facing_dir); |
49 | |
50 | /*************************************************************************** |
51 | * EmulatedCamera abstract API implementation. |
52 | **************************************************************************/ |
53 | |
54 | protected: |
55 | /* Gets emulated camera device ised by this instance of the emulated camera. |
56 | */ |
57 | EmulatedCameraDevice* getCameraDevice(); |
58 | |
59 | /*************************************************************************** |
60 | * Data memebers. |
61 | **************************************************************************/ |
62 | |
63 | protected: |
64 | /* Contained qemu camera device object. */ |
65 | EmulatedQemuCameraDevice mQemuCameraDevice; |
66 | |
67 | /* Supported frame dimensions reported by the camera device. */ |
68 | String8 mFrameDims; |
69 | }; |
70 | |
71 | }; /* namespace android */ |
72 | |
73 | #endif /* HW_EMULATOR_CAMERA_EMULATED_QEMU_CAMERA_H */ |
74 |