XJ music engine  1.9.6
In-game runtime engine for XJ music.
InstrumentAudio.h
Go to the documentation of this file.
1 // Copyright (c) XJ Music Inc. (https://xjmusic.com) All Rights Reserved.
2 
3 #ifndef XJMUSIC_INSTRUMENT_AUDIO_H
4 #define XJMUSIC_INSTRUMENT_AUDIO_H
5 
6 #include <string>
7 
8 #include "ContentEntity.h"
10 
11 namespace XJ {
12 
13  class InstrumentAudio : public ContentEntity {
14  public:
15  InstrumentAudio() = default;
16 
18  std::string name;
19  std::string waveformKey;
21  float lengthSeconds{};
22  float loopBeats{};
23  float tempo{};
24  float intensity{};
25  std::string event;
26  float volume{};
27  std::string tones;
28  };
29 
35  inline void from_json(const json &json, InstrumentAudio &entity) {
36  EntityUtils::setRequired(json, "id", entity.id);
37  EntityUtils::setRequired(json, "instrumentId", entity.instrumentId);
38  EntityUtils::setIfNotNull(json, "name", entity.name);
39  EntityUtils::setIfNotNull(json, "waveformKey", entity.waveformKey);
40  EntityUtils::setIfNotNull(json, "transientSeconds", entity.transientSeconds);
41  EntityUtils::setIfNotNull(json, "lengthSeconds", entity.lengthSeconds);
42  EntityUtils::setIfNotNull(json, "loopBeats", entity.loopBeats);
43  EntityUtils::setIfNotNull(json, "tempo", entity.tempo);
44  EntityUtils::setIfNotNull(json, "intensity", entity.intensity);
45  EntityUtils::setIfNotNull(json, "event", entity.event);
46  EntityUtils::setIfNotNull(json, "volume", entity.volume);
47  EntityUtils::setIfNotNull(json, "tones", entity.tones);
48  }
49 
50 }// namespace XJ
51 
52 #endif//XJMUSIC_INSTRUMENT_AUDIO_H
nlohmann::json json
Definition: EntityUtils.h:14
Definition: ContentEntity.h:12
UUID id
Definition: ContentEntity.h:17
static void setIfNotNull(const json &json, const std::string &key, std::string &value)
Definition: EntityUtils.cpp:27
static void setRequired(const json &json, const std::string &key, UUID &value)
Definition: EntityUtils.cpp:16
Definition: InstrumentAudio.h:13
std::string name
Definition: InstrumentAudio.h:18
UUID instrumentId
Definition: InstrumentAudio.h:17
float loopBeats
Definition: InstrumentAudio.h:22
float transientSeconds
Definition: InstrumentAudio.h:20
float intensity
Definition: InstrumentAudio.h:24
float tempo
Definition: InstrumentAudio.h:23
std::string waveformKey
Definition: InstrumentAudio.h:19
InstrumentAudio()=default
float volume
Definition: InstrumentAudio.h:26
std::string tones
Definition: InstrumentAudio.h:27
float lengthSeconds
Definition: InstrumentAudio.h:21
std::string event
Definition: InstrumentAudio.h:25
Definition: ActiveAudio.h:11
std::string UUID
Definition: EntityUtils.h:28
void from_json(const json &json, Instrument &entity)
Definition: Instrument.h:106