1 /* 2 * isp_poll_thread.h - isp poll thread for event and buffer 3 * 4 * Copyright (c) 2014-2015 Intel Corporation 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 * Author: Wind Yuan <feng.yuan@intel.com> 19 * Author: Yinhang Liu <yinhangx.liu@intel.com> 20 */ 21 22 #ifndef XCAM_ISP_POLL_THREAD_H 23 #define XCAM_ISP_POLL_THREAD_H 24 25 #include "poll_thread.h" 26 #include "isp_controller.h" 27 28 namespace XCam { 29 30 class IspPollThread 31 : public PollThread 32 { 33 public: 34 explicit IspPollThread (); 35 virtual ~IspPollThread (); 36 37 bool set_isp_controller (SmartPtr<IspController> &isp); 38 39 virtual XCamReturn start(); 40 virtual XCamReturn stop (); 41 42 protected: 43 virtual XCamReturn handle_events (struct v4l2_event &event); 44 45 private: 46 virtual XCamReturn init_3a_stats_pool (); 47 virtual XCamReturn capture_3a_stats (SmartPtr<X3aStats> &stats); 48 49 private: 50 XCAM_DEAD_COPY (IspPollThread); 51 52 private: 53 SmartPtr<X3aStatsPool> _3a_stats_pool; 54 SmartPtr<IspController> _isp_controller; 55 }; 56 57 }; 58 59 #endif // XCAM_ISP_POLL_THREAD_H 60