#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