/* * Copyright (c) 2017 TOYOTA MOTOR 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. */ #ifndef WM_LAYERS_H #define WM_LAYERS_H #include #include #include #include #include "wm_error.hpp" namespace wm { class LayerState { public: LayerState(); ~LayerState() = default; private: std::vector _ivi_layer_id_list; std::unordered_map area2ivi_layer_id; // std::map _render_order; }; class LayerSetting { public: enum MANAGEMENT_TYPE { TILE, STACK }; explicit LayerSetting(const std::string& name, MANAGEMENT_TYPE type, unsigned begin, unsigned end); ~LayerSetting() = default; const std::string& layerName() { return this->name; } MANAGEMENT_TYPE layerType() { return this->type; }; void appendRole(const std::string& role); void appendArea(const std::string& area); unsigned idBegin() { return this->id_begin; } unsigned idEnd() { return this->id_end; } unsigned getNewLayerID(const std::string& role); void removeLayerID(unsigned id); /* unsigned getNewID(const std::string& role); void remove(unsigned ivi_layer_id); void clear(); bool attach(unsigned ivi_layer_id, const std::string& area); void stack(unsigned ivi_layer_id, const std::string& area); bool updateRenderOrder(const std::vector list); */ private: std::string name = ""; // Layer name MANAGEMENT_TYPE type; std::vector role_list; std::vector area_list; std::vector id_list; unsigned id_begin; unsigned id_end; }; class WMLayer { public: WMLayer(); ~WMLayer() = default; unsigned getNewLayerID(const std::string& role); LayerState getLayerState() const { return before_state; } WMError setLayerState(const LayerState& l); bool checkIDBelongTo(unsigned id); private: LayerState before_state; LayerState state; std::unique_ptr setting; }; } // namespace wm #endif // WM_LAYERS_H