diff options
-rw-r--r-- | src/wm_layer_control.cpp | 2 | ||||
-rw-r--r-- | src/wm_layer_control.hpp | 196 |
2 files changed, 99 insertions, 99 deletions
diff --git a/src/wm_layer_control.cpp b/src/wm_layer_control.cpp index 325598d..1da5a01 100644 --- a/src/wm_layer_control.cpp +++ b/src/wm_layer_control.cpp @@ -390,7 +390,7 @@ void LayerControl::dispatchCreateEvent(ilmObjectType object, unsigned id, bool c rc = ilm_getPropertiesOfSurface(id, &sp); if(rc != ILM_SUCCESS) return; - // this->cb->surfaceCreated(pid, id); + this->cb.surfaceCreated(sp.creatorPid, id); ilm_surfaceAddNotification(id, surfaceCallback_static); ilm_surfaceSetSourceRectangle(id, 0, 0, sp.origSourceWidth, sp.origSourceHeight); } diff --git a/src/wm_layer_control.hpp b/src/wm_layer_control.hpp index f0bc175..10b2082 100644 --- a/src/wm_layer_control.hpp +++ b/src/wm_layer_control.hpp @@ -1,99 +1,99 @@ -/*
- * 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.
- */
-
-#include <string>
-#include <memory>
-#include <vector>
-#include <unordered_map>
-#include <functional>
-#include <ilm/ilm_control.h>
-#include "wm_error.hpp"
-#include "util.hpp"
-
-namespace wm {
-
-class Screen {
- public:
- Screen(unsigned w, unsigned h) : _width(w), _height(h){}
- unsigned width() { return _width; }
- unsigned height() { return _height; }
- private:
- unsigned _width;
- unsigned _height;
- unsigned _pysical_width = 0;
- unsigned _pysical_height = 0;
-};
-
-class LayerControlCallbacks {
- public:
- LayerControlCallbacks() {};
- ~LayerControlCallbacks() = default;
- LayerControlCallbacks(const LayerControlCallbacks &obj) = default;
-
- // callback functions
- void test(unsigned i) { HMI_DEBUG("test %d", i); }
- std::function<void(unsigned)> surfaceCreated;
- /* std::function<void(unsigned)> surfaceDestroyed;
- std::function<void(unsigned)> layerCreated;
- std::function<void(unsigned)> layerDestroyed; */
-};
-
-class WMLayer;
-class LayerState;
-class WMAction;
-class WMClient;
-
-class LayerControl
-{
- public:
- explicit LayerControl(const std::string& root);
- ~LayerControl() = default;
- WMError init(const LayerControlCallbacks& cb);
- void createNewLayer(unsigned id);
- unsigned getNewLayerID(const std::string& role, std::string* layer_name);
- struct rect getAreaSize(const std::string& area);
- void setupArea(double scaling);
- Screen getScreenInfo();
- double scale();
- // void setRenderOrder(const std::vector<unsigned> layer_render_order);
- // std::vector<unsigned> getAllRenderOrder();
- // std::vector<std::shared_ptr<WMLayer>>& getAllLayers();
- // std::vector<unsigned> getRenderOrder(const std::string& layer_name);
- WMError updateLayer(LayerState& layer_state);
- WMError commitChange();
- void undoUpdate();
- WMError layoutChange(const WMAction& action);
- WMError visibilityChange(const WMAction &action);
-
- // Don't use this function.
- void dispatchCreateEvent(ilmObjectType object, unsigned id, bool created);
- void dispatchPropertyChangeEvent(unsigned id, struct ilmSurfaceProperties*, t_ilm_notification_mask);
- void dispatchPropertyChangeEvent(unsigned id, struct ilmLayerProperties*, t_ilm_notification_mask);
- private:
- WMError makeVisible(const std::shared_ptr<WMClient> client);
- WMError makeInvisible(const std::shared_ptr<WMClient> client);
- WMError loadLayerSetting(const std::string& path);
- WMError loadAreaDb(const std::string& path);
-
- std::vector<std::shared_ptr<WMLayer>> wm_layers;
- std::unordered_map<std::string, struct rect> area2size;
- unsigned screenID;
- struct ilmScreenProperties screen_prop;
- double scaling;
- LayerControlCallbacks cb;
-};
-
+/* + * 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. + */ + +#include <string> +#include <memory> +#include <vector> +#include <unordered_map> +#include <functional> +#include <ilm/ilm_control.h> +#include "wm_error.hpp" +#include "util.hpp" + +namespace wm { + +class Screen { + public: + Screen(unsigned w, unsigned h) : _width(w), _height(h){} + unsigned width() { return _width; } + unsigned height() { return _height; } + private: + unsigned _width; + unsigned _height; + unsigned _pysical_width = 0; + unsigned _pysical_height = 0; +}; + +class LayerControlCallbacks { + public: + LayerControlCallbacks() {}; + ~LayerControlCallbacks() = default; + LayerControlCallbacks(const LayerControlCallbacks &obj) = default; + + // callback functions + void test(unsigned i) { HMI_DEBUG("test %d", i); } + std::function<void(unsigned, unsigned)> surfaceCreated; + /* std::function<void(unsigned)> surfaceDestroyed; + std::function<void(unsigned)> layerCreated; + std::function<void(unsigned)> layerDestroyed; */ +}; + +class WMLayer; +class LayerState; +class WMAction; +class WMClient; + +class LayerControl +{ + public: + explicit LayerControl(const std::string& root); + ~LayerControl() = default; + WMError init(const LayerControlCallbacks& cb); + void createNewLayer(unsigned id); + unsigned getNewLayerID(const std::string& role, std::string* layer_name); + struct rect getAreaSize(const std::string& area); + void setupArea(double scaling); + Screen getScreenInfo(); + double scale(); + // void setRenderOrder(const std::vector<unsigned> layer_render_order); + // std::vector<unsigned> getAllRenderOrder(); + // std::vector<std::shared_ptr<WMLayer>>& getAllLayers(); + // std::vector<unsigned> getRenderOrder(const std::string& layer_name); + WMError updateLayer(LayerState& layer_state); + WMError commitChange(); + void undoUpdate(); + WMError layoutChange(const WMAction& action); + WMError visibilityChange(const WMAction &action); + + // Don't use this function. + void dispatchCreateEvent(ilmObjectType object, unsigned id, bool created); + void dispatchPropertyChangeEvent(unsigned id, struct ilmSurfaceProperties*, t_ilm_notification_mask); + void dispatchPropertyChangeEvent(unsigned id, struct ilmLayerProperties*, t_ilm_notification_mask); + private: + WMError makeVisible(const std::shared_ptr<WMClient> client); + WMError makeInvisible(const std::shared_ptr<WMClient> client); + WMError loadLayerSetting(const std::string& path); + WMError loadAreaDb(const std::string& path); + + std::vector<std::shared_ptr<WMLayer>> wm_layers; + std::unordered_map<std::string, struct rect> area2size; + unsigned screenID; + struct ilmScreenProperties screen_prop; + double scaling; + LayerControlCallbacks cb; +}; + } // namespace wm
\ No newline at end of file |