XJ music engine  1.9.6
In-game runtime engine for XJ music.
TemplateBinding.h
Go to the documentation of this file.
1 // Copyright (c) XJ Music Inc. (https://xjmusic.com) All Rights Reserved.
2 
3 #ifndef XJMUSIC_TEMPLATE_BINDING_H
4 #define XJMUSIC_TEMPLATE_BINDING_H
5 
6 #include <set>
7 #include <string>
8 
9 #include "ContentEntity.h"
11 
12 namespace XJ {
13 
14  class TemplateBinding : public ContentEntity {
15  public:
16  enum Type {
20  };
21 
22  TemplateBinding() = default;
23 
27 
32  std::string toString() const;
33 
39  static Type parseType(const std::string &value);
40 
46  static std::string toString(const Type &type);
47 
53  static std::string toPrettyCsv(const std::set<const TemplateBinding *> &templateBindings);
54  };
55 
61  inline void from_json(const json &json, TemplateBinding &entity) {
62  EntityUtils::setRequired(json, "id", entity.id);
63  EntityUtils::setRequired(json, "templateId", entity.templateId);
64  entity.type = TemplateBinding::parseType(json.at("type").get<std::string>());
65  EntityUtils::setRequired(json, "targetId", entity.targetId);
66  }
67 
68 }// namespace XJ
69 
70 #endif//XJMUSIC_TEMPLATE_BINDING_H
nlohmann::json json
Definition: EntityUtils.h:14
Definition: ContentEntity.h:12
UUID id
Definition: ContentEntity.h:17
static void setRequired(const json &json, const std::string &key, UUID &value)
Definition: EntityUtils.cpp:16
Definition: Instrument.h:14
Definition: TemplateBinding.h:14
Type type
Definition: TemplateBinding.h:25
UUID templateId
Definition: TemplateBinding.h:24
static std::string toPrettyCsv(const std::set< const TemplateBinding * > &templateBindings)
Definition: TemplateBinding.cpp:40
Type
Definition: TemplateBinding.h:16
@ Program
Definition: TemplateBinding.h:18
@ Library
Definition: TemplateBinding.h:17
std::string toString() const
Definition: TemplateBinding.cpp:22
TemplateBinding()=default
static Type parseType(const std::string &value)
Definition: TemplateBinding.cpp:27
UUID targetId
Definition: TemplateBinding.h:26
Definition: ActiveAudio.h:11
std::string UUID
Definition: EntityUtils.h:28
void from_json(const json &json, Instrument &entity)
Definition: Instrument.h:106