/* * main_dev_manager.h - main device manager * * Copyright (c) 2015 Intel Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Author: John Ye * Author: Wind Yuan */ #ifndef XCAMSRC_MAIN_DEV_MANAGER_H #define XCAMSRC_MAIN_DEV_MANAGER_H #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include #include #include #include #include #if HAVE_IA_AIQ #include #include #include #include #endif #if HAVE_LIBCL #include #include #endif #include namespace GstXCam { class MainDeviceManager; class MainDeviceManager : public XCam::DeviceManager { public: MainDeviceManager (); ~MainDeviceManager (); XCam::SmartPtr dequeue_buffer (); void pause_dequeue (); void resume_dequeue (); #if HAVE_LIBCL public: void set_cl_image_processor (XCam::SmartPtr &processor) { _cl_image_processor = processor; } XCam::SmartPtr &get_cl_image_processor () { return _cl_image_processor; } void set_cl_post_image_processor (XCam::SmartPtr &processor) { _cl_post_image_processor = processor; } XCam::SmartPtr &get_cl_post_image_processor () { return _cl_post_image_processor; } #endif protected: virtual void handle_message (const XCam::SmartPtr &msg); virtual void handle_buffer (const XCam::SmartPtr &buf); private: XCam::SafeList _ready_buffers; #if HAVE_LIBCL XCam::SmartPtr _cl_image_processor; XCam::SmartPtr _cl_post_image_processor; #endif }; }; #endif //XCAMSRC_MAIN_DEV_MANAGER_H