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/base/source/ags_vst_fbuffer.h>
21 
22 #include <base/source/fbuffer.h>
23 
24 #include <cstring>
25 
26 extern "C" {
27 
ags_vst_buffer_new()28   AgsVstBuffer* ags_vst_buffer_new()
29   {
30     return((AgsVstBuffer *) new Steinberg::Buffer());
31   }
32 
ags_vst_buffer_new_from_string(void * b,guint32 size)33   AgsVstBuffer* ags_vst_buffer_new_from_string(void *b, guint32 size)
34   {
35     return((AgsVstBuffer *) new Steinberg::Buffer(b, size));
36   }
37 
ags_vst_buffer_new_and_fill_up(guint32 size,guint8 init_val)38   AgsVstBuffer* ags_vst_buffer_new_and_fill_up(guint32 size, guint8 init_val)
39   {
40     return((AgsVstBuffer *) new Steinberg::Buffer(size, init_val));
41   }
42 
ags_vst_buffer_new_with_size(guint32 size)43   AgsVstBuffer* ags_vst_buffer_new_with_size(guint32 size)
44   {
45     return((AgsVstBuffer *) new Steinberg::Buffer(size));
46   }
47 
ags_vst_buffer_new_from_buffer(AgsVstBuffer * buffer)48   AgsVstBuffer* ags_vst_buffer_new_from_buffer(AgsVstBuffer *buffer)
49   {
50     Steinberg::Buffer *tmp_buffer_0 = static_cast<Steinberg::Buffer*>((void *) buffer);
51     const Steinberg::Buffer& tmp_buffer_1 = (const Steinberg::Buffer&) tmp_buffer_0;
52 
53     return((AgsVstBuffer *) new Steinberg::Buffer(tmp_buffer_1));
54   }
55 
ags_vst_buffer_delete(AgsVstBuffer * buffer)56   void ags_vst_buffer_delete(AgsVstBuffer *buffer)
57   {
58     delete buffer;
59   }
60 
ags_vst_buffer_equal(AgsVstBuffer * destination_buffer,AgsVstBuffer * source_buffer)61   void ags_vst_buffer_equal(AgsVstBuffer *destination_buffer,
62 			    AgsVstBuffer *source_buffer)
63   {
64     destination_buffer = source_buffer;
65   }
66 
ags_vst_buffer_equals(AgsVstBuffer * buffer_a,AgsVstBuffer * buffer_b)67   gboolean ags_vst_buffer_equals(AgsVstBuffer *buffer_a,
68 				 AgsVstBuffer *buffer_b)
69   {
70     return(buffer_a == buffer_b);
71   }
72 
ags_vst_buffer_get_size(AgsVstBuffer * buffer)73   guint32 ags_vst_buffer_get_size(AgsVstBuffer *buffer)
74   {
75     return(static_cast<Steinberg::Buffer*>((void *) buffer)->getSize());
76   }
77 
ags_vst_buffer_set_size(AgsVstBuffer * buffer,guint32 new_size)78   gboolean ags_vst_buffer_set_size(AgsVstBuffer *buffer,
79 				   guint32 new_size)
80   {
81     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->setSize(new_size)));
82   }
83 
ags_vst_buffer_grow(AgsVstBuffer * buffer,guint32 mem_size)84   gboolean ags_vst_buffer_grow(AgsVstBuffer *buffer,
85 			       guint32 mem_size)
86   {
87     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->grow(mem_size)));
88   }
89 
ags_vst_buffer_set_max_size(AgsVstBuffer * buffer,guint32 size)90   gboolean ags_vst_buffer_set_max_size(AgsVstBuffer *buffer,
91 				       guint32 size)
92   {
93     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->setMaxSize(size)));
94   }
95 
ags_vst_buffer_fillup(AgsVstBuffer * buffer,guint8 init_val)96   void ags_vst_buffer_fillup(AgsVstBuffer *buffer,
97 			     guint8 init_val)
98   {
99     static_cast<Steinberg::Buffer*>((void *) buffer)->fillup(init_val);
100   }
101 
ags_vst_buffer_get_fill_size(AgsVstBuffer * buffer)102   guint32 ags_vst_buffer_get_fill_size(AgsVstBuffer *buffer)
103   {
104     return(static_cast<Steinberg::Buffer*>((void *) buffer)->getFillSize());
105   }
106 
ags_vst_buffer_set_fill_size(AgsVstBuffer * buffer,guint32 c)107   gboolean ags_vst_buffer_set_fill_size(AgsVstBuffer *buffer,
108 					guint32 c)
109   {
110     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->setFillSize(c)));
111   }
112 
ags_vst_buffer_flush(AgsVstBuffer * buffer)113   void ags_vst_buffer_flush(AgsVstBuffer *buffer)
114   {
115     static_cast<Steinberg::Buffer*>((void *) buffer)->flush();
116   }
117 
ags_vst_buffer_truncate_to_fill_size(AgsVstBuffer * buffer)118   gboolean ags_vst_buffer_truncate_to_fill_size(AgsVstBuffer *buffer)
119   {
120     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->truncateToFillSize()));
121   }
122 
ags_vst_buffer_is_full(AgsVstBuffer * buffer)123   gboolean ags_vst_buffer_is_full(AgsVstBuffer *buffer)
124   {
125     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->isFull()));
126   }
127 
ags_vst_buffer_get_free(AgsVstBuffer * buffer)128   guint32 ags_vst_buffer_get_free(AgsVstBuffer *buffer)
129   {
130     return(static_cast<Steinberg::Buffer*>((void *) buffer)->getFree());
131   }
132 
ags_vst_buffer_shift_start(AgsVstBuffer * buffer,gint32 amount)133   void ags_vst_buffer_shift_start(AgsVstBuffer *buffer,
134 				  gint32 amount)
135   {
136     static_cast<Steinberg::Buffer*>((void *) buffer)->shiftStart(amount);
137   }
138 
ags_vst_buffer_shift_at(AgsVstBuffer * buffer,guint32 position,gint32 amount)139   void ags_vst_buffer_shift_at(AgsVstBuffer *buffer,
140 			       guint32 position, gint32 amount)
141   {
142     static_cast<Steinberg::Buffer*>((void *) buffer)->shiftAt(position, amount);
143   }
144 
ags_vst_buffer_move(AgsVstBuffer * buffer,gint32 amount,guint8 init_val)145   void ags_vst_buffer_move(AgsVstBuffer *buffer,
146 			   gint32 amount, guint8 init_val)
147   {
148     static_cast<Steinberg::Buffer*>((void *) buffer)->move(amount, init_val);
149   }
150 
ags_vst_buffer_copy(AgsVstBuffer * buffer,guint32 from,guint32 to,guint32 bytes)151   gboolean ags_vst_buffer_copy(AgsVstBuffer *buffer,
152 			       guint32 from, guint32 to, guint32 bytes)
153   {
154     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->copy(from, to, bytes)));
155   }
156 
ags_vst_buffer_get(AgsVstBuffer * buffer,void * b,guint32 size)157   guint32 ags_vst_buffer_get(AgsVstBuffer *buffer,
158 			     void *b, guint32 size)
159   {
160     return(static_cast<Steinberg::Buffer*>((void *) buffer)->get(b, size));
161   }
162 
ags_vst_buffer_set_delta(AgsVstBuffer * buffer,guint32 d)163   void ags_vst_buffer_set_delta(AgsVstBuffer *buffer,
164 				guint32 d)
165   {
166     static_cast<Steinberg::Buffer*>((void *) buffer)->setDelta(d);
167   }
168 
ags_vst_buffer_put_from_uint8(AgsVstBuffer * buffer,guint8 val)169   gboolean ags_vst_buffer_put_from_uint8(AgsVstBuffer *buffer,
170 					 guint8 val)
171   {
172     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->put((Steinberg::uint8) val)));
173   }
174 
ags_vst_buffer_put_from_unichar2(AgsVstBuffer * buffer,gunichar2 c)175   gboolean ags_vst_buffer_put_from_unichar2(AgsVstBuffer *buffer,
176 					    gunichar2 c)
177   {
178     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->put((Steinberg::char16) c)));
179   }
180 
ags_vst_buffer_put_from_char(AgsVstBuffer * buffer,gchar c)181   gboolean ags_vst_buffer_put_from_char(AgsVstBuffer *buffer,
182 					gchar c)
183   {
184     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->put((char) c)));
185   }
186 
ags_vst_buffer_put_from_buffer(AgsVstBuffer * buffer,void * ptr_buffer,guint32 size)187   gboolean ags_vst_buffer_put_from_buffer(AgsVstBuffer *buffer,
188 					  void *ptr_buffer, guint32 size)
189   {
190     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->put(ptr_buffer, size)));
191   }
192 
ags_vst_buffer_put_from_uint8_buffer(AgsVstBuffer * buffer,guint8 * ptr_buffer,guint32 size)193   gboolean ags_vst_buffer_put_from_uint8_buffer(AgsVstBuffer *buffer,
194 						guint8 *ptr_buffer, guint32 size)
195   {
196     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->put(ptr_buffer, size)));
197   }
198 
ags_vst_buffer_put_from_char_buffer(AgsVstBuffer * buffer,gchar * ptr_buffer,guint32 size)199   gboolean ags_vst_buffer_put_from_char_buffer(AgsVstBuffer *buffer,
200 					       gchar *ptr_buffer, guint32 size)
201   {
202     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->put(ptr_buffer, size)));
203   }
204 
ags_vst_buffer_put_from_string(AgsVstBuffer * buffer,gchar * string)205   gboolean ags_vst_buffer_put_from_string(AgsVstBuffer *buffer,
206 					  gchar *string)
207   {
208     Steinberg::String *tmp_string_0 = static_cast<Steinberg::String*>((void *) string);
209     const Steinberg::String& tmp_string_1 = (const Steinberg::String&) tmp_string_0;
210 
211     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->put(tmp_string_1)));
212   }
213 
ags_vst_buffer_set(AgsVstBuffer * buffer,guint8 value)214   void ags_vst_buffer_set(AgsVstBuffer *buffer,
215 			  guint8 value)
216   {
217     static_cast<Steinberg::Buffer*>((void *) buffer)->set(value);
218   }
219 
ags_vst_buffer_append_string(AgsVstBuffer * buffer,ags_vst_tchar * s)220   gboolean ags_vst_buffer_append_string(AgsVstBuffer *buffer,
221 					ags_vst_tchar *s)
222   {
223     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->appendString((Steinberg::tchar*) s)));
224   }
225 
ags_vst_buffer_append_char(AgsVstBuffer * buffer,ags_vst_tchar c)226   gboolean ags_vst_buffer_append_char(AgsVstBuffer *buffer,
227 				      ags_vst_tchar c)
228   {
229     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->appendString(c)));
230   }
231 
ags_vst_buffer_append_string_from_char_buffer(AgsVstBuffer * buffer,gchar * s)232   gboolean ags_vst_buffer_append_string_from_char_buffer(AgsVstBuffer *buffer,
233 							 gchar *s)
234   {
235     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->appendString8(s)));
236   }
237 
ags_vst_buffer_append_string_from_uchar_buffer(AgsVstBuffer * buffer,guchar * s)238   gboolean ags_vst_buffer_append_string_from_uchar_buffer(AgsVstBuffer *buffer,
239 							  guchar *s)
240   {
241     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->appendString8(s)));
242   }
243 
ags_vst_buffer_append_string_from_unichar2_buffer(AgsVstBuffer * buffer,gunichar2 * s)244   gboolean ags_vst_buffer_append_string_from_unichar2_buffer(AgsVstBuffer *buffer,
245 							     gunichar2 *s)
246   {
247     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->appendString16((Steinberg::char16*) s)));
248   }
249 
ags_vst_buffer_append_string_from_char_byte(AgsVstBuffer * buffer,gchar c)250   gboolean ags_vst_buffer_append_string_from_char_byte(AgsVstBuffer *buffer,
251 						       gchar c)
252   {
253     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->appendString8(c)));
254   }
255 
ags_vst_buffer_append_string_from_uchar_byte(AgsVstBuffer * buffer,guchar c)256   gboolean ags_vst_buffer_append_string_from_uchar_byte(AgsVstBuffer *buffer,
257 							guchar c)
258   {
259     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->appendString8(c)));
260   }
261 
ags_vst_buffer_append_string_from_unichar2_byte(AgsVstBuffer * buffer,gunichar2 c)262   gboolean ags_vst_buffer_append_string_from_unichar2_byte(AgsVstBuffer *buffer,
263 							   gunichar2 c)
264   {
265     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->appendString16((Steinberg::char16) c)));
266   }
267 
ags_vst_buffer_prepend_string(AgsVstBuffer * buffer,ags_vst_tchar * s)268   gboolean ags_vst_buffer_prepend_string(AgsVstBuffer *buffer,
269 					 ags_vst_tchar *s)
270   {
271     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->prependString(s)));
272   }
273 
ags_vst_buffer_prepend_char(AgsVstBuffer * buffer,ags_vst_tchar c)274   gboolean ags_vst_buffer_prepend_char(AgsVstBuffer *buffer,
275 				       ags_vst_tchar c)
276   {
277     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->prependString((Steinberg::tchar) c)));
278   }
279 
280 
ags_vst_buffer_prepend_string_from_char_buffer(AgsVstBuffer * buffer,gchar * s)281   gboolean ags_vst_buffer_prepend_string_from_char_buffer(AgsVstBuffer *buffer,
282 							  gchar *s)
283   {
284     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->prependString8(s)));
285   }
286 
ags_vst_buffer_prepend_string_from_uchar_buffer(AgsVstBuffer * buffer,guchar * s)287   gboolean ags_vst_buffer_prepend_string_from_uchar_buffer(AgsVstBuffer *buffer,
288 							   guchar *s)
289   {
290     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->prependString8(s)));
291   }
292 
ags_vst_buffer_prepend_string_from_unichar2_buffer(AgsVstBuffer * buffer,gunichar2 * s)293   gboolean ags_vst_buffer_prepend_string_from_unichar2_buffer(AgsVstBuffer *buffer,
294 							      gunichar2 *s)
295   {
296     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->prependString16((Steinberg::char16 *) s)));
297   }
298 
299 
ags_vst_buffer_prepend_string_from_char_byte(AgsVstBuffer * buffer,gchar c)300   gboolean ags_vst_buffer_prepend_string_from_char_byte(AgsVstBuffer *buffer,
301 							gchar c)
302   {
303     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->prependString8(c)));
304   }
305 
ags_vst_buffer_prepend_string_from_uchar_byte(AgsVstBuffer * buffer,guchar c)306   gboolean ags_vst_buffer_prepend_string_from_uchar_byte(AgsVstBuffer *buffer,
307 							 guchar c)
308   {
309     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->prependString8(c)));
310   }
311 
ags_vst_buffer_prepend_string_from_unichar2_byte(AgsVstBuffer * buffer,gunichar2 c)312   gboolean ags_vst_buffer_prepend_string_from_unichar2_byte(AgsVstBuffer *buffer,
313 							    gunichar2 c)
314   {
315     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->prependString16(c)));
316   }
317 
ags_vst_buffer_end_string(AgsVstBuffer * buffer)318   void ags_vst_buffer_end_string(AgsVstBuffer *buffer)
319   {
320     static_cast<Steinberg::Buffer*>((void *) buffer)->endString();
321   }
322 
ags_vst_buffer_end_string_char(AgsVstBuffer * buffer)323   void ags_vst_buffer_end_string_char(AgsVstBuffer *buffer)
324   {
325     static_cast<Steinberg::Buffer*>((void *) buffer)->endString8();
326   }
327 
ags_vst_buffer_end_string_unichar2(AgsVstBuffer * buffer)328   void ags_vst_buffer_end_string_unichar2(AgsVstBuffer *buffer)
329   {
330     static_cast<Steinberg::Buffer*>((void *) buffer)->endString16();
331   }
332 
ags_vst_buffer_make_hex_string(AgsVstBuffer * buffer,gchar ** result)333   gboolean ags_vst_buffer_make_hex_string(AgsVstBuffer *buffer,
334 					  gchar **result)
335   {
336     Steinberg::String *tmp_result_0;
337     const Steinberg::String& tmp_result_1 = (const Steinberg::String&) tmp_result_0;
338 
339     gboolean retval;
340 
341     retval = static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->makeHexString(const_cast<Steinberg::String&>(tmp_result_1)));
342 
343     if(result != NULL){
344       result[0] = (gchar *) tmp_result_0;
345     }
346 
347     return(retval);
348   }
349 
ags_vst_buffer_from_hex_string(AgsVstBuffer * buffer,gchar * string)350   gboolean ags_vst_buffer_from_hex_string(AgsVstBuffer *buffer,
351 					  gchar *string)
352   {
353     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->fromHexString(string)));
354   }
355 
ags_vst_buffer_to_buffer(AgsVstBuffer * buffer)356   void* ags_vst_buffer_to_buffer(AgsVstBuffer *buffer)
357   {
358     return(buffer);
359   }
360 
ags_vst_buffer_to_str(AgsVstBuffer * buffer)361   ags_vst_tchar* ags_vst_buffer_to_str(AgsVstBuffer *buffer)
362   {
363     return(static_cast<Steinberg::Buffer*>((void *) buffer)->str());
364   }
365 
ags_vst_buffer_to_str8(AgsVstBuffer * buffer)366   gchar* ags_vst_buffer_to_str8(AgsVstBuffer *buffer)
367   {
368     return(static_cast<Steinberg::Buffer*>((void *) buffer)->str8());
369   }
370 
ags_vst_buffer_to_str16(AgsVstBuffer * buffer)371   gunichar2* ags_vst_buffer_to_str16(AgsVstBuffer *buffer)
372   {
373     return((gunichar2 *) static_cast<Steinberg::Buffer*>((void *) buffer)->str16());
374   }
375 
ags_vst_buffer_to_int8_ptr(AgsVstBuffer * buffer)376   gint8* ags_vst_buffer_to_int8_ptr(AgsVstBuffer *buffer)
377   {
378     return((gint8 *) static_cast<Steinberg::Buffer*>((void *) buffer)->int8Ptr());
379   }
380 
ags_vst_buffer_to_uint8_ptr(AgsVstBuffer * buffer)381   guint8* ags_vst_buffer_to_uint8_ptr(AgsVstBuffer *buffer)
382   {
383     return((guint8 *) static_cast<Steinberg::Buffer*>((void *) buffer)->uint8Ptr());
384   }
385 
ags_vst_buffer_to_int16_ptr(AgsVstBuffer * buffer)386   gint16* ags_vst_buffer_to_int16_ptr(AgsVstBuffer *buffer)
387   {
388     return((gint16 *) static_cast<Steinberg::Buffer*>((void *) buffer)->int16Ptr());
389   }
390 
ags_vst_buffer_to_uint16_ptr(AgsVstBuffer * buffer)391   guint16* ags_vst_buffer_to_uint16_ptr(AgsVstBuffer *buffer)
392   {
393     return((guint16 *) static_cast<Steinberg::Buffer*>((void *) buffer)->uint16Ptr());
394   }
395 
ags_vst_buffer_to_int32_ptr(AgsVstBuffer * buffer)396   gint32* ags_vst_buffer_to_int32_ptr(AgsVstBuffer *buffer)
397   {
398     return((gint32 *) static_cast<Steinberg::Buffer*>((void *) buffer)->int32Ptr());
399   }
400 
ags_vst_buffer_to_uint32_ptr(AgsVstBuffer * buffer)401   guint32* ags_vst_buffer_to_uint32_ptr(AgsVstBuffer *buffer)
402   {
403     return((guint32 *) static_cast<Steinberg::Buffer*>((void *) buffer)->uint32Ptr());
404   }
405 
ags_vst_buffer_to_float_ptr(AgsVstBuffer * buffer)406   gfloat* ags_vst_buffer_to_float_ptr(AgsVstBuffer *buffer)
407   {
408     return(static_cast<Steinberg::Buffer*>((void *) buffer)->floatPtr());
409   }
410 
ags_vst_buffer_to_double_ptr(AgsVstBuffer * buffer)411   gdouble* ags_vst_buffer_to_double_ptr(AgsVstBuffer *buffer)
412   {
413     return(static_cast<Steinberg::Buffer*>((void *) buffer)->doublePtr());
414   }
415 
ags_vst_buffer_to_wchar_ptr(AgsVstBuffer * buffer)416   gunichar2* ags_vst_buffer_to_wchar_ptr(AgsVstBuffer *buffer)
417   {
418     return((gunichar2 *) static_cast<Steinberg::Buffer*>((void *) buffer)->wcharPtr());
419   }
420 
ags_vst_buffer_swap(AgsVstBuffer * buffer,gint16 swap_size)421   gboolean ags_vst_buffer_swap(AgsVstBuffer *buffer,
422 			       gint16 swap_size)
423   {
424     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->swap(swap_size)));
425   }
426 
ags_vst_buffer_swap_buffer(AgsVstBuffer * buffer,void * ptr_buffer,guint32 buffer_size,gint16 swap_size)427   gboolean ags_vst_buffer_swap_buffer(AgsVstBuffer *buffer,
428 				      void *ptr_buffer, guint32 buffer_size, gint16 swap_size)
429   {
430     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->swap(ptr_buffer, buffer_size, swap_size)));
431   }
432 
ags_vst_buffer_take(AgsVstBuffer * buffer,AgsVstBuffer * from)433   void ags_vst_buffer_take(AgsVstBuffer *buffer,
434 			   AgsVstBuffer *from)
435   {
436     Steinberg::Buffer *tmp_buffer_0 = static_cast<Steinberg::Buffer*>((void *) from);
437     const Steinberg::Buffer& tmp_buffer_1 = (const Steinberg::Buffer&) tmp_buffer_0;
438 
439     static_cast<Steinberg::Buffer*>((void *) buffer)->take(const_cast<Steinberg::Buffer&>(tmp_buffer_1));
440   }
441 
ags_vst_buffer_pass(AgsVstBuffer * buffer)442   gint8* ags_vst_buffer_pass(AgsVstBuffer *buffer)
443   {
444     return((gint8 *) static_cast<Steinberg::Buffer*>((void *) buffer)->pass());
445   }
446 
ags_vst_buffer_to_wide_string(AgsVstBuffer * buffer,gint32 source_code_page)447   gboolean ags_vst_buffer_to_wide_string(AgsVstBuffer *buffer,
448 					 gint32 source_code_page)
449   {
450     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->toWideString(source_code_page)));
451   }
452 
ags_vst_buffer_to_multibyte_string(AgsVstBuffer * buffer,gint32 dest_code_page)453   gboolean ags_vst_buffer_to_multibyte_string(AgsVstBuffer *buffer,
454 					      gint32 dest_code_page)
455   {
456     return(static_cast<gboolean>(static_cast<Steinberg::Buffer*>((void *) buffer)->toMultibyteString(dest_code_page)));
457   }
458 
459 }
460