Implements WatchBase
[platform/core/appfw/widget-viewer.git] / watch-holder / src / watch.hh
index e03a392..6f3ea61 100644 (file)
 #include <bundle_cpp.h>
 
 #include <string>
-#include <remote_surface_evas.h>
+#include <screen_connector_remote_surface_evas/remote_surface_evas.h>
+#include <screen_connector_remote_surface_evas/image.h>
+#include <screen_connector_remote_surface_evas/image_event_listener.h>
 
-#include "common.hh"
+#include "watch_base.hh"
 #include "sharable_watch_interface.hh"
 
 namespace watch_holder {
 
-class EXPORT_API Watch : private screen_connector::RemoteSurfaceEvas,
-    public ISharableWatch {
+class EXPORT_API Watch : public WatchBase, public virtual ISharableWatch {
  public:
-  class IEvent {
-   public:
-    virtual void OnBound(const Watch& watch) = 0;
-    virtual void OnAdded(const Watch& watch) = 0;
-    virtual void OnUpdated(const Watch& watch) = 0;
-    virtual void OnRemoved(const Watch& watch) = 0;
-  };
-
-  Watch(std::string appid, Evas_Object* viewer_win, IEvent* listener, bool mock = false);
+  Watch(std::string appid, Evas_Object* viewer_win,
+    tizen_base::Bundle extra,
+    IEvent* listener, bool mock = false);
   Watch(int rid, std::string id, std::string appid, Evas_Object* viewer_win,
-    Watch::IEvent* listener, bool mock = false);
-  Watch(std::string appid, Evas_Object* viewer_win, tizen_base::Bundle extra,
+    tizen_base::Bundle extra,
+    IEvent* listener, bool mock = false);
+  Watch(std::string appid, Evas_Object* viewer_win,
     IEvent* listener, bool mock = false);
   Watch(int rid, std::string id, std::string appid, Evas_Object* viewer_win,
-    tizen_base::Bundle extra, Watch::IEvent* listener, bool mock = false);
-  virtual ~Watch() = default;
-  void Resume() override;
-  void Pause() override;
+    IEvent* listener, bool mock = false);
+  virtual ~Watch();
 
-  int Terminate();
   void Bind(Evas_Object* win);
-  void Unbind();
-  void CancelTouch();
-  Evas_Object* GetCurrentImage() const override;
-  int NotifyChangedEvent() const;
-  bool IsBound() const override;
-  std::string GetAppId() const;
-  int GetPid() const override;
-  int GetRid() const ;
-  tizen_base::Bundle GetExtra() const override;
-  bool IsFaulted() const override;
-  void BlockUpdate(bool enable) override;
+  Evas_Object* GetCurrentImageEvas() const override;
+  void Resume() override;
+  void NoRenderPush(int timeout);
 
  protected:
   friend class WatchHolder;
-  void OnEvasAdded(const std::string& appId, const std::string& instId,
-    int pid, const screen_connector::EvasObject& image) override;
-  void OnEvasRemoved(const std::string& appId, const std::string& instId,
-    int pid, const screen_connector::EvasObject& image) override;
-  void OnEvasChanged(const std::string& appId, const std::string& instId,
-    int pid, const screen_connector::EvasObject& image) override;
+  void OnAdded(const std::string& appId, const std::string& instId,
+      int pid, std::shared_ptr<screen_connector::WlBuffer> tbm) override;
+  void OnRemoved(const std::string& appId, const std::string& instId,
+      int pid, std::shared_ptr<screen_connector::WlBuffer> tbm) override;
+  void OnChanged(const std::string& appId, const std::string& instId,
+      int pid, std::shared_ptr<screen_connector::WlBuffer> tbm) override;
   static void OnAuxMsg(void *data, Evas_Object *o, void *ev_info);
-  void SetFaulted(bool is_faulted);
 
  private:
-  int pid_ = 0;
-  std::string appid_;
-  IEvent* listener_;
-  Evas_Object* current_image_ = nullptr;
   Evas_Object* bind_win_ = nullptr;
-  tizen_base::Bundle extra_data_;
-  bool is_faulted_ = false;
-  bool is_bound_ = false;
+  int no_render_timer_ = 0;
+  std::unique_ptr<screen_connector::Image> current_image_ = nullptr;
+  std::shared_ptr<screen_connector::EvasObject> viewer_win_ = nullptr;
+  std::shared_ptr<screen_connector::ImageEventListener> image_event_listner_ = nullptr;
 };
 
 }  // namespace watch_holder
 
-#endif  // __WATCH_HOLDER_WATCH_HH__
-
+#endif  // __WATCH_HOLDER_WATCH_HH__
\ No newline at end of file