2 #ifndef __CLNT__BSE_IDL
3 #define __CLNT__BSE_IDL
7 #include <rapicorn-core.hh>
9 #define RAPICORN_AIDA_ENUM_DEFINE_ARITHMETIC_EQ(Enum) \
10 bool constexpr operator== (Enum v, int64_t n) { return int64_t (v) == n; } \
11 bool constexpr operator== (int64_t n, Enum v) { return n == int64_t (v); } \
12 bool constexpr operator!= (Enum v, int64_t n) { return int64_t (v) != n; } \
13 bool constexpr operator!= (int64_t n, Enum v) { return n != int64_t (v); }
14 #define RAPICORN_AIDA_FLAGS_DEFINE_ARITHMETIC_OPS(Enum) \
15 static constexpr int64_t operator>> (Enum v, int64_t n) { return int64_t (v) >> n; } \
16 static constexpr int64_t operator<< (Enum v, int64_t n) { return int64_t (v) << n; } \
17 static constexpr int64_t operator^ (Enum v, int64_t n) { return int64_t (v) ^ n; } \
18 static constexpr int64_t operator^ (int64_t n, Enum v) { return n ^ int64_t (v); } \
19 static constexpr int64_t operator| (Enum v, int64_t n) { return int64_t (v) | n; } \
20 static constexpr int64_t operator| (int64_t n, Enum v) { return n | int64_t (v); } \
21 static constexpr int64_t operator& (Enum v, int64_t n) { return int64_t (v) & n; } \
22 static constexpr int64_t operator& (int64_t n, Enum v) { return n & int64_t (v); } \
23 static constexpr int64_t operator~ (Enum v) { return ~int64_t (v); } \
24 static constexpr int64_t operator+ (Enum v) { return +int64_t (v); } \
25 static constexpr int64_t operator- (Enum v) { return -int64_t (v); } \
26 static constexpr int64_t operator+ (Enum v, int64_t n) { return int64_t (v) + n; } \
27 static constexpr int64_t operator+ (int64_t n, Enum v) { return n + int64_t (v); } \
28 static constexpr int64_t operator- (Enum v, int64_t n) { return int64_t (v) - n; } \
29 static constexpr int64_t operator- (int64_t n, Enum v) { return n - int64_t (v); } \
30 static constexpr int64_t operator* (Enum v, int64_t n) { return int64_t (v) * n; } \
31 static constexpr int64_t operator* (int64_t n, Enum v) { return n * int64_t (v); } \
32 static constexpr int64_t operator/ (Enum v, int64_t n) { return int64_t (v) / n; } \
33 static constexpr int64_t operator/ (int64_t n, Enum v) { return n / int64_t (v); } \
34 static constexpr int64_t operator% (Enum v, int64_t n) { return int64_t (v) % n; } \
35 static constexpr int64_t operator% (int64_t n, Enum v) { return n % int64_t (v); } \
36 RAPICORN_FIXCYTHON_ENUM (Enum)
37 #ifdef CYTHON_COMPILING_IN_CPYTHON
39 #define RAPICORN_FIXCYTHON_ENUM(Enum) \
40 extern inline PyObject* PyInt_FromLong (Enum __e_) { return ::PyInt_FromLong (long (__e_)); }
41 #else // !CYTHON_COMPILING_IN_CPYTHON
42 #define RAPICORN_FIXCYTHON_ENUM(Enum)
43 #endif // !CYTHON_COMPILING_IN_CPYTHON
44 #ifdef RAPICORN_AIDA_ENABLE_ENUM_ARITHMETIC
45 #define RAPICORN_AIDA_ENUM_DEFINE_ARITHMETIC_OPS RAPICORN_AIDA_FLAGS_DEFINE_ARITHMETIC_OPS
46 #else // !RAPICORN_AIDA_ENABLE_ENUM_ARITHMETIC
47 #define RAPICORN_AIDA_ENUM_DEFINE_ARITHMETIC_OPS(Enum)
48 #endif // !RAPICORN_AIDA_ENABLE_ENUM_ARITHMETIC
50 #ifndef __ENUMHH__BSE_IDL__
51 #define __ENUMHH__BSE_IDL__
68 FILE_OPEN_FAILED = 11,
69 FILE_SEEK_FAILED = 12,
70 FILE_READ_FAILED = 13,
71 FILE_WRITE_FAILED = 14,
80 WRONG_N_CHANNELS = 23,
88 INVALID_PROPERTY = 31,
89 INVALID_MIDI_CONTROL = 32,
92 DEVICE_NOT_AVAILABLE = 35,
99 DEVICE_FREQUENCY = 42,
100 DEVICES_MISMATCH = 43,
101 SOURCE_NO_SUCH_MODULE = 44,
102 SOURCE_NO_SUCH_ICHANNEL = 45,
103 SOURCE_NO_SUCH_OCHANNEL = 46,
104 SOURCE_NO_SUCH_CONNECTION = 47,
105 SOURCE_PRIVATE_ICHANNEL = 48,
106 SOURCE_ICHANNEL_IN_USE = 49,
107 SOURCE_CHANNELS_CONNECTED = 50,
108 SOURCE_CONNECTION_INVALID = 51,
109 SOURCE_PARENT_MISMATCH = 52,
110 SOURCE_BAD_LOOPBACK = 53,
112 SOURCE_TYPE_INVALID = 55,
115 PROC_PARAM_INVAL = 58,
123 INVALID_DURATION = 66,
124 INVALID_OVERLAP = 67,
126 inline void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, Error e) { __p_ <<= Rapicorn::Aida::EnumValue (e); }
127 inline void operator>>= (Rapicorn::Aida::ProtoReader &__f_, Error &e) { e = Error (__f_.pop_evalue()); }
128 RAPICORN_AIDA_ENUM_DEFINE_ARITHMETIC_EQ (Error);
129 RAPICORN_AIDA_ENUM_DEFINE_ARITHMETIC_OPS (Error);
133 enum class MidiSignal :
int64_t {
172 CONSTANT_CENTER = 97,
174 CONSTANT_NEGATIVE_CENTER = 99,
175 CONSTANT_NEGATIVE_HIGH = 100,
307 inline void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, MidiSignal e) { __p_ <<= Rapicorn::Aida::EnumValue (e); }
308 inline void operator>>= (Rapicorn::Aida::ProtoReader &__f_, MidiSignal &e) { e = MidiSignal (__f_.pop_evalue()); }
309 RAPICORN_AIDA_ENUM_DEFINE_ARITHMETIC_EQ (MidiSignal);
310 RAPICORN_AIDA_ENUM_DEFINE_ARITHMETIC_OPS (MidiSignal);
314 enum class MusicalTuning :
int64_t {
320 PYTHAGOREAN_TUNING = 6,
321 PENTATONIC_5_LIMIT = 7,
322 PENTATONIC_BLUES = 8,
324 QUARTER_COMMA_MEANTONE = 10,
325 SILBERMANN_SORGE = 11,
333 inline void operator<<= (Rapicorn::Aida::ProtoMsg &__p_, MusicalTuning e) { __p_ <<= Rapicorn::Aida::EnumValue (e); }
334 inline void operator>>= (Rapicorn::Aida::ProtoReader &__f_, MusicalTuning &e) { e = MusicalTuning (__f_.pop_evalue()); }
335 RAPICORN_AIDA_ENUM_DEFINE_ARITHMETIC_EQ (MusicalTuning);
336 RAPICORN_AIDA_ENUM_DEFINE_ARITHMETIC_OPS (MusicalTuning);
346 inline void operator<<= (Rapicorn::Aida::ProtoMsg &__p_,
UserMessageType e) { __p_ <<= Rapicorn::Aida::EnumValue (e); }
356 template<>
const EnumInfo& enum_info<Bse::Error> ();
357 template<>
const EnumInfo& enum_info<Bse::MidiSignal> ();
358 template<>
const EnumInfo& enum_info<Bse::MusicalTuning> ();
359 template<>
const EnumInfo& enum_info<Bse::UserMessageType> ();
363 #endif // __ENUMHH__BSE_IDL__
373 reference append_back()
375 std::string __aida_type_name__ ()
const {
return "Bse::StringSeq"; }
377 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_sequence (*
this); }
378 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_sequence (any, *
this); }
380 void operator<<= (Rapicorn::Aida::ProtoMsg&,
const ClnT_StringSeq&);
386 reference append_back()
388 std::string __aida_type_name__ ()
const {
return "Bse::PixelSeq"; }
390 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_sequence (*
this); }
391 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_sequence (any, *
this); }
393 void operator<<= (Rapicorn::Aida::ProtoMsg&,
const ClnT_PixelSeq&);
394 void operator>>= (Rapicorn::Aida::ProtoReader&,
ClnT_PixelSeq&);
403 inline ClnT_Icon () { width = 0; height = 0; }
404 std::string __aida_type_name__ ()
const {
return "Bse::Icon"; }
406 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_visitable (*
this); }
407 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_visitable (any, *
this); }
408 bool operator== (
const ClnT_Icon &other)
const;
409 bool operator!= (
const ClnT_Icon &other)
const {
return !operator== (other); }
410 template<
class Visitor>
void __accept__ (Visitor &_visitor_)
412 _visitor_ (width,
"width");
413 _visitor_ (height,
"height");
414 _visitor_ (pixels,
"pixels");
417 void operator<<= (Rapicorn::Aida::ProtoMsg&,
const ClnT_Icon&);
418 void operator>>= (Rapicorn::Aida::ProtoReader&,
ClnT_Icon&);
427 std::string __aida_type_name__ ()
const {
return "Bse::AuxData"; }
429 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_visitable (*
this); }
430 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_visitable (any, *
this); }
432 bool operator!= (
const ClnT_AuxData &other)
const {
return !operator== (other); }
433 template<
class Visitor>
void __accept__ (Visitor &_visitor_)
435 _visitor_ (entity,
"entity");
436 _visitor_ (attributes,
"attributes");
439 void operator<<= (Rapicorn::Aida::ProtoMsg&,
const ClnT_AuxData&);
440 void operator>>= (Rapicorn::Aida::ProtoReader&,
ClnT_AuxData&);
445 reference append_back()
447 std::string __aida_type_name__ ()
const {
return "Bse::AuxDataSeq"; }
449 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_sequence (*
this); }
450 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_sequence (any, *
this); }
460 typedef Rapicorn::Aida::Connector<TestObjectHandle, void (const std::string &msg)> __Aida_Signal__echo_reply;
462 static TestObjectHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
463 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
467 template<
class RemoteHandle>
469 explicit TestObjectHandle ();
470 __Aida_Signal__echo_reply sig_echo_reply () {
return __Aida_Signal__echo_reply (*
this, &TestObjectHandle::__aida_connect__echo_reply); }
472 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
488 std::string __aida_type_name__ ()
const {
return "Bse::UserMessage"; }
490 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_visitable (*
this); }
491 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_visitable (any, *
this); }
493 bool operator!= (
const ClnT_UserMessage &other)
const {
return !operator== (other); }
494 template<
class Visitor>
void __accept__ (Visitor &_visitor_)
496 _visitor_ (utype,
"utype");
497 _visitor_ (title,
"title");
498 _visitor_ (text1,
"text1");
499 _visitor_ (text2,
"text2");
500 _visitor_ (text3,
"text3");
501 _visitor_ (label,
"label");
518 inline ClnT_SongTiming () { tick = 0; bpm = 0; numerator = 0; denominator = 0; tpqn = 0; tpt = 0; stamp_ticks = 0; }
519 std::string __aida_type_name__ ()
const {
return "Bse::SongTiming"; }
521 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_visitable (*
this); }
522 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_visitable (any, *
this); }
524 bool operator!= (
const ClnT_SongTiming &other)
const {
return !operator== (other); }
525 template<
class Visitor>
void __accept__ (Visitor &_visitor_)
527 _visitor_ (tick,
"tick");
528 _visitor_ (bpm,
"bpm");
529 _visitor_ (numerator,
"numerator");
530 _visitor_ (denominator,
"denominator");
531 _visitor_ (tpqn,
"tpqn");
532 _visitor_ (tpt,
"tpt");
533 _visitor_ (stamp_ticks,
"stamp_ticks");
542 MusicalTuning musical_tuning;
552 inline ClnT_NoteDescription () { musical_tuning = MusicalTuning (0); note = 0; octave = 0; freq = 0; finetune = 0; semitone = 0; upshift = 0; letter = 0; }
553 std::string __aida_type_name__ ()
const {
return "Bse::NoteDescription"; }
555 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_visitable (*
this); }
556 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_visitable (any, *
this); }
559 template<
class Visitor>
void __accept__ (Visitor &_visitor_)
561 _visitor_ (musical_tuning,
"musical_tuning");
562 _visitor_ (note,
"note");
563 _visitor_ (octave,
"octave");
564 _visitor_ (freq,
"freq");
565 _visitor_ (finetune,
"finetune");
566 _visitor_ (semitone,
"semitone");
567 _visitor_ (upshift,
"upshift");
568 _visitor_ (letter,
"letter");
569 _visitor_ (name,
"name");
585 class ObjectHandle :
public virtual Rapicorn::Aida::RemoteHandle
588 typedef Rapicorn::Aida::Connector<ObjectHandle, void (const std::string &what)> __Aida_Signal__changed;
590 static ObjectHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
591 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
595 template<
class RemoteHandle>
596 static ObjectHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
ObjectHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
597 explicit ObjectHandle ();
598 __Aida_Signal__changed sig_changed () {
return __Aida_Signal__changed (*
this, &ObjectHandle::__aida_connect__changed); }
601 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
611 static ItemHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
612 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
616 template<
class RemoteHandle>
617 static ItemHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
ItemHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
622 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
625 this->ObjectHandle::__accept_accessor__ (__visitor_);
642 inline ClnT_PartNote () {
id = 0; channel = 0; tick = 0; duration = 0; note = 0; fine_tune = 0; velocity = 0; selected = 0; }
643 std::string __aida_type_name__ ()
const {
return "Bse::PartNote"; }
645 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_visitable (*
this); }
646 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_visitable (any, *
this); }
648 bool operator!= (
const ClnT_PartNote &other)
const {
return !operator== (other); }
649 template<
class Visitor>
void __accept__ (Visitor &_visitor_)
651 _visitor_ (
id,
"id");
652 _visitor_ (channel,
"channel");
653 _visitor_ (tick,
"tick");
654 _visitor_ (duration,
"duration");
655 _visitor_ (note,
"note");
656 _visitor_ (fine_tune,
"fine_tune");
657 _visitor_ (velocity,
"velocity");
658 _visitor_ (selected,
"selected");
661 void operator<<= (Rapicorn::Aida::ProtoMsg&,
const ClnT_PartNote&);
662 void operator>>= (Rapicorn::Aida::ProtoReader&,
ClnT_PartNote&);
667 reference append_back()
669 std::string __aida_type_name__ ()
const {
return "Bse::PartNoteSeq"; }
671 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_sequence (*
this); }
672 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_sequence (any, *
this); }
682 MidiSignal control_type;
686 inline ClnT_PartControl () {
id = 0; tick = 0; control_type = MidiSignal (0); value = 0; selected = 0; }
687 std::string __aida_type_name__ ()
const {
return "Bse::PartControl"; }
689 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_visitable (*
this); }
690 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_visitable (any, *
this); }
692 bool operator!= (
const ClnT_PartControl &other)
const {
return !operator== (other); }
693 template<
class Visitor>
void __accept__ (Visitor &_visitor_)
695 _visitor_ (
id,
"id");
696 _visitor_ (tick,
"tick");
697 _visitor_ (control_type,
"control_type");
698 _visitor_ (value,
"value");
699 _visitor_ (selected,
"selected");
708 reference append_back()
710 std::string __aida_type_name__ ()
const {
return "Bse::PartControlSeq"; }
712 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_sequence (*
this); }
713 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_sequence (any, *
this); }
723 static PartHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
724 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
728 template<
class RemoteHandle>
729 static PartHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
PartHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
730 explicit PartHandle ();
734 MidiSignal control_type);
738 MidiSignal control_type);
740 MidiSignal control_type);
746 MidiSignal control_type,
756 MidiSignal control_type,
782 MidiSignal control_type);
790 MidiSignal control_type);
798 MidiSignal control_type);
811 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
813 this->ItemHandle::__accept_accessor__ (__visitor_);
821 reference append_back()
823 std::string __aida_type_name__ ()
const {
return "Bse::PartSeq"; }
825 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_sequence (*
this); }
826 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_sequence (any, *
this); }
828 void operator<<= (Rapicorn::Aida::ProtoMsg&,
const ClnT_PartSeq&);
829 void operator>>= (Rapicorn::Aida::ProtoReader&,
ClnT_PartSeq&);
836 static SourceHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
837 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
841 template<
class RemoteHandle>
842 static SourceHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
SourceHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
843 explicit SourceHandle ();
846 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
848 this->ItemHandle::__accept_accessor__ (__visitor_);
858 static ContextMergerHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
859 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
863 template<
class RemoteHandle>
866 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
868 this->SourceHandle::__accept_accessor__ (__visitor_);
878 static ContainerHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
879 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
883 template<
class RemoteHandle>
887 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
889 this->SourceHandle::__accept_accessor__ (__visitor_);
899 static SuperHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
900 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
904 template<
class RemoteHandle>
905 static SuperHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
SuperHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
907 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
909 this->ContainerHandle::__accept_accessor__ (__visitor_);
919 typedef Rapicorn::Aida::Connector<SNetHandle, void ()> __Aida_Signal__port_unregistered;
920 size_t __aida_connect__port_unregistered (
size_t,
const std::function<
void ()>&);
921 static SNetHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
922 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
926 template<
class RemoteHandle>
927 static SNetHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
SNetHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
931 __Aida_Signal__port_unregistered sig_port_unregistered () {
return __Aida_Signal__port_unregistered (*
this, &SNetHandle::__aida_connect__port_unregistered); }
936 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
939 this->SuperHandle::__accept_accessor__ (__visitor_);
949 static CSynthHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
950 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
954 template<
class RemoteHandle>
955 static CSynthHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
CSynthHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
957 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
959 this->SNetHandle::__accept_accessor__ (__visitor_);
969 static SubSynthHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
970 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
974 template<
class RemoteHandle>
975 static SubSynthHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
SubSynthHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
977 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
979 this->SourceHandle::__accept_accessor__ (__visitor_);
989 static TrackHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
990 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
994 template<
class RemoteHandle>
995 static TrackHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
TrackHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
1008 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1010 this->ContextMergerHandle::__accept_accessor__ (__visitor_);
1018 Rapicorn::Aida::RemoteMember<TrackHandle> track;
1020 Rapicorn::Aida::RemoteMember<PartHandle> part;
1024 std::string __aida_type_name__ ()
const {
return "Bse::PartLink"; }
1026 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_visitable (*
this); }
1027 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_visitable (any, *
this); }
1029 bool operator!= (
const ClnT_PartLink &other)
const {
return !operator== (other); }
1030 template<
class Visitor>
void __accept__ (Visitor &_visitor_)
1032 _visitor_ (track,
"track");
1033 _visitor_ (tick,
"tick");
1034 _visitor_ (part,
"part");
1035 _visitor_ (duration,
"duration");
1038 void operator<<= (Rapicorn::Aida::ProtoMsg&,
const ClnT_PartLink&);
1039 void operator>>= (Rapicorn::Aida::ProtoReader&,
ClnT_PartLink&);
1044 reference append_back()
1046 std::string __aida_type_name__ ()
const {
return "Bse::PartLinkSeq"; }
1048 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_sequence (*
this); }
1049 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_sequence (any, *
this); }
1058 Rapicorn::Aida::RemoteMember<PartHandle> part;
1062 std::string __aida_type_name__ ()
const {
return "Bse::TrackPart"; }
1064 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_visitable (*
this); }
1065 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_visitable (any, *
this); }
1067 bool operator!= (
const ClnT_TrackPart &other)
const {
return !operator== (other); }
1068 template<
class Visitor>
void __accept__ (Visitor &_visitor_)
1070 _visitor_ (tick,
"tick");
1071 _visitor_ (part,
"part");
1072 _visitor_ (duration,
"duration");
1075 void operator<<= (Rapicorn::Aida::ProtoMsg&,
const ClnT_TrackPart&);
1076 void operator>>= (Rapicorn::Aida::ProtoReader&,
ClnT_TrackPart&);
1081 reference append_back()
1083 std::string __aida_type_name__ ()
const {
return "Bse::TrackPartSeq"; }
1085 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_sequence (*
this); }
1086 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_sequence (any, *
this); }
1096 static BusHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
1097 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
1101 template<
class RemoteHandle>
1102 static BusHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
BusHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
1103 explicit BusHandle ();
1109 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1111 this->SubSynthHandle::__accept_accessor__ (__visitor_);
1121 static SongHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
1122 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
1126 template<
class RemoteHandle>
1127 static SongHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
SongHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
1129 double bpm ()
const;
1141 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1145 this->SNetHandle::__accept_accessor__ (__visitor_);
1161 std::string __aida_type_name__ ()
const {
return "Bse::SampleFileInfo"; }
1163 Rapicorn::Aida::Any __aida_to_any__ () {
return Rapicorn::any_from_visitable (*
this); }
1164 void __aida_from_any__ (
const Rapicorn::Aida::Any &any) {
return Rapicorn::any_to_visitable (any, *
this); }
1167 template<
class Visitor>
void __accept__ (Visitor &_visitor_)
1169 _visitor_ (file,
"file");
1170 _visitor_ (size,
"size");
1171 _visitor_ (mtime,
"mtime");
1172 _visitor_ (loader,
"loader");
1173 _visitor_ (waves,
"waves");
1174 _visitor_ (error,
"error");
1185 static EditableSampleHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
1186 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
1190 template<
class RemoteHandle>
1192 explicit EditableSampleHandle ();
1193 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1195 this->ItemHandle::__accept_accessor__ (__visitor_);
1205 static WaveHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
1206 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
1210 template<
class RemoteHandle>
1211 static WaveHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
WaveHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
1213 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1215 this->SourceHandle::__accept_accessor__ (__visitor_);
1225 static WaveRepoHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
1226 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
1230 template<
class RemoteHandle>
1231 static WaveRepoHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
WaveRepoHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
1233 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1235 this->SuperHandle::__accept_accessor__ (__visitor_);
1245 static MidiNotifierHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
1246 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
1250 template<
class RemoteHandle>
1253 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1255 this->ItemHandle::__accept_accessor__ (__visitor_);
1265 static MidiSynthHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
1266 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
1270 template<
class RemoteHandle>
1273 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1275 this->SNetHandle::__accept_accessor__ (__visitor_);
1285 static ProjectHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
1286 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
1290 template<
class RemoteHandle>
1291 static ProjectHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
ProjectHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
1313 double control_value);
1316 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1318 this->ContainerHandle::__accept_accessor__ (__visitor_);
1328 static PcmWriterHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
1329 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
1333 template<
class RemoteHandle>
1336 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1338 this->ItemHandle::__accept_accessor__ (__visitor_);
1348 typedef Rapicorn::Aida::Connector<ServerHandle, void (const ClnT_UserMessage &umsg)> __Aida_Signal__user_message;
1350 static ServerHandle __aida_cast__ (Rapicorn::Aida::RemoteHandle&,
const Rapicorn::Aida::TypeHashList&);
1351 static const Rapicorn::Aida::TypeHash& __aida_typeid__();
1355 template<
class RemoteHandle>
1356 static ServerHandle down_cast (RemoteHandle smh) {
return smh == NULL ?
ServerHandle() : __aida_cast__ (smh, smh.__aida_typelist__()); }
1358 __Aida_Signal__user_message sig_user_message () {
return __Aida_Signal__user_message (*
this, &ServerHandle::__aida_connect__user_message); }
1404 template<
class Visitor>
void __accept_accessor__ (Visitor &__visitor_)
1406 this->ObjectHandle::__accept_accessor__ (__visitor_);
1413 #ifndef __BSE_IDL_ALIASES__
1414 #define __BSE_IDL_ALIASES__ 1
1416 #if __BSE_IDL_ALIASES__ == 1
1418 typedef ClnT_StringSeq StringSeq;
1419 typedef ClnT_PixelSeq PixelSeq;
1420 typedef ClnT_Icon Icon;
1421 typedef ClnT_AuxData AuxData;
1422 typedef ClnT_AuxDataSeq AuxDataSeq;
1423 typedef ClnT_UserMessage UserMessage;
1424 typedef ClnT_SongTiming SongTiming;
1425 typedef ClnT_NoteDescription NoteDescription;
1426 typedef ClnT_PartNote PartNote;
1427 typedef ClnT_PartNoteSeq PartNoteSeq;
1428 typedef ClnT_PartControl PartControl;
1429 typedef ClnT_PartControlSeq PartControlSeq;
1430 typedef ClnT_PartSeq PartSeq;
1431 typedef ClnT_PartLink PartLink;
1432 typedef ClnT_PartLinkSeq PartLinkSeq;
1433 typedef ClnT_TrackPart TrackPart;
1434 typedef ClnT_TrackPartSeq TrackPartSeq;
1435 typedef ClnT_SampleFileInfo SampleFileInfo;
1437 #endif // __BSE_IDL_ALIASES__
ClnT_PartLinkSeq list_links()
See Part::list_links()
void inject_midi_control(int midi_channel, int midi_control, double control_value)
See Project::inject_midi_control()
See also the corresponding IDL class Source.
Definition: bseclientapi.hh:834
Definition: bseclientapi.hh:383
ClnT_PartControlSeq get_channel_controls(int channel, int tick, int duration, MidiSignal control_type)
See Part::get_channel_controls()
std::string get_custom_effect_dir()
See Server::get_custom_effect_dir()
ClnT_PartSeq list_parts_uniq()
See Track::list_parts_uniq()
ClnT_PartControlSeq list_controls(int tick, int duration, MidiSignal control_type)
See Part::list_controls()
MidiNotifierHandle MidiNotifierH
Convenience alias for the IDL type MidiNotifier.
Definition: bseclientapi.hh:1258
std::string get_version()
See Server::get_version()
void save_preferences()
See Server::save_preferences()
ItemHandle common_ancestor(ItemHandle &other)
See Item::common_ancestor()
std::string get_sample_path()
See Server::get_sample_path()
WaveRepoHandle WaveRepoH
Convenience alias for the IDL type WaveRepo.
Definition: bseclientapi.hh:1238
SourceHandle get_output_source()
See Track::get_output_source()
Definition: bseclientapi.hh:664
Definition: bseclientapi.hh:1054
void queue_controls(int tick, int duration)
See Part::queue_controls()
ClnT_SongTiming get_timing(int tick)
See Part::get_timing()
ObjectHandle ObjectH
Convenience alias for the IDL type Object.
Definition: bseclientapi.hh:604
double bpm() const
See Song::bpm.
Definition: bseclientapi.hh:1041
std::string get_demo_path()
See Server::get_demo_path()
bool is_dirty()
See Project::is_dirty()
void remove_tick(int tick)
See Track::remove_tick()
Definition: bseclientapi.hh:420
bool is_event_selected(int id)
See Part::is_event_selected()
TrackHandle create_track()
See Song::create_track()
See also the corresponding IDL class Part.
Definition: bseclientapi.hh:721
ProjectHandle ProjectH
Convenience alias for the IDL type Project.
Definition: bseclientapi.hh:1321
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:88
Error change_control(int id, int tick, MidiSignal control_type, double value)
See Part::change_control()
void deselect_controls(int tick, int duration, MidiSignal control_type)
See Part::deselect_controls()
void remove_bus(BusHandle &bus)
See Song::remove_bus()
PartHandle PartH
Convenience alias for the IDL type Part.
Definition: bseclientapi.hh:816
void register_core_plugins()
See Server::register_core_plugins()
std::string debug_name()
See Object::debug_name()
Definition: bstserverapi.cc:585
ClnT_Icon icon() const
See Item::icon.
int get_min_note()
See Part::get_min_note()
Error connect_bus(BusHandle &bus)
See Bus::connect_bus()
Definition: bseclientapi.hh:370
int undo_depth()
See Project::undo_depth()
ClnT_NoteDescription note_construct(MusicalTuning musical_tuning, int semitone, int octave, int fine_tune)
See Server::note_construct()
int redo_depth()
See Project::redo_depth()
Definition: bseclientapi.hh:677
Error restore_from_file(const std::string &file_name)
See Project::restore_from_file()
Definition: bseclientapi.hh:396
Definition: bseclientapi.hh:1078
ClnT_AuxDataSeq list_module_types()
See Server::list_module_types()
Error delete_event(int id)
See Part::delete_event()
Error play()
See Project::play()
See also the corresponding IDL class TestObject.
Definition: bseclientapi.hh:458
See also the corresponding IDL class MidiSynth.
Definition: bseclientapi.hh:1263
bool is_playing()
See Project::is_playing()
std::string get_script_path()
See Server::get_script_path()
void stop_playback()
See Project::stop_playback()
bool auto_activate() const
See SNet::auto_activate.
void start_playback()
See Project::start_playback()
bool can_load(const std::string &file_name)
See Server::can_load()
See also the corresponding IDL class Container.
Definition: bseclientapi.hh:876
ClnT_SongTiming get_timing(int tick)
See Track::get_timing()
bool supports_user_synths()
See SNet::supports_user_synths()
TestObjectHandle get_test_object()
See Server::get_test_object()
std::string get_ladspa_path()
See Server::get_ladspa_path()
void clean_dirty()
See Project::clean_dirty()
ClnT_PartNoteSeq check_overlap(int tick, int duration, int note)
See Part::check_overlap()
int get_max_note()
See Part::get_max_note()
See also the corresponding IDL class Item.
Definition: bseclientapi.hh:609
void select_controls_exclusive(int tick, int duration, MidiSignal control_type)
See Part::select_controls_exclusive()
std::string resize(std::string...args)
Definition: bseclientapi.hh:539
void remove_link(int id)
See Track::remove_link()
See also the corresponding IDL class EditableSample.
Definition: bseclientapi.hh:1183
void change_name(const std::string &name)
See Project::change_name()
Definition: bseclientapi.hh:442
See also the corresponding IDL class Project.
Definition: bseclientapi.hh:1283
Error ensure_output()
See Bus::ensure_output()
Indicate a message about an error condition.
Definition: bseapi.idl:411
ObjectHandle from_proxy(int64_t proxyid)
See Server::from_proxy()
MidiSynthHandle MidiSynthH
Convenience alias for the IDL type MidiSynth.
Definition: bseclientapi.hh:1278
ItemHandle lookup_item(const std::string &uname)
See Container::lookup_item()
EditableSampleHandle EditableSampleH
Convenience alias for the IDL type EditableSample.
Definition: bseclientapi.hh:1198
See also the corresponding IDL class Bus.
Definition: bseclientapi.hh:1094
Definition: bseclientapi.hh:818
int insert_part(int tick, PartHandle &part)
See Track::insert_part()
SourceHandle create_source(const std::string &module_type)
See SNet::create_source()
void select_event(int id)
See Part::select_event()
Error import_midi_file(const std::string &file_name)
See Project::import_midi_file()
BusHandle create_bus()
See Song::create_bus()
void select_notes_exclusive(int tick, int duration, int min_note, int max_note)
See Part::select_notes_exclusive()
void auto_deactivate(int msec_delay)
See Project::auto_deactivate()
void destroy_project(ProjectHandle &project)
See Server::destroy_project()
SubSynthHandle SubSynthH
Convenience alias for the IDL type SubSynth.
Definition: bseclientapi.hh:982
std::string get_effect_path()
See Server::get_effect_path()
Indicate an informational message.
Definition: bseapi.idl:413
int get_last_tick()
See Track::get_last_tick()
void deselect_notes(int tick, int duration, int min_note, int max_note)
See Part::deselect_notes()
Definition: bseclientapi.hh:477
ProjectHandle create_project(const std::string &project_name)
See Server::create_project()
MusicalTuning musical_tuning() const
See Song::musical_tuning.
double note_to_freq(MusicalTuning musical_tuning, int note, int fine_tune)
See Server::note_to_freq()
void register_scripts()
See Server::register_scripts()
SongHandle SongH
Convenience alias for the IDL type Song.
Definition: bseclientapi.hh:1148
Definition: bseclientapi.hh:1150
int insert_note_auto(int tick, int duration, int note, int fine_tune, double velocity)
See Part::insert_note_auto()
Definition: bseclientapi.hh:630
TestObjectHandle TestObjectH
Convenience alias for the IDL type TestObject.
Definition: bseclientapi.hh:475
See also the corresponding IDL class Server.
Definition: bseclientapi.hh:1346
bool is_active()
See Project::is_active()
ContextMergerHandle ContextMergerH
Convenience alias for the IDL type ContextMerger.
Definition: bseclientapi.hh:871
Error connect_track(TrackHandle &track)
See Bus::connect_track()
bool preferences_locked()
See Server::preferences_locked()
ClnT_SongTiming get_timing(int tick)
See Song::get_timing()
int note_from_freq(MusicalTuning musical_tuning, double frequency)
See Server::note_from_freq()
int echo_test(const std::string &msg)
See TestObject::echo_test()
int n_scripts()
See Server::n_scripts()
void deselect_event(int id)
See Part::deselect_event()
SuperHandle SuperH
Convenience alias for the IDL type Super.
Definition: bseclientapi.hh:912
ClnT_PartNoteSeq list_notes_within(int channel, int tick, int duration)
See Part::list_notes_within()
See also the corresponding IDL class Song.
Definition: bseclientapi.hh:1119
ServerHandle ServerH
Convenience alias for the IDL type Server.
Definition: bseclientapi.hh:1409
PartHandle get_part(int tick)
See Track::get_part()
See also the corresponding IDL class CSynth.
Definition: bseclientapi.hh:947
std::string get_mp3_version()
See Server::get_mp3_version()
int insert_note(int channel, int tick, int duration, int note, int fine_tune, double velocity)
See Part::insert_note()
ItemHandle ItemH
Convenience alias for the IDL type Item.
Definition: bseclientapi.hh:628
See also the corresponding IDL class SubSynth.
Definition: bseclientapi.hh:967
Error disconnect_track(TrackHandle &track)
See Bus::disconnect_track()
ClnT_AuxData find_module_type(const std::string &module_type)
See Server::find_module_type()
SourceHandle SourceH
Convenience alias for the IDL type Source.
Definition: bseclientapi.hh:851
Error can_create_source(const std::string &module_type)
See SNet::can_create_source()
ContainerHandle ContainerH
Convenience alias for the IDL type Container.
Definition: bseclientapi.hh:892
Error remove_source(SourceHandle &module)
See SNet::remove_source()
Error activate()
See Project::activate()
std::string size(std::string...args)
void queue_notes(int tick, int duration, int min_note, int max_note)
See Part::queue_notes()
UserMessageType
Definition: bseapi.idl:410
See also the corresponding IDL class Wave.
Definition: bseclientapi.hh:1203
Indicate a debugging message (usually insignificant).
Definition: bseapi.idl:414
ClnT_PartControlSeq get_controls(int tick, MidiSignal control_type)
See Part::get_controls()
int64_t proxy_id()
See Object::proxy_id()
Error ensure_output()
See Track::ensure_output()
std::string get_instrument_path()
See Server::get_instrument_path()
See also the corresponding IDL class SNet.
Definition: bseclientapi.hh:917
ClnT_PartNoteSeq get_notes(int tick, int note)
See Part::get_notes()
Indicate a message about a possibly harmful condition.
Definition: bseapi.idl:412
void remove_track(TrackHandle &track)
See Song::remove_track()
ClnT_TrackPartSeq list_parts()
See Track::list_parts()
Definition: bseclientapi.hh:507
See also the corresponding IDL class Track.
Definition: bseclientapi.hh:987
std::string back(std::string...args)
See also the corresponding IDL class MidiNotifier.
Definition: bseclientapi.hh:1243
CSynthHandle CSynthH
Convenience alias for the IDL type CSynth.
Definition: bseclientapi.hh:962
std::string get_vorbis_version()
See Server::get_vorbis_version()
See also the corresponding IDL class PcmWriter.
Definition: bseclientapi.hh:1326
Definition: bseclientapi.hh:1015
WaveHandle WaveH
Convenience alias for the IDL type Wave.
Definition: bseclientapi.hh:1218
Definition: bseclientapi.hh:705
void redo()
See Project::redo()
void deactivate()
See Project::deactivate()
Error change_note(int id, int tick, int duration, int note, int fine_tune, double velocity)
See Part::change_note()
ClnT_NoteDescription note_from_string(MusicalTuning musical_tuning, const std::string &name)
See Server::note_from_string()
void remove_part(PartHandle &part)
See Song::remove_part()
void start_recording(const std::string &wave_file, double n_seconds)
See Server::start_recording()
TrackHandle TrackH
Convenience alias for the IDL type Track.
Definition: bseclientapi.hh:1013
ClnT_PartNoteSeq list_selected_notes()
See Part::list_selected_notes()
std::string get_plugin_path()
See Server::get_plugin_path()
TrackHandle find_any_track_for_part(PartHandle &part)
See Song::find_any_track_for_part()
ClnT_SampleFileInfo sample_file_info(const std::string &file_name)
See Server::sample_file_info()
void register_ladspa_plugins()
See Server::register_ladspa_plugins()
Error disconnect_bus(BusHandle &bus)
See Bus::disconnect_bus()
void select_notes(int tick, int duration, int min_note, int max_note)
See Part::select_notes()
int insert_control(int tick, MidiSignal control_type, double value)
See Part::insert_control()
ClnT_Icon module_type_icon(const std::string &module_type)
See Server::module_type_icon()
SourceHandle ichannel_get_osource(int input_channel, int input_joint)
See Source::ichannel_get_osource()
PcmWriterHandle PcmWriterH
Convenience alias for the IDL type PcmWriter.
Definition: bseclientapi.hh:1341
See also the corresponding IDL class Super.
Definition: bseclientapi.hh:897
void undo()
See Project::undo()
void select_controls(int tick, int duration, MidiSignal control_type)
See Part::select_controls()
void stop()
See Project::stop()
See also the corresponding IDL class Object.
Definition: bseclientapi.hh:586
void clear_undo()
See Project::clear_undo()
SNetHandle SNetH
Convenience alias for the IDL type SNet.
Definition: bseclientapi.hh:942
BusHandle BusH
Convenience alias for the IDL type Bus.
Definition: bseclientapi.hh:1114
ClnT_PartControlSeq list_selected_controls(MidiSignal control_type)
See Part::list_selected_controls()
ClnT_PartNoteSeq list_notes_crossing(int tick, int duration)
See Part::list_notes_crossing()
ClnT_NoteDescription note_describe_from_freq(MusicalTuning musical_tuning, double freq)
See Server::note_describe_from_freq()
ClnT_NoteDescription note_describe(MusicalTuning musical_tuning, int note, int fine_tune)
See Server::note_describe()
PartHandle create_part()
See Song::create_part()
See also the corresponding IDL class WaveRepo.
Definition: bseclientapi.hh:1223
bool can_play()
See Project::can_play()
std::string get_custom_instrument_dir()
See Server::get_custom_instrument_dir()
See also the corresponding IDL class ContextMerger.
Definition: bseclientapi.hh:856