Carla Backend
Loading...
Searching...
No Matches
CarlaUtils.h
Go to the documentation of this file.
1/*
2 * Carla Plugin Host
3 * Copyright (C) 2011-2022 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
24using CARLA_BACKEND_NAMESPACE::PluginCategory;
25using CARLA_BACKEND_NAMESPACE::PluginType;
26#endif
27
36
41
45typedef void (*CarlaPipeCallbackFunc)(void* ptr, const char* msg);
46
51typedef 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
110
114 const char* name;
115
119 const char* label;
120
124 const char* maker;
125
129 const char* copyright;
130
131#ifdef __cplusplus
135 CARLA_API _CarlaCachedPluginInfo() noexcept;
136 CARLA_DECLARE_NON_COPYABLE(_CarlaCachedPluginInfo)
137#endif
138
140
141/* --------------------------------------------------------------------------------------------------------------------
142 * cached plugins */
143
152CARLA_PLUGIN_EXPORT uint carla_get_cached_plugin_count(PluginType ptype, const char* pluginPath);
153
160CARLA_PLUGIN_EXPORT const CarlaCachedPluginInfo* carla_get_cached_plugin_info(PluginType ptype, uint index);
161
162#ifndef CARLA_HOST_H_INCLUDED
163/* --------------------------------------------------------------------------------------------------------------------
164 * information */
165
170CARLA_PLUGIN_EXPORT const char* carla_get_complete_license_text(void);
171
175CARLA_PLUGIN_EXPORT const char* carla_get_juce_version(void);
176
180CARLA_PLUGIN_EXPORT const char* const* carla_get_supported_file_extensions(void);
181
185CARLA_PLUGIN_EXPORT const char* const* carla_get_supported_features(void);
186
190CARLA_PLUGIN_EXPORT const char* carla_get_library_filename(void);
191
195CARLA_PLUGIN_EXPORT const char* carla_get_library_folder(void);
196#endif
197
198/* --------------------------------------------------------------------------------------------------------------------
199 * JUCE */
200
209CARLA_PLUGIN_EXPORT void carla_juce_init(void);
210
215CARLA_PLUGIN_EXPORT void carla_juce_idle(void);
216
220CARLA_PLUGIN_EXPORT void carla_juce_cleanup(void);
221
222/* --------------------------------------------------------------------------------------------------------------------
223 * pipes */
224
228CARLA_PLUGIN_EXPORT CarlaPipeClientHandle carla_pipe_client_new(const char* argv[], CarlaPipeCallbackFunc callbackFunc, void* callbackPtr);
229
233CARLA_PLUGIN_EXPORT void carla_pipe_client_idle(CarlaPipeClientHandle handle);
234
239
243CARLA_PLUGIN_EXPORT void carla_pipe_client_lock(CarlaPipeClientHandle handle);
244
248CARLA_PLUGIN_EXPORT void carla_pipe_client_unlock(CarlaPipeClientHandle handle);
249
253CARLA_PLUGIN_EXPORT const char* carla_pipe_client_readlineblock(CarlaPipeClientHandle handle, uint timeout);
254
259CARLA_PLUGIN_EXPORT bool carla_pipe_client_readlineblock_bool(CarlaPipeClientHandle handle, uint timeout);
260CARLA_PLUGIN_EXPORT int carla_pipe_client_readlineblock_int(CarlaPipeClientHandle handle, uint timeout);
261CARLA_PLUGIN_EXPORT double carla_pipe_client_readlineblock_float(CarlaPipeClientHandle handle, uint timeout);
262
266CARLA_PLUGIN_EXPORT bool carla_pipe_client_write_msg(CarlaPipeClientHandle handle, const char* msg);
267
271CARLA_PLUGIN_EXPORT bool carla_pipe_client_write_and_fix_msg(CarlaPipeClientHandle handle, const char* msg);
272
276CARLA_PLUGIN_EXPORT bool carla_pipe_client_flush(CarlaPipeClientHandle handle);
277
282
286CARLA_PLUGIN_EXPORT void carla_pipe_client_destroy(CarlaPipeClientHandle handle);
287
288/* --------------------------------------------------------------------------------------------------------------------
289 * system stuff */
290
294CARLA_PLUGIN_EXPORT void carla_fflush(bool err);
295
299CARLA_PLUGIN_EXPORT void carla_fputs(bool err, const char* string);
300
304CARLA_PLUGIN_EXPORT void carla_set_process_name(const char* name);
305
306/* --------------------------------------------------------------------------------------------------------------------
307 * window control */
308
312CARLA_PLUGIN_EXPORT double carla_get_desktop_scale_factor(void);
313
314CARLA_PLUGIN_EXPORT int carla_cocoa_get_window(void* nsViewPtr);
315CARLA_PLUGIN_EXPORT void carla_cocoa_set_transient_window_for(void* nsViewChild, void* nsViewParent);
316
317CARLA_PLUGIN_EXPORT void carla_x11_reparent_window(uintptr_t winId1, uintptr_t winId2);
318
319CARLA_PLUGIN_EXPORT void carla_x11_move_window(uintptr_t winId, int x, int y);
320
321CARLA_PLUGIN_EXPORT int* carla_x11_get_window_pos(uintptr_t winId);
322
323/* ----------------------------------------------------------------------------------------------------------------- */
324
326
327#endif /* CARLA_UTILS_H_INCLUDED */
PluginType
Definition CarlaBackend.h:608
PluginCategory
Definition CarlaBackend.h:689
CARLA_PLUGIN_EXPORT CarlaPipeClientHandle carla_pipe_client_new(const char *argv[], CarlaPipeCallbackFunc callbackFunc, void *callbackPtr)
CARLA_PLUGIN_EXPORT const char *const * carla_get_supported_features(void)
CARLA_PLUGIN_EXPORT void carla_pipe_client_idle(CarlaPipeClientHandle handle)
CARLA_PLUGIN_EXPORT void carla_juce_init(void)
CARLA_PLUGIN_EXPORT bool carla_pipe_client_flush_and_unlock(CarlaPipeClientHandle handle)
CARLA_PLUGIN_EXPORT bool carla_pipe_client_is_running(CarlaPipeClientHandle handle)
CARLA_PLUGIN_EXPORT void carla_juce_idle(void)
CARLA_PLUGIN_EXPORT int * carla_x11_get_window_pos(uintptr_t winId)
CARLA_PLUGIN_EXPORT void carla_fflush(bool err)
CARLA_PLUGIN_EXPORT void carla_cocoa_set_transient_window_for(void *nsViewChild, void *nsViewParent)
void * CarlaPipeClientHandle
Definition CarlaUtils.h:40
CARLA_PLUGIN_EXPORT void carla_x11_move_window(uintptr_t winId, int x, int y)
CARLA_PLUGIN_EXPORT bool carla_pipe_client_readlineblock_bool(CarlaPipeClientHandle handle, uint timeout)
CARLA_PLUGIN_EXPORT int carla_pipe_client_readlineblock_int(CarlaPipeClientHandle handle, uint timeout)
void(* CarlaPipeCallbackFunc)(void *ptr, const char *msg)
Definition CarlaUtils.h:45
CARLA_PLUGIN_EXPORT double carla_get_desktop_scale_factor(void)
CARLA_PLUGIN_EXPORT const char * carla_get_juce_version(void)
CARLA_PLUGIN_EXPORT void carla_set_process_name(const char *name)
CARLA_PLUGIN_EXPORT void carla_pipe_client_destroy(CarlaPipeClientHandle handle)
CARLA_PLUGIN_EXPORT void carla_pipe_client_unlock(CarlaPipeClientHandle handle)
CARLA_PLUGIN_EXPORT const char * carla_get_library_filename(void)
CARLA_PLUGIN_EXPORT void carla_juce_cleanup(void)
CARLA_PLUGIN_EXPORT void carla_x11_reparent_window(uintptr_t winId1, uintptr_t winId2)
CARLA_PLUGIN_EXPORT void carla_fputs(bool err, const char *string)
CARLA_PLUGIN_EXPORT uint carla_get_cached_plugin_count(PluginType ptype, const char *pluginPath)
CARLA_PLUGIN_EXPORT double carla_pipe_client_readlineblock_float(CarlaPipeClientHandle handle, uint timeout)
CARLA_PLUGIN_EXPORT int carla_cocoa_get_window(void *nsViewPtr)
CARLA_PLUGIN_EXPORT const char *const * carla_get_supported_file_extensions(void)
CARLA_PLUGIN_EXPORT bool carla_pipe_client_write_and_fix_msg(CarlaPipeClientHandle handle, const char *msg)
CARLA_PLUGIN_EXPORT void carla_pipe_client_lock(CarlaPipeClientHandle handle)
CARLA_PLUGIN_EXPORT const char * carla_get_library_folder(void)
CARLA_PLUGIN_EXPORT bool carla_pipe_client_write_msg(CarlaPipeClientHandle handle, const char *msg)
CARLA_PLUGIN_EXPORT const char * carla_pipe_client_readlineblock(CarlaPipeClientHandle handle, uint timeout)
CARLA_PLUGIN_EXPORT const CarlaCachedPluginInfo * carla_get_cached_plugin_info(PluginType ptype, uint index)
CARLA_PLUGIN_EXPORT const char * carla_get_complete_license_text(void)
CARLA_PLUGIN_EXPORT bool carla_pipe_client_flush(CarlaPipeClientHandle handle)
Definition CarlaUtils.h:51
uint32_t cvIns
Definition CarlaUtils.h:84
const char * copyright
Definition CarlaUtils.h:129
uint32_t midiOuts
Definition CarlaUtils.h:99
uint32_t audioOuts
Definition CarlaUtils.h:79
uint32_t audioIns
Definition CarlaUtils.h:74
uint hints
Definition CarlaUtils.h:69
const char * maker
Definition CarlaUtils.h:124
PluginCategory category
Definition CarlaUtils.h:63
uint32_t parameterIns
Definition CarlaUtils.h:104
uint32_t parameterOuts
Definition CarlaUtils.h:109
uint32_t cvOuts
Definition CarlaUtils.h:89
bool valid
Definition CarlaUtils.h:58
uint32_t midiIns
Definition CarlaUtils.h:94
const char * name
Definition CarlaUtils.h:114
const char * label
Definition CarlaUtils.h:119