summaryrefslogtreecommitdiffstats
path: root/src/engine/events/SetMetadataEvent.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-05-28 14:33:33 +0000
committerDavid Robillard <d@drobilla.net>2009-05-28 14:33:33 +0000
commit46b2e1598ed75319735893ed039ac669aca2d8a7 (patch)
treea36c8c2ba5e2c14c468c34396d0914be258edfda /src/engine/events/SetMetadataEvent.hpp
parentf2c45c3f5b1f6c06d351ed91223343cd3a69ab4b (diff)
downloadingen-46b2e1598ed75319735893ed039ac669aca2d8a7.tar.gz
ingen-46b2e1598ed75319735893ed039ac669aca2d8a7.tar.bz2
ingen-46b2e1598ed75319735893ed039ac669aca2d8a7.zip
Make SetMetadataEvent do multiple properties at once.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2019 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/events/SetMetadataEvent.hpp')
-rw-r--r--src/engine/events/SetMetadataEvent.hpp44
1 files changed, 27 insertions, 17 deletions
diff --git a/src/engine/events/SetMetadataEvent.hpp b/src/engine/events/SetMetadataEvent.hpp
index b33cc9ca..e43b1e9f 100644
--- a/src/engine/events/SetMetadataEvent.hpp
+++ b/src/engine/events/SetMetadataEvent.hpp
@@ -18,6 +18,7 @@
#ifndef SETMETADATAEVENT_H
#define SETMETADATAEVENT_H
+#include <vector>
#include "raul/URI.hpp"
#include "raul/Atom.hpp"
#include "shared/ResourceImpl.hpp"
@@ -37,13 +38,22 @@ class CompiledPatch;
class SetMetadataEvent : public QueuedEvent
{
public:
- SetMetadataEvent(Engine& engine,
- SharedPtr<Responder> responder,
- SampleCount timestamp,
- bool meta,
- const Raul::URI& subject,
- const Raul::URI& key,
- const Raul::Atom& value);
+ SetMetadataEvent(
+ Engine& engine,
+ SharedPtr<Responder> responder,
+ SampleCount timestamp,
+ bool meta,
+ const Raul::URI& subject,
+ const Raul::URI& key,
+ const Raul::Atom& value);
+
+ SetMetadataEvent(
+ Engine& engine,
+ SharedPtr<Responder> responder,
+ SampleCount timestamp,
+ bool meta,
+ const Raul::URI& subject,
+ const Shared::Resource::Properties& properties);
void pre_process();
void execute(ProcessContext& context);
@@ -51,22 +61,22 @@ public:
private:
enum { NO_ERROR, NOT_FOUND, INTERNAL, BAD_TYPE } _error;
- enum {
+ enum SpecialType {
NONE,
ENABLE,
ENABLE_BROADCAST,
POLYPHONY,
POLYPHONIC
- } _special_type;
+ };
- Raul::URI _subject;
- Raul::URI _key;
- Raul::Atom _value;
- Shared::ResourceImpl* _object;
- PatchImpl* _patch;
- CompiledPatch* _compiled_patch;
- bool _is_meta;
- bool _success;
+ std::vector<SpecialType> _types;
+ Raul::URI _subject;
+ Shared::Resource::Properties _properties;
+ Shared::ResourceImpl* _object;
+ PatchImpl* _patch;
+ CompiledPatch* _compiled_patch;
+ bool _is_meta;
+ bool _success;
};