Switched UIAbsEventCollector and UIRelEventCollector also to instant-send
This commit is contained in:
parent
bf4501edc7
commit
fe705d2123
11 changed files with 38 additions and 55 deletions
|
@ -29,18 +29,20 @@ UIAbsEventCollector::UIAbsEventCollector(UInput& uinput, uint32_t device_id, int
|
|||
UIEventEmitterPtr
|
||||
UIAbsEventCollector::create_emitter()
|
||||
{
|
||||
UIAbsEventEmitterPtr emitter(new UIAbsEventEmitter);
|
||||
UIAbsEventEmitterPtr emitter(new UIAbsEventEmitter(*this));
|
||||
m_emitters.push_back(emitter);
|
||||
return m_emitters.back();
|
||||
}
|
||||
|
||||
void
|
||||
UIAbsEventCollector::send(int value)
|
||||
{
|
||||
m_uinput.send(get_device_id(), get_type(), get_code(), value);
|
||||
}
|
||||
|
||||
void
|
||||
UIAbsEventCollector::sync()
|
||||
{
|
||||
for(Emitters::iterator i = m_emitters.begin(); i != m_emitters.end(); ++i)
|
||||
{
|
||||
m_uinput.send(get_device_id(), get_type(), get_code(), (*i)->get_value());
|
||||
}
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -32,6 +32,7 @@ public:
|
|||
UIAbsEventCollector(UInput& uinput, uint32_t device_id, int type, int code);
|
||||
|
||||
UIEventEmitterPtr create_emitter();
|
||||
void send(int value);
|
||||
void sync();
|
||||
|
||||
private:
|
||||
|
|
|
@ -18,7 +18,10 @@
|
|||
|
||||
#include "ui_abs_event_emitter.hpp"
|
||||
|
||||
UIAbsEventEmitter::UIAbsEventEmitter() :
|
||||
#include "ui_abs_event_collector.hpp"
|
||||
|
||||
UIAbsEventEmitter::UIAbsEventEmitter(UIAbsEventCollector& collector) :
|
||||
m_collector(collector),
|
||||
m_value(0)
|
||||
{
|
||||
}
|
||||
|
@ -26,13 +29,11 @@ UIAbsEventEmitter::UIAbsEventEmitter() :
|
|||
void
|
||||
UIAbsEventEmitter::send(int value)
|
||||
{
|
||||
m_value = value;
|
||||
}
|
||||
|
||||
int
|
||||
UIAbsEventEmitter::get_value() const
|
||||
{
|
||||
return m_value;
|
||||
if (m_value != value)
|
||||
{
|
||||
m_value = value;
|
||||
m_collector.send(m_value);
|
||||
}
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -21,16 +21,18 @@
|
|||
|
||||
#include "ui_event_emitter.hpp"
|
||||
|
||||
class UIAbsEventCollector;
|
||||
|
||||
class UIAbsEventEmitter : public UIEventEmitter
|
||||
{
|
||||
private:
|
||||
UIAbsEventCollector& m_collector;
|
||||
int m_value;
|
||||
|
||||
public:
|
||||
UIAbsEventEmitter();
|
||||
UIAbsEventEmitter(UIAbsEventCollector& collector);
|
||||
|
||||
void send(int value);
|
||||
int get_value() const;
|
||||
|
||||
private:
|
||||
UIAbsEventEmitter(const UIAbsEventEmitter&);
|
||||
|
|
|
@ -35,7 +35,6 @@ public:
|
|||
virtual ~UIEventEmitter() {}
|
||||
|
||||
virtual void send(int value) = 0;
|
||||
virtual int get_value() const = 0;
|
||||
|
||||
private:
|
||||
UIEventEmitter(const UIEventEmitter&);
|
||||
|
|
|
@ -38,10 +38,4 @@ UIKeyEventEmitter::send(int value)
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
UIKeyEventEmitter::get_value() const
|
||||
{
|
||||
return m_value;
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -33,7 +33,6 @@ public:
|
|||
UIKeyEventEmitter(UIKeyEventCollector& collector);
|
||||
|
||||
void send(int value);
|
||||
int get_value() const;
|
||||
|
||||
private:
|
||||
UIKeyEventEmitter(const UIKeyEventEmitter&);
|
||||
|
|
|
@ -29,25 +29,20 @@ UIRelEventCollector::UIRelEventCollector(UInput& uinput, uint32_t device_id, int
|
|||
UIEventEmitterPtr
|
||||
UIRelEventCollector::create_emitter()
|
||||
{
|
||||
UIRelEventEmitterPtr emitter(new UIRelEventEmitter);
|
||||
UIRelEventEmitterPtr emitter(new UIRelEventEmitter(*this));
|
||||
m_emitters.push_back(emitter);
|
||||
return m_emitters.back();
|
||||
}
|
||||
|
||||
void
|
||||
UIRelEventCollector::send(int value)
|
||||
{
|
||||
m_uinput.send(get_device_id(), get_type(), get_code(), value);
|
||||
}
|
||||
|
||||
void
|
||||
UIRelEventCollector::sync()
|
||||
{
|
||||
int value = 0;
|
||||
for(Emitters::iterator i = m_emitters.begin(); i != m_emitters.end(); ++i)
|
||||
{
|
||||
value += (*i)->get_value();
|
||||
(*i)->clear();
|
||||
}
|
||||
|
||||
if (value != 0)
|
||||
{
|
||||
m_uinput.send(get_device_id(), get_type(), get_code(), value);
|
||||
}
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -32,6 +32,7 @@ public:
|
|||
UIRelEventCollector(UInput& uinput, uint32_t device_id, int type, int code);
|
||||
|
||||
UIEventEmitterPtr create_emitter();
|
||||
void send(int value);
|
||||
void sync();
|
||||
|
||||
private:
|
||||
|
|
|
@ -18,27 +18,17 @@
|
|||
|
||||
#include "ui_rel_event_emitter.hpp"
|
||||
|
||||
UIRelEventEmitter::UIRelEventEmitter() :
|
||||
m_value()
|
||||
#include "ui_rel_event_collector.hpp"
|
||||
|
||||
UIRelEventEmitter::UIRelEventEmitter(UIRelEventCollector& collector) :
|
||||
m_collector(collector)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
UIRelEventEmitter::send(int value)
|
||||
{
|
||||
m_value = value;
|
||||
}
|
||||
|
||||
int
|
||||
UIRelEventEmitter::get_value() const
|
||||
{
|
||||
return m_value;
|
||||
}
|
||||
|
||||
void
|
||||
UIRelEventEmitter::clear()
|
||||
{
|
||||
m_value = 0;
|
||||
m_collector.send(value);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -21,18 +21,17 @@
|
|||
|
||||
#include "ui_event_emitter.hpp"
|
||||
|
||||
class UIRelEventCollector;
|
||||
|
||||
class UIRelEventEmitter : public UIEventEmitter
|
||||
{
|
||||
private:
|
||||
int m_value;
|
||||
UIRelEventCollector& m_collector;
|
||||
|
||||
public:
|
||||
UIRelEventEmitter();
|
||||
UIRelEventEmitter(UIRelEventCollector& collector);
|
||||
|
||||
void send(int value);
|
||||
int get_value() const;
|
||||
|
||||
void clear();
|
||||
|
||||
private:
|
||||
UIRelEventEmitter(const UIRelEventEmitter&);
|
||||
|
|
Loading…
Reference in a new issue