1 /* GSequencer - Advanced GTK Sequencer 2 * Copyright (C) 2005-2021 Joël Krähemann 3 * 4 * This file is part of GSequencer. 5 * 6 * GSequencer is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * 11 * GSequencer is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with GSequencer. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #include <ags/vst3-capi/public.sdk/source/vst/ags_vst_bus.h> 21 22 #include <public.sdk/source/vst/vstbus.h> 23 24 extern "C" { 25 26 #if 0 27 AgsVstBus* ags_vst_bus_new(AgsVstTChar *name, AgsVstBusType bus_type, gint32 flags) 28 { 29 return((AgsVstBus* ) new Steinberg::Vst::Bus()); 30 } 31 #endif 32 ags_vst_bus_delete(AgsVstBus * bus)33 void ags_vst_bus_delete(AgsVstBus *bus) 34 { 35 delete bus; 36 } 37 ags_vst_bus_is_active(AgsVstBus * bus)38 gboolean ags_vst_bus_is_active(AgsVstBus *bus) 39 { 40 return(static_cast<gboolean>(static_cast<Steinberg::Vst::Bus*>((void *) bus)->isActive())); 41 } 42 ags_vst_bus_set_active(AgsVstBus * bus,gboolean state)43 void ags_vst_bus_set_active(AgsVstBus *bus, gboolean state) 44 { 45 static_cast<Steinberg::Vst::Bus*>((void *) bus)->setActive(static_cast<Steinberg::TBool>(state)); 46 } 47 ags_vst_bus_set_name(AgsVstBus * bus,AgsVstString new_name)48 void ags_vst_bus_set_name(AgsVstBus *bus, AgsVstString new_name) 49 { 50 static_cast<Steinberg::Vst::Bus*>((void *) bus)->setName(static_cast<Steinberg::String>((gchar *) new_name)); 51 } 52 ags_vst_bus_set_bus_type(AgsVstBus * bus,AgsVstBusType new_bus_type)53 void ags_vst_bus_set_bus_type(AgsVstBus *bus, AgsVstBusType new_bus_type) 54 { 55 static_cast<Steinberg::Vst::Bus*>((void *) bus)->setBusType(static_cast<Steinberg::Vst::BusType>(new_bus_type)); 56 } 57 ags_vst_bus_set_flags(AgsVstBus * bus,guint32 new_flags)58 void ags_vst_bus_set_flags(AgsVstBus *bus, guint32 new_flags) 59 { 60 static_cast<Steinberg::Vst::Bus*>((void *) bus)->setFlags(new_flags); 61 } 62 ags_vst_bus_get_info(AgsVstBus * bus,AgsVstBusInfo * info)63 gboolean ags_vst_bus_get_info(AgsVstBus *bus, AgsVstBusInfo *info) 64 { 65 Steinberg::Vst::BusInfo *tmp_info_0 = static_cast<Steinberg::Vst::BusInfo*>((void *) info); 66 const Steinberg::Vst::BusInfo& tmp_info_1 = const_cast<Steinberg::Vst::BusInfo&>(tmp_info_0[0]); 67 68 return(static_cast<gboolean>(static_cast<Steinberg::Vst::Bus*>((void *) bus)->getInfo(const_cast<Steinberg::Vst::BusInfo&>(tmp_info_1)))); 69 } 70 ags_vst_event_bus_new(AgsVstTChar * name,AgsVstBusType bus_type,gint32 flags,gint32 channel_count)71 AgsVstEventBus* ags_vst_event_bus_new(AgsVstTChar *name, AgsVstBusType bus_type, gint32 flags, gint32 channel_count) 72 { 73 return((AgsVstEventBus *) new Steinberg::Vst::EventBus((char16_t *) name, static_cast<Steinberg::Vst::BusType>(bus_type), flags, channel_count)); 74 } 75 ags_vst_event_bus_delete(AgsVstEventBus * event_bus)76 void ags_vst_event_bus_delete(AgsVstEventBus *event_bus) 77 { 78 delete event_bus; 79 } 80 ags_vst_event_bus_get_info(AgsVstEventBus * event_bus,AgsVstBusInfo * info)81 gboolean ags_vst_event_bus_get_info(AgsVstEventBus *event_bus, AgsVstBusInfo *info) 82 { 83 Steinberg::Vst::BusInfo *tmp_info_0 = static_cast<Steinberg::Vst::BusInfo*>((void *) info); 84 const Steinberg::Vst::BusInfo& tmp_info_1 = const_cast<Steinberg::Vst::BusInfo&>(tmp_info_0[0]); 85 86 return(static_cast<gboolean>(static_cast<Steinberg::Vst::EventBus*>((void *) event_bus)->getInfo(const_cast<Steinberg::Vst::BusInfo&>(tmp_info_1)))); 87 } 88 ags_vst_audio_bus_new(AgsVstTChar * name,AgsVstBusType bus_type,gint32 flags,AgsVstSpeakerArrangement arr)89 AgsVstAudioBus* ags_vst_audio_bus_new(AgsVstTChar *name, AgsVstBusType bus_type, gint32 flags, AgsVstSpeakerArrangement arr) 90 { 91 return((AgsVstAudioBus *) new Steinberg::Vst::AudioBus((char16_t *) name, static_cast<Steinberg::Vst::BusType>(bus_type), flags, arr)); 92 } 93 ags_vst_audio_bus_delete(AgsVstAudioBus * audio_bus)94 void ags_vst_audio_bus_delete(AgsVstAudioBus *audio_bus) 95 { 96 delete audio_bus; 97 } 98 ags_vst_audio_bus_get_arrangement(AgsVstAudioBus * audio_bus)99 AgsVstSpeakerArrangement ags_vst_audio_bus_get_arrangement(AgsVstAudioBus *audio_bus) 100 { 101 return((AgsVstSpeakerArrangement) static_cast<Steinberg::Vst::AudioBus*>((void *) audio_bus)->getArrangement()); 102 } 103 ags_vst_audio_bus_set_arrangement(AgsVstAudioBus * audio_bus,AgsVstSpeakerArrangement arr)104 void ags_vst_audio_bus_set_arrangement(AgsVstAudioBus *audio_bus, AgsVstSpeakerArrangement arr) 105 { 106 static_cast<Steinberg::Vst::AudioBus*>((void *) audio_bus)->setArrangement(static_cast<Steinberg::Vst::SpeakerArrangement>(arr)); 107 } 108 ags_vst_audio_bus_get_info(AgsVstAudioBus * audio_bus,AgsVstBusInfo * info)109 gboolean ags_vst_audio_bus_get_info(AgsVstAudioBus *audio_bus, AgsVstBusInfo *info) 110 { 111 Steinberg::Vst::BusInfo *tmp_info_0 = static_cast<Steinberg::Vst::BusInfo*>((void *) info); 112 const Steinberg::Vst::BusInfo& tmp_info_1 = const_cast<Steinberg::Vst::BusInfo&>(tmp_info_0[0]); 113 114 return(static_cast<gboolean>(static_cast<Steinberg::Vst::AudioBus*>((void *) audio_bus)->getInfo(const_cast<Steinberg::Vst::BusInfo&>(tmp_info_1)))); 115 } 116 ags_vst_bus_list_new(AgsVstMediaType type,AgsVstBusDirection dir)117 AgsVstBusList* ags_vst_bus_list_new(AgsVstMediaType type, AgsVstBusDirection dir) 118 { 119 return((AgsVstBusList *) new Steinberg::Vst::BusList(type, dir)); 120 } 121 ags_vst_bus_list_delete(AgsVstBusList * bus_list)122 void ags_vst_bus_list_delete(AgsVstBusList *bus_list) 123 { 124 delete bus_list; 125 } 126 ags_vst_bus_list_get_type(AgsVstBusList * bus_list)127 AgsVstMediaType ags_vst_bus_list_get_type(AgsVstBusList *bus_list) 128 { 129 return(static_cast<Steinberg::Vst::BusList*>((void *) bus_list)->getType()); 130 } 131 ags_vst_bus_list_get_direction(AgsVstBusList * bus_list)132 AgsVstBusDirection ags_vst_bus_list_get_direction(AgsVstBusList *bus_list) 133 { 134 return(static_cast<Steinberg::Vst::BusList*>((void *) bus_list)->getDirection()); 135 } 136 137 } 138