MT Showcase SDK
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
DataGatheringServiceAPI.hpp
1 #pragma once
2 
3 #include "Export.hpp"
4 #include "GraphTypes.hpp"
5 
6 #include <MultiTouch/MultiTouch.hpp>
7 
8 #include <Valuable/Node.hpp>
9 
10 #include <QDateTime>
11 #include <QJsonObject>
12 #include <QVariant>
13 
14 namespace DataGathering
15 {
20  class SHOWCASE_API Event : public QJsonObject
21  {
22  public:
23  Event(const QString & name);
24  };
25 
27  class SHOWCASE_API DataGatheringServiceAPI
28  {
29  public:
31  virtual void logEvent(Event event) = 0;
32  };
33 
35 
37  SHOWCASE_API Event applicationStartedEvent();
39  SHOWCASE_API Event applicationQuitEvent();
40 
46  SHOWCASE_API Event widgetCreatedEvent(Valuable::Node::Uuid widgetId, const Showcase::NodeId & uiNodeId,
47  Valuable::Node::Uuid creatorId = 0);
53  SHOWCASE_API Event widgetDestroyedEvent(Valuable::Node::Uuid widgetId, const QString & reason);
54 
59  SHOWCASE_API Event assetLoadedEvent(Valuable::Node::Uuid widgetId, const QString & asset);
60 
65  SHOWCASE_API Event videoStartEvent(Valuable::Node::Uuid widgetId, float position);
71  SHOWCASE_API Event videoEndEvent(Valuable::Node::Uuid widgetId, float position, const QString & reason);
72 
79  SHOWCASE_API Event widgetAddedToPersonalSpaceEvent(Valuable::Node::Uuid widgetId, uint64_t code,
80  const QString & name, const QString & address);
85  SHOWCASE_API Event widgetRemovedFromPersonalSpaceEvent(Valuable::Node::Uuid widgetId, uint64_t code);
86 
93  SHOWCASE_API Event widgetInEmailEvent(Valuable::Node::Uuid widgetId, const QString & name,
94  const QString & address);
95 
101  SHOWCASE_API Event emailEvent(const QString & name, const QString & address,
102  bool success, const QString & error = QString());
103 
107  SHOWCASE_API Event pdfPageViewedEvent(Valuable::Node::Uuid widgetId, int page);
108 
112  SHOWCASE_API Event urlChangedEvent(Valuable::Node::Uuid widgetId, const QString & url);
113 
120  SHOWCASE_API Event objectDownEvent(MultiTouch::TrackedObject::Id objectId, const Nimble::Vector2f & location,
121  MultiTouch::TrackedObjectType type, Valuable::Node::Uuid widgetId = 0,
122  uint64_t code = 0);
126  SHOWCASE_API Event objectUpEvent(MultiTouch::TrackedObject::Id objectId, const Nimble::Vector2f & location);
127 
129 
132  SHOWCASE_API void logEventToService(const Event & event);
133 }