1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun * Copyright (c) 2019 Rockchip Corporation
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun * Licensed under the Apache License, Version 2.0 (the "License");
5*4882a593Smuzhiyun * you may not use this file except in compliance with the License.
6*4882a593Smuzhiyun * You may obtain a copy of the License at
7*4882a593Smuzhiyun *
8*4882a593Smuzhiyun * http://www.apache.org/licenses/LICENSE-2.0
9*4882a593Smuzhiyun *
10*4882a593Smuzhiyun * Unless required by applicable law or agreed to in writing, software
11*4882a593Smuzhiyun * distributed under the License is distributed on an "AS IS" BASIS,
12*4882a593Smuzhiyun * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*4882a593Smuzhiyun * See the License for the specific language governing permissions and
14*4882a593Smuzhiyun * limitations under the License.
15*4882a593Smuzhiyun *
16*4882a593Smuzhiyun */
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun #include "CamHwBase.h"
19*4882a593Smuzhiyun #include "SensorHw.h"
20*4882a593Smuzhiyun #include "LensHw.h"
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun namespace RkCam {
23*4882a593Smuzhiyun
CamHwBase()24*4882a593Smuzhiyun CamHwBase::CamHwBase()
25*4882a593Smuzhiyun : mKpHwSt (false)
26*4882a593Smuzhiyun {}
27*4882a593Smuzhiyun
~CamHwBase()28*4882a593Smuzhiyun CamHwBase::~CamHwBase()
29*4882a593Smuzhiyun {}
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun XCamReturn
init(const char * sns_ent_name)32*4882a593Smuzhiyun CamHwBase::init(const char* sns_ent_name)
33*4882a593Smuzhiyun {
34*4882a593Smuzhiyun // TODO: new all subdevices and open
35*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
36*4882a593Smuzhiyun }
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun XCamReturn
deInit()39*4882a593Smuzhiyun CamHwBase::deInit()
40*4882a593Smuzhiyun {
41*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
42*4882a593Smuzhiyun }
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun XCamReturn
prepare(uint32_t width,uint32_t height,int mode,int t_delay,int g_delay)45*4882a593Smuzhiyun CamHwBase::prepare(uint32_t width, uint32_t height, int mode, int t_delay, int g_delay)
46*4882a593Smuzhiyun {
47*4882a593Smuzhiyun // TODO
48*4882a593Smuzhiyun // check sensor's output width,height
49*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
50*4882a593Smuzhiyun }
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun XCamReturn
start()53*4882a593Smuzhiyun CamHwBase::start()
54*4882a593Smuzhiyun {
55*4882a593Smuzhiyun // TODO
56*4882a593Smuzhiyun // subscribe events
57*4882a593Smuzhiyun // start devices
58*4882a593Smuzhiyun // start pollthread
59*4882a593Smuzhiyun // mPollthread->start();
60*4882a593Smuzhiyun // mPollLumathread->start();
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
63*4882a593Smuzhiyun }
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun XCamReturn
stop()66*4882a593Smuzhiyun CamHwBase::stop()
67*4882a593Smuzhiyun {
68*4882a593Smuzhiyun // TODO
69*4882a593Smuzhiyun // unsubscribe events
70*4882a593Smuzhiyun // stop pollthread
71*4882a593Smuzhiyun // stop devices
72*4882a593Smuzhiyun // mPollthread->stop();
73*4882a593Smuzhiyun // mPollLumathread->stop();
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
76*4882a593Smuzhiyun }
77*4882a593Smuzhiyun
pause()78*4882a593Smuzhiyun XCamReturn CamHwBase::pause()
79*4882a593Smuzhiyun {
80*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
81*4882a593Smuzhiyun }
resume()82*4882a593Smuzhiyun XCamReturn CamHwBase::resume()
83*4882a593Smuzhiyun {
84*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
85*4882a593Smuzhiyun }
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun XCamReturn
getSensorModeData(const char * sns_ent_name,rk_aiq_exposure_sensor_descriptor & sns_des)88*4882a593Smuzhiyun CamHwBase::getSensorModeData(const char* sns_ent_name,
89*4882a593Smuzhiyun rk_aiq_exposure_sensor_descriptor& sns_des)
90*4882a593Smuzhiyun {
91*4882a593Smuzhiyun // TODO
92*4882a593Smuzhiyun // get from SensorHw
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
95*4882a593Smuzhiyun }
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun XCamReturn
setHwResListener(HwResListener * resListener)98*4882a593Smuzhiyun CamHwBase::setHwResListener(HwResListener* resListener)
99*4882a593Smuzhiyun {
100*4882a593Smuzhiyun mHwResLintener = resListener;
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
103*4882a593Smuzhiyun }
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun XCamReturn
poll_buffer_ready(SmartPtr<VideoBuffer> & buf,int type)106*4882a593Smuzhiyun CamHwBase::poll_buffer_ready (SmartPtr<VideoBuffer> &buf, int type)
107*4882a593Smuzhiyun {//not used
108*4882a593Smuzhiyun assert(0);
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
111*4882a593Smuzhiyun }
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun XCamReturn
poll_buffer_ready(SmartPtr<VideoBuffer> & buf)114*4882a593Smuzhiyun CamHwBase::poll_buffer_ready (SmartPtr<VideoBuffer> &buf)
115*4882a593Smuzhiyun {
116*4882a593Smuzhiyun if (mHwResLintener) {
117*4882a593Smuzhiyun return mHwResLintener->hwResCb(buf);
118*4882a593Smuzhiyun }
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
121*4882a593Smuzhiyun }
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun XCamReturn
poll_buffer_failed(int64_t timestamp,const char * msg)124*4882a593Smuzhiyun CamHwBase::poll_buffer_failed (int64_t timestamp, const char *msg)
125*4882a593Smuzhiyun {
126*4882a593Smuzhiyun // TODO
127*4882a593Smuzhiyun return XCAM_RETURN_ERROR_FAILED;
128*4882a593Smuzhiyun }
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun XCamReturn
poll_event_ready(uint32_t sequence,int type)131*4882a593Smuzhiyun CamHwBase::poll_event_ready (uint32_t sequence, int type)
132*4882a593Smuzhiyun {
133*4882a593Smuzhiyun return XCAM_RETURN_NO_ERROR;
134*4882a593Smuzhiyun }
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun XCamReturn
poll_event_failed(int64_t timestamp,const char * msg)137*4882a593Smuzhiyun CamHwBase::poll_event_failed (int64_t timestamp, const char *msg)
138*4882a593Smuzhiyun {
139*4882a593Smuzhiyun return XCAM_RETURN_ERROR_FAILED;
140*4882a593Smuzhiyun }
141*4882a593Smuzhiyun } //namspace RkCam
142