mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-18 20:56:28 +01:00
add API for controlling and determining active status of a SceneChange
Conflicts: libs/ardour/ardour/scene_change.h
This commit is contained in:
parent
51d2804535
commit
c2476ea73d
3 changed files with 31 additions and 9 deletions
|
|
@ -36,17 +36,21 @@ class SceneChange : public PBD::Stateful
|
|||
static boost::shared_ptr<SceneChange> factory (const XMLNode&, int version);
|
||||
static std::string xml_node_name;
|
||||
|
||||
uint32_t color() const;
|
||||
void set_color (uint32_t);
|
||||
bool color_out_of_bounds() const { return _color == out_of_bound_color; }
|
||||
static const uint32_t out_of_bound_color;
|
||||
uint32_t color() const;
|
||||
void set_color (uint32_t);
|
||||
bool color_out_of_bounds() const { return _color == out_of_bound_color; }
|
||||
static const uint32_t out_of_bound_color;
|
||||
|
||||
bool active () const { return _active; }
|
||||
void set_active (bool);
|
||||
|
||||
PBD::Signal0<void> ColorChanged;
|
||||
|
||||
protected:
|
||||
/* derived classes are responsible for serializing & deserializing this value */
|
||||
uint32_t _color;
|
||||
PBD::Signal0<void> ColorChanged;
|
||||
PBD::Signal0<void> ActiveChanged;
|
||||
|
||||
protected:
|
||||
/* derived classes are responsible for serializing & deserializing this value */
|
||||
uint32_t _color;
|
||||
bool _active;
|
||||
};
|
||||
|
||||
} /* namespace */
|
||||
|
|
|
|||
|
|
@ -96,6 +96,10 @@ MIDISceneChanger::gather (const Locations::LocationList& locations)
|
|||
void
|
||||
MIDISceneChanger::rt_deliver (MidiBuffer& mbuf, framepos_t when, boost::shared_ptr<MIDISceneChange> msc)
|
||||
{
|
||||
if (!msc->active()) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t buf[4];
|
||||
size_t cnt;
|
||||
|
||||
|
|
@ -121,6 +125,10 @@ MIDISceneChanger::rt_deliver (MidiBuffer& mbuf, framepos_t when, boost::shared_p
|
|||
void
|
||||
MIDISceneChanger::non_rt_deliver (boost::shared_ptr<MIDISceneChange> msc)
|
||||
{
|
||||
if (!msc->active()) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint8_t buf[4];
|
||||
size_t cnt;
|
||||
boost::shared_ptr<AsyncMIDIPort> aport = boost::dynamic_pointer_cast<AsyncMIDIPort>(output_port);
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ SceneChange::factory (const XMLNode& node, int version)
|
|||
|
||||
SceneChange::SceneChange ()
|
||||
: _color (out_of_bound_color)
|
||||
, _active (true)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -56,3 +57,12 @@ SceneChange::color() const
|
|||
{
|
||||
return _color;
|
||||
}
|
||||
|
||||
void
|
||||
SceneChange::set_active (bool yn)
|
||||
{
|
||||
if (_active != yn) {
|
||||
_active = yn;
|
||||
ActiveChanged (); /* EMIT SIGNAL */
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue