Carla Backend
CarlaUtils.h
Go to the documentation of this file.
1 /*
2  * Carla Plugin Host
3  * Copyright (C) 2011-2019 Filipe Coelho <falktx@falktx.com>
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation; either version 2 of
8  * the License, or any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * For a full copy of the GNU General Public License see the doc/GPL.txt file.
16  */
17 
18 #ifndef CARLA_UTILS_H_INCLUDED
19 #define CARLA_UTILS_H_INCLUDED
20 
21 #include "CarlaBackend.h"
22 
23 #ifdef __cplusplus
26 #endif
27 
40 typedef void* CarlaPipeClientHandle;
41 
45 typedef void (*CarlaPipeCallbackFunc)(void* ptr, const char* msg);
46 
51 typedef struct _CarlaCachedPluginInfo {
58  bool valid;
59 
64 
69  uint hints;
70 
74  uint32_t audioIns;
75 
79  uint32_t audioOuts;
80 
84  uint32_t cvIns;
85 
89  uint32_t cvOuts;
90 
94  uint32_t midiIns;
95 
99  uint32_t midiOuts;
100 
104  uint32_t parameterIns;
105 
109  uint32_t parameterOuts;
110 
114  const char* name;
115 
119  const char* label;
120 
124  const char* maker;
125 
129  const char* copyright;
130 
131 #ifdef __cplusplus
132 
135  CARLA_API _CarlaCachedPluginInfo() noexcept;
136  CARLA_DECLARE_NON_COPY_STRUCT(_CarlaCachedPluginInfo)
137 #endif
138 
139 } CarlaCachedPluginInfo;
140 
141 /* --------------------------------------------------------------------------------------------------------------------
142  * cached plugins */
143 
151 CARLA_EXPORT uint carla_get_cached_plugin_count(PluginType ptype, const char* pluginPath);
152 
158 CARLA_EXPORT const CarlaCachedPluginInfo* carla_get_cached_plugin_info(PluginType ptype, uint index);
159 
160 #ifndef CARLA_HOST_H_INCLUDED
161 /* --------------------------------------------------------------------------------------------------------------------
162  * information */
163 
168 CARLA_EXPORT const char* carla_get_complete_license_text(void);
169 
173 CARLA_EXPORT const char* carla_get_juce_version(void);
174 
178 CARLA_EXPORT const char* const* carla_get_supported_file_extensions(void);
179 
183 CARLA_EXPORT const char* const* carla_get_supported_features(void);
184 
188 CARLA_EXPORT const char* carla_get_library_filename(void);
189 
193 CARLA_EXPORT const char* carla_get_library_folder(void);
194 #endif
195 
196 /* --------------------------------------------------------------------------------------------------------------------
197  * JUCE */
198 
207 CARLA_EXPORT void carla_juce_init(void);
208 
213 CARLA_EXPORT void carla_juce_idle(void);
214 
218 CARLA_EXPORT void carla_juce_cleanup(void);
219 
220 /* --------------------------------------------------------------------------------------------------------------------
221  * pipes */
222 
226 CARLA_EXPORT CarlaPipeClientHandle carla_pipe_client_new(const char* argv[], CarlaPipeCallbackFunc callbackFunc, void* callbackPtr);
227 
231 CARLA_EXPORT void carla_pipe_client_idle(CarlaPipeClientHandle handle);
232 
236 CARLA_EXPORT bool carla_pipe_client_is_running(CarlaPipeClientHandle handle);
237 
241 CARLA_EXPORT void carla_pipe_client_lock(CarlaPipeClientHandle handle);
242 
246 CARLA_EXPORT void carla_pipe_client_unlock(CarlaPipeClientHandle handle);
247 
251 CARLA_EXPORT const char* carla_pipe_client_readlineblock(CarlaPipeClientHandle handle, uint timeout);
252 
257 CARLA_EXPORT bool carla_pipe_client_readlineblock_bool(CarlaPipeClientHandle handle, uint timeout);
258 CARLA_EXPORT int carla_pipe_client_readlineblock_int(CarlaPipeClientHandle handle, uint timeout);
259 CARLA_EXPORT double carla_pipe_client_readlineblock_float(CarlaPipeClientHandle handle, uint timeout);
260 
264 CARLA_EXPORT bool carla_pipe_client_write_msg(CarlaPipeClientHandle handle, const char* msg);
265 
269 CARLA_EXPORT bool carla_pipe_client_write_and_fix_msg(CarlaPipeClientHandle handle, const char* msg);
270 
274 CARLA_EXPORT bool carla_pipe_client_flush(CarlaPipeClientHandle handle);
275 
280 
284 CARLA_EXPORT void carla_pipe_client_destroy(CarlaPipeClientHandle handle);
285 
286 /* --------------------------------------------------------------------------------------------------------------------
287  * system stuff */
288 
292 CARLA_EXPORT void carla_fflush(bool err);
293 
297 CARLA_EXPORT void carla_fputs(bool err, const char* string);
298 
302 CARLA_EXPORT void carla_set_process_name(const char* name);
303 
304 /* --------------------------------------------------------------------------------------------------------------------
305  * window control */
306 
307 CARLA_EXPORT int carla_cocoa_get_window(void* nsViewPtr);
308 
309 CARLA_EXPORT void carla_x11_reparent_window(uintptr_t winId1, uintptr_t winId2);
310 
311 CARLA_EXPORT void carla_x11_move_window(uintptr_t winId, int x, int y);
312 
313 CARLA_EXPORT int* carla_x11_get_window_pos(uintptr_t winId);
314 
315 /* ----------------------------------------------------------------------------------------------------------------- */
316 
319 #endif /* CARLA_UTILS_H_INCLUDED */
carla_pipe_client_unlock
CARLA_EXPORT void carla_pipe_client_unlock(CarlaPipeClientHandle handle)
carla_pipe_client_write_msg
CARLA_EXPORT bool carla_pipe_client_write_msg(CarlaPipeClientHandle handle, const char *msg)
carla_pipe_client_idle
CARLA_EXPORT void carla_pipe_client_idle(CarlaPipeClientHandle handle)
_CarlaCachedPluginInfo::maker
const char * maker
Definition: CarlaUtils.h:124
_CarlaCachedPluginInfo::midiIns
uint32_t midiIns
Definition: CarlaUtils.h:94
carla_pipe_client_is_running
CARLA_EXPORT bool carla_pipe_client_is_running(CarlaPipeClientHandle handle)
_CarlaCachedPluginInfo::hints
uint hints
Definition: CarlaUtils.h:69
_CarlaCachedPluginInfo::audioIns
uint32_t audioIns
Definition: CarlaUtils.h:74
carla_cocoa_get_window
CARLA_EXPORT int carla_cocoa_get_window(void *nsViewPtr)
carla_juce_init
CARLA_EXPORT void carla_juce_init(void)
carla_get_library_folder
const CARLA_EXPORT char * carla_get_library_folder(void)
carla_get_complete_license_text
const CARLA_EXPORT char * carla_get_complete_license_text(void)
CarlaBackend.h
carla_pipe_client_write_and_fix_msg
CARLA_EXPORT bool carla_pipe_client_write_and_fix_msg(CarlaPipeClientHandle handle, const char *msg)
carla_pipe_client_flush_and_unlock
CARLA_EXPORT bool carla_pipe_client_flush_and_unlock(CarlaPipeClientHandle handle)
carla_get_cached_plugin_count
CARLA_EXPORT uint carla_get_cached_plugin_count(PluginType ptype, const char *pluginPath)
_CarlaCachedPluginInfo::midiOuts
uint32_t midiOuts
Definition: CarlaUtils.h:99
carla_x11_move_window
CARLA_EXPORT void carla_x11_move_window(uintptr_t winId, int x, int y)
carla_pipe_client_destroy
CARLA_EXPORT void carla_pipe_client_destroy(CarlaPipeClientHandle handle)
_CarlaCachedPluginInfo::valid
bool valid
Definition: CarlaUtils.h:58
carla_pipe_client_new
CARLA_EXPORT CarlaPipeClientHandle carla_pipe_client_new(const char *argv[], CarlaPipeCallbackFunc callbackFunc, void *callbackPtr)
carla_juce_cleanup
CARLA_EXPORT void carla_juce_cleanup(void)
carla_fputs
CARLA_EXPORT void carla_fputs(bool err, const char *string)
carla_pipe_client_readlineblock_float
CARLA_EXPORT double carla_pipe_client_readlineblock_float(CarlaPipeClientHandle handle, uint timeout)
carla_get_supported_file_extensions
const CARLA_EXPORT char *const * carla_get_supported_file_extensions(void)
_CarlaCachedPluginInfo::parameterIns
uint32_t parameterIns
Definition: CarlaUtils.h:104
carla_x11_reparent_window
CARLA_EXPORT void carla_x11_reparent_window(uintptr_t winId1, uintptr_t winId2)
carla_fflush
CARLA_EXPORT void carla_fflush(bool err)
carla_get_supported_features
const CARLA_EXPORT char *const * carla_get_supported_features(void)
carla_pipe_client_flush
CARLA_EXPORT bool carla_pipe_client_flush(CarlaPipeClientHandle handle)
carla_juce_idle
CARLA_EXPORT void carla_juce_idle(void)
carla_get_library_filename
const CARLA_EXPORT char * carla_get_library_filename(void)
_CarlaCachedPluginInfo::parameterOuts
uint32_t parameterOuts
Definition: CarlaUtils.h:109
carla_get_juce_version
const CARLA_EXPORT char * carla_get_juce_version(void)
carla_get_cached_plugin_info
const CARLA_EXPORT CarlaCachedPluginInfo * carla_get_cached_plugin_info(PluginType ptype, uint index)
carla_pipe_client_lock
CARLA_EXPORT void carla_pipe_client_lock(CarlaPipeClientHandle handle)
CarlaPipeClientHandle
void * CarlaPipeClientHandle
Definition: CarlaUtils.h:40
_CarlaCachedPluginInfo::name
const char * name
Definition: CarlaUtils.h:114
_CarlaCachedPluginInfo::category
PluginCategory category
Definition: CarlaUtils.h:63
carla_x11_get_window_pos
CARLA_EXPORT int * carla_x11_get_window_pos(uintptr_t winId)
carla_pipe_client_readlineblock_bool
CARLA_EXPORT bool carla_pipe_client_readlineblock_bool(CarlaPipeClientHandle handle, uint timeout)
_CarlaCachedPluginInfo::copyright
const char * copyright
Definition: CarlaUtils.h:129
_CarlaCachedPluginInfo::label
const char * label
Definition: CarlaUtils.h:119
carla_pipe_client_readlineblock_int
CARLA_EXPORT int carla_pipe_client_readlineblock_int(CarlaPipeClientHandle handle, uint timeout)
_CarlaCachedPluginInfo::cvOuts
uint32_t cvOuts
Definition: CarlaUtils.h:89
_CarlaCachedPluginInfo
Definition: CarlaUtils.h:51
_CarlaCachedPluginInfo::audioOuts
uint32_t audioOuts
Definition: CarlaUtils.h:79
carla_set_process_name
CARLA_EXPORT void carla_set_process_name(const char *name)
CarlaPipeCallbackFunc
void(* CarlaPipeCallbackFunc)(void *ptr, const char *msg)
Definition: CarlaUtils.h:45
PluginCategory
PluginCategory
Definition: CarlaBackend.h:649
PluginType
PluginType
Definition: CarlaBackend.h:573
_CarlaCachedPluginInfo::cvIns
uint32_t cvIns
Definition: CarlaUtils.h:84
carla_pipe_client_readlineblock
const CARLA_EXPORT char * carla_pipe_client_readlineblock(CarlaPipeClientHandle handle, uint timeout)