liblscp  0.9.11.2
client.h
Go to the documentation of this file.
1 // client.h
2 //
3 /****************************************************************************
4  liblscp - LinuxSampler Control Protocol API
5  Copyright (C) 2004-2021, rncbc aka Rui Nuno Capela. All rights reserved.
6 
7  This library is free software; you can redistribute it and/or
8  modify it under the terms of the GNU Lesser General Public
9  License as published by the Free Software Foundation; either
10  version 2.1 of the License, or (at your option) any later version.
11 
12  This library is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  Lesser General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License along
18  with this program; if not, write to the Free Software Foundation, Inc.,
19  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 
21 *****************************************************************************/
22 
23 #ifndef __LSCP_CLIENT_H
24 #define __LSCP_CLIENT_H
25 
26 #include "lscp/socket.h"
27 #include "lscp/event.h"
28 #include <stdbool.h>
29 
30 #if defined(__cplusplus)
31 extern "C" {
32 #endif
33 
34 //-------------------------------------------------------------------------
35 // MIDI channel omni mode.
36 
37 #define LSCP_MIDI_CHANNEL_ALL 16
38 
39 
40 //-------------------------------------------------------------------------
41 // Client data structures.
42 
44 typedef struct _lscp_server_info_t
45 {
46  char * description;
47  char * version;
49 
51 
52 
54 typedef struct _lscp_engine_info_t
55 {
56  char * description;
57  char * version;
58 
60 
61 
63 typedef struct _lscp_channel_info_t
64 {
65  char * engine_name;
74  int midi_port;
76  int midi_map;
77  float volume;
78  int mute;
79  int solo;
80 
82 
83 
85 typedef struct _lscp_buffer_fill_t
86 {
87  unsigned int stream_id;
88  unsigned long stream_usage;
89 
91 
92 
94 typedef enum _lscp_usage_t
95 {
98 
99 } lscp_usage_t;
100 
101 
103 typedef struct _lscp_fxsend_info_t
104 {
105  char * name;
108  float level;
109 
111 
112 
115 {
116  int map;
117  int bank;
118  int prog;
119 
121 
122 
124 typedef enum _lscp_load_mode_t
125 {
130 
132 
133 
136 {
137  char * name;
138  char * engine_name;
143  float volume;
144 
146 
147 
150 {
154 
156 
157 
158 //-------------------------------------------------------------------------
159 // Client socket main structure.
160 
162 typedef struct _lscp_client_t lscp_client_t;
163 
166 (
167  struct _lscp_client_t *pClient,
168  lscp_event_t event,
169  const char *pchData,
170  int cchData,
171  void *pvData
172 );
173 
174 //-------------------------------------------------------------------------
175 // Client versioning teller function.
176 
177 const char * lscp_client_package (void);
178 const char * lscp_client_version (void);
179 const char * lscp_client_build (void);
180 
181 //-------------------------------------------------------------------------
182 // Client socket functions.
183 
184 lscp_client_t * lscp_client_create (const char *pszHost, int iPort, lscp_client_proc_t pfnCallback, void *pvData);
187 
188 lscp_status_t lscp_client_set_timeout (lscp_client_t *pClient, int iTimeout);
191 
192 //-------------------------------------------------------------------------
193 // Client common protocol functions.
194 
195 lscp_status_t lscp_client_query (lscp_client_t *pClient, const char *pszQuery);
196 const char * lscp_client_get_result (lscp_client_t *pClient );
197 int lscp_client_get_errno (lscp_client_t *pClient );
198 
199 //-------------------------------------------------------------------------
200 // Client registration protocol functions.
201 
204 
206 
207 //-------------------------------------------------------------------------
208 // Client command protocol functions.
209 
210 lscp_status_t lscp_load_instrument (lscp_client_t *pClient, const char *pszFileName, int iInstrIndex, int iSamplerChannel);
211 lscp_status_t lscp_load_instrument_non_modal (lscp_client_t *pClient, const char *pszFileName, int iInstrIndex, int iSamplerChannel);
212 lscp_status_t lscp_load_engine (lscp_client_t *pClient, const char *pszEngineName, int iSamplerChannel);
213 int lscp_get_channels (lscp_client_t *pClient);
214 int * lscp_list_channels (lscp_client_t *pClient);
215 int lscp_add_channel (lscp_client_t *pClient);
216 lscp_status_t lscp_remove_channel (lscp_client_t *pClient, int iSamplerChannel);
217 
219 const char ** lscp_list_available_engines (lscp_client_t *pClient);
220 
221 lscp_engine_info_t * lscp_get_engine_info (lscp_client_t *pClient, const char *pszEngineName);
222 lscp_channel_info_t * lscp_get_channel_info (lscp_client_t *pClient, int iSamplerChannel);
223 
224 int lscp_get_channel_voice_count (lscp_client_t *pClient, int iSamplerChannel);
225 int lscp_get_channel_stream_count (lscp_client_t *pClient, int iSamplerChannel);
226 int lscp_get_channel_stream_usage (lscp_client_t *pClient, int iSamplerChannel);
227 
228 lscp_buffer_fill_t * lscp_get_channel_buffer_fill (lscp_client_t *pClient, lscp_usage_t iUsageType, int iSamplerChannel);
229 
230 lscp_status_t lscp_set_channel_audio_type (lscp_client_t *pClient, int iSamplerChannel, const char *pszAudioType);
231 lscp_status_t lscp_set_channel_audio_device (lscp_client_t *pClient, int iSamplerChannel, int iAudioDevice);
232 lscp_status_t lscp_set_channel_audio_channel (lscp_client_t *pClient, int iSamplerChannel, int iAudioOut, int iAudioIn);
233 
234 lscp_status_t lscp_set_channel_midi_type (lscp_client_t *pClient, int iSamplerChannel, const char *pszMidiType);
235 lscp_status_t lscp_set_channel_midi_device (lscp_client_t *pClient, int iSamplerChannel, int iMidiDevice);
236 lscp_status_t lscp_set_channel_midi_port (lscp_client_t *pClient, int iSamplerChannel, int iMidiPort);
237 lscp_status_t lscp_set_channel_midi_channel (lscp_client_t *pClient, int iSamplerChannel, int iMidiChannel);
238 lscp_status_t lscp_set_channel_midi_map (lscp_client_t *pClient, int iSamplerChannel, int iMidiMap);
239 
240 lscp_status_t lscp_set_channel_volume (lscp_client_t *pClient, int iSamplerChannel, float fVolume);
241 
242 lscp_status_t lscp_set_channel_mute (lscp_client_t *pClient, int iSamplerChannel, int iMute);
243 lscp_status_t lscp_set_channel_solo (lscp_client_t *pClient, int iSamplerChannel, int iSolo);
244 
245 lscp_status_t lscp_reset_channel (lscp_client_t *pClient, int iSamplerChannel);
246 
248 
250 
253 
254 float lscp_get_volume (lscp_client_t *pClient);
255 lscp_status_t lscp_set_volume (lscp_client_t *pClient, float fVolume);
256 
257 int lscp_get_voices (lscp_client_t *pClient);
258 lscp_status_t lscp_set_voices (lscp_client_t *pClient, int iMaxVoices);
259 
260 int lscp_get_streams (lscp_client_t *pClient);
261 lscp_status_t lscp_set_streams (lscp_client_t *pClient, int iMaxStreams);
262 
263 //-------------------------------------------------------------------------
264 // Effect sends control functions.
265 
266 int lscp_create_fxsend (lscp_client_t *pClient, int iSamplerChannel, int iMidiController, const char *pszFxName);
267 lscp_status_t lscp_destroy_fxsend (lscp_client_t *pClient, int iSamplerChannel, int iFxSend);
268 
269 int lscp_get_fxsends (lscp_client_t *pClient, int iSamplerChannel);
270 int * lscp_list_fxsends (lscp_client_t *pClient, int iSamplerChannel);
271 
272 lscp_fxsend_info_t * lscp_get_fxsend_info (lscp_client_t *pClient, int iSamplerChannel, int iFxSend);
273 
274 lscp_status_t lscp_set_fxsend_name (lscp_client_t *pClient, int iSamplerChannel, int iFxSend, const char *pszFxName);
275 lscp_status_t lscp_set_fxsend_audio_channel (lscp_client_t *pClient, int iSamplerChannel, int iFxSend, int iAudioSrc, int iAudioDst);
276 lscp_status_t lscp_set_fxsend_midi_controller (lscp_client_t *pClient, int iSamplerChannel, int iFxSend, int iMidiController);
277 lscp_status_t lscp_set_fxsend_level (lscp_client_t *pClient, int iSamplerChannel, int iFxSend, float fLevel);
278 
279 //-------------------------------------------------------------------------
280 // MIDI instrument mapping control functions.
281 
282 int lscp_add_midi_instrument_map (lscp_client_t *pClient, const char *pszMapName);
284 
287 
288 const char * lscp_get_midi_instrument_map_name (lscp_client_t *pClient, int iMidiMap);
289 lscp_status_t lscp_set_midi_instrument_map_name (lscp_client_t *pClient, int iMidiMap, const char *pszMapName);
290 
291 lscp_status_t lscp_map_midi_instrument (lscp_client_t *pClient, lscp_midi_instrument_t *pMidiInstr, const char *pszEngineName, const char *pszFileName, int iInstrIndex, float fVolume, lscp_load_mode_t load_mode, const char *pszName);
293 
294 int lscp_get_midi_instruments (lscp_client_t *pClient, int iMidiMap);
296 
298 
300 
301 //-------------------------------------------------------------------------
302 // Instrument editor functions.
303 
304 lscp_status_t lscp_edit_channel_instrument (lscp_client_t *pClient, int iSamplerChannel);
305 
306 #if defined(__cplusplus)
307 }
308 #endif
309 
310 #endif // __LSCP_CLIENT_H
311 
312 // end of client.h
lscp_get_fxsend_info
lscp_fxsend_info_t * lscp_get_fxsend_info(lscp_client_t *pClient, int iSamplerChannel, int iFxSend)
Definition: client.c:2387
LSCP_BUILD
#define LSCP_BUILD
Definition: version.h:28
_lscp_channel_info_t::midi_port
int midi_port
Definition: client.h:74
lscp_midi_instrument_info_t
struct _lscp_midi_instrument_info_t lscp_midi_instrument_info_t
lscp_list_channels
int * lscp_list_channels(lscp_client_t *pClient)
Definition: client.c:1060
_lscp_midi_instrument_info_t::load_mode
lscp_load_mode_t load_mode
Definition: client.h:142
_lscp_midi_instrument_info_t
Definition: client.h:135
LSCP_EVENT_TOTAL_VOICE_COUNT
@ LSCP_EVENT_TOTAL_VOICE_COUNT
Definition: event.h:60
lscp_client_get_events
lscp_event_t lscp_client_get_events(lscp_client_t *pClient)
Definition: client.c:937
LSCP_EVENT_CHANNEL_COUNT
@ LSCP_EVENT_CHANNEL_COUNT
Definition: event.h:55
lscp_get_available_engines
int lscp_get_available_engines(lscp_client_t *pClient)
Definition: client.c:1144
lscp_get_streams
int lscp_get_streams(lscp_client_t *pClient)
Definition: client.c:2183
lscp_set_fxsend_midi_controller
lscp_status_t lscp_set_fxsend_midi_controller(lscp_client_t *pClient, int iSamplerChannel, int iFxSend, int iMidiController)
Definition: client.c:2520
lscp_get_volume
float lscp_get_volume(lscp_client_t *pClient)
Definition: client.c:2053
lscp_list_channels
int * lscp_list_channels(lscp_client_t *pClient)
Definition: client.c:1060
lscp_get_fxsends
int lscp_get_fxsends(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:2313
lscp_load_mode_t
enum _lscp_load_mode_t lscp_load_mode_t
lscp_event_t
enum _lscp_event_t lscp_event_t
lscp_client_create
lscp_client_t * lscp_client_create(const char *pszHost, int iPort, lscp_client_proc_t pfnCallback, void *pvData)
Definition: client.c:304
LSCP_USAGE_PERCENTAGE
@ LSCP_USAGE_PERCENTAGE
Definition: client.h:97
_lscp_channel_info_t::instrument_status
int instrument_status
Definition: client.h:72
lscp_client_unsubscribe
lscp_status_t lscp_client_unsubscribe(lscp_client_t *pClient, lscp_event_t events)
Definition: client.c:863
lscp_server_info_t
struct _lscp_server_info_t lscp_server_info_t
_lscp_fxsend_info_t::midi_controller
int midi_controller
Definition: client.h:106
lscp_list_midi_instrument_maps
int * lscp_list_midi_instrument_maps(lscp_client_t *pClient)
Definition: client.c:2662
lscp_set_voices
lscp_status_t lscp_set_voices(lscp_client_t *pClient, int iMaxVoices)
Definition: client.c:2157
lscp_get_channel_buffer_fill
lscp_buffer_fill_t * lscp_get_channel_buffer_fill(lscp_client_t *pClient, lscp_usage_t iUsageType, int iSamplerChannel)
Definition: client.c:1537
lscp_client_subscribe
lscp_status_t lscp_client_subscribe(lscp_client_t *pClient, lscp_event_t events)
Definition: client.c:767
LSCP_LOAD_ON_DEMAND
@ LSCP_LOAD_ON_DEMAND
Definition: client.h:127
lscp_socket_herror
void lscp_socket_herror(const char *pszPrefix)
Definition: socket.c:119
lscp_usage_t
enum _lscp_usage_t lscp_usage_t
_lscp_engine_info_t::version
char * version
Definition: client.h:57
LSCP_EVENT_CHANNEL_MIDI
@ LSCP_EVENT_CHANNEL_MIDI
Definition: event.h:72
_lscp_server_info_t::description
char * description
Definition: client.h:46
lscp_mutex_unlock
#define lscp_mutex_unlock(m)
Definition: thread.h:76
_lscp_buffer_fill_t::stream_id
unsigned int stream_id
Definition: client.h:87
lscp_client_create
lscp_client_t * lscp_client_create(const char *pszHost, int iPort, lscp_client_proc_t pfnCallback, void *pvData)
Definition: client.c:304
lscp_get_fxsend_info
lscp_fxsend_info_t * lscp_get_fxsend_info(lscp_client_t *pClient, int iSamplerChannel, int iFxSend)
Definition: client.c:2387
_lscp_midi_instrument_t::map
int map
Definition: client.h:116
lscp_get_total_voice_count_max
int lscp_get_total_voice_count_max(lscp_client_t *pClient)
Definition: client.c:2024
lscp_engine_info_t
struct _lscp_engine_info_t lscp_engine_info_t
lscp_client_join
lscp_status_t lscp_client_join(lscp_client_t *pClient)
Definition: client.c:518
lscp_client_version
const char * lscp_client_version(void)
Definition: client.c:281
lscp_add_midi_instrument_map
int lscp_add_midi_instrument_map(lscp_client_t *pClient, const char *pszMapName)
Definition: client.c:2574
lscp_get_midi_instrument_maps
int lscp_get_midi_instrument_maps(lscp_client_t *pClient)
Definition: client.c:2633
lscp_client_build
const char * lscp_client_build(void)
Definition: client.c:284
lscp_set_channel_midi_port
lscp_status_t lscp_set_channel_midi_port(lscp_client_t *pClient, int iSamplerChannel, int iMidiPort)
Definition: client.c:1732
lscp_get_server_info
lscp_server_info_t * lscp_get_server_info(lscp_client_t *pClient)
Definition: client.c:1937
_lscp_midi_instrument_t::bank
int bank
Definition: client.h:117
lscp_set_fxsend_midi_controller
lscp_status_t lscp_set_fxsend_midi_controller(lscp_client_t *pClient, int iSamplerChannel, int iFxSend, int iMidiController)
Definition: client.c:2520
lscp_cond_init
#define lscp_cond_init(c)
Definition: thread.h:90
lscp_add_channel
int lscp_add_channel(lscp_client_t *pClient)
Definition: client.c:1094
LSCP_TIMEOUT_MSECS
#define LSCP_TIMEOUT_MSECS
Definition: client.c:34
LSCP_FAILED
@ LSCP_FAILED
Definition: thread.h:72
lscp_socket_agent_start
lscp_status_t lscp_socket_agent_start(lscp_socket_agent_t *pAgent, lscp_thread_proc_t pfnProc, void *pvData, int iDetach)
Definition: socket.c:211
lscp_map_midi_instrument
lscp_status_t lscp_map_midi_instrument(lscp_client_t *pClient, lscp_midi_instrument_t *pMidiInstr, const char *pszEngineName, const char *pszFileName, int iInstrIndex, float fVolume, lscp_load_mode_t load_mode, const char *pszName)
Definition: client.c:2788
lscp_get_total_voice_count_max
int lscp_get_total_voice_count_max(lscp_client_t *pClient)
Definition: client.c:2024
lscp_client_set_timeout
lscp_status_t lscp_client_set_timeout(lscp_client_t *pClient, int iTimeout)
Definition: client.c:624
lscp_reset_sampler
lscp_status_t lscp_reset_sampler(lscp_client_t *pClient)
Definition: client.c:1921
_lscp_channel_info_t
Definition: client.h:63
lscp_destroy_fxsend
lscp_status_t lscp_destroy_fxsend(lscp_client_t *pClient, int iSamplerChannel, int iFxSend)
Definition: client.c:2288
lscp_mutex_init
#define lscp_mutex_init(m)
Definition: thread.h:73
lscp_client_build
const char * lscp_client_build(void)
Definition: client.c:284
LSCP_EVENT_AUDIO_OUTPUT_DEVICE_INFO
@ LSCP_EVENT_AUDIO_OUTPUT_DEVICE_INFO
Definition: event.h:62
_lscp_channel_info_t::volume
float volume
Definition: client.h:77
_lscp_midi_instrument_t::prog
int prog
Definition: client.h:118
_lscp_channel_info_t::audio_device
int audio_device
Definition: client.h:66
lscp_get_server_info
lscp_server_info_t * lscp_get_server_info(lscp_client_t *pClient)
Definition: client.c:1937
lscp_set_channel_midi_channel
lscp_status_t lscp_set_channel_midi_channel(lscp_client_t *pClient, int iSamplerChannel, int iMidiChannel)
Definition: client.c:1757
lscp_set_channel_midi_type
lscp_status_t lscp_set_channel_midi_type(lscp_client_t *pClient, int iSamplerChannel, const char *pszMidiType)
Definition: client.c:1684
_lscp_channel_info_t::audio_channels
int audio_channels
Definition: client.h:67
lscp_client_get_timeout
int lscp_client_get_timeout(lscp_client_t *pClient)
Definition: client.c:643
LSCP_EVENT_DEVICE_MIDI
@ LSCP_EVENT_DEVICE_MIDI
Definition: event.h:73
lscp_client_set_timeout
lscp_status_t lscp_client_set_timeout(lscp_client_t *pClient, int iTimeout)
Definition: client.c:624
lscp_reset_sampler
lscp_status_t lscp_reset_sampler(lscp_client_t *pClient)
Definition: client.c:1921
_lscp_midi_map_mode_t
_lscp_midi_map_mode_t
Definition: client.h:149
_lscp_fxsend_info_t::level
float level
Definition: client.h:108
lscp_set_channel_audio_channel
lscp_status_t lscp_set_channel_audio_channel(lscp_client_t *pClient, int iSamplerChannel, int iAudioOut, int iAudioIn)
Definition: client.c:1660
lscp_midi_instrument_t
struct _lscp_midi_instrument_t lscp_midi_instrument_t
lscp_client_get_result
const char * lscp_client_get_result(lscp_client_t *pClient)
Definition: client.c:710
lscp_get_channels
int lscp_get_channels(lscp_client_t *pClient)
Definition: client.c:1031
lscp_client_get_timeout
int lscp_client_get_timeout(lscp_client_t *pClient)
Definition: client.c:643
lscp_set_fxsend_level
lscp_status_t lscp_set_fxsend_level(lscp_client_t *pClient, int iSamplerChannel, int iFxSend, float fLevel)
Definition: client.c:2546
lscp_socket_agent_join
lscp_status_t lscp_socket_agent_join(lscp_socket_agent_t *pAgent)
Definition: socket.c:225
lscp_get_midi_instruments
int lscp_get_midi_instruments(lscp_client_t *pClient, int iMidiMap)
Definition: client.c:2876
lscp_load_engine
lscp_status_t lscp_load_engine(lscp_client_t *pClient, const char *pszEngineName, int iSamplerChannel)
Definition: client.c:1009
lscp_clear_midi_instruments
lscp_status_t lscp_clear_midi_instruments(lscp_client_t *pClient, int iMidiMap)
Definition: client.c:3066
lscp_add_midi_instrument_map
int lscp_add_midi_instrument_map(lscp_client_t *pClient, const char *pszMapName)
Definition: client.c:2574
lscp_set_streams
lscp_status_t lscp_set_streams(lscp_client_t *pClient, int iMaxStreams)
Definition: client.c:2221
lscp_set_midi_instrument_map_name
lscp_status_t lscp_set_midi_instrument_map_name(lscp_client_t *pClient, int iMidiMap, const char *pszMapName)
Definition: client.c:2749
lscp_mutex_destroy
#define lscp_mutex_destroy(m)
Definition: thread.h:74
LSCP_EVENT_MIDI_INSTRUMENT_COUNT
@ LSCP_EVENT_MIDI_INSTRUMENT_COUNT
Definition: event.h:67
lscp_set_channel_midi_port
lscp_status_t lscp_set_channel_midi_port(lscp_client_t *pClient, int iSamplerChannel, int iMidiPort)
Definition: client.c:1732
_lscp_engine_info_t
Definition: client.h:54
lscp_set_channel_mute
lscp_status_t lscp_set_channel_mute(lscp_client_t *pClient, int iSamplerChannel, int iMute)
Definition: client.c:1852
lscp_mutex_lock
#define lscp_mutex_lock(m)
Definition: thread.h:75
lscp_add_channel
int lscp_add_channel(lscp_client_t *pClient)
Definition: client.c:1094
lscp_get_midi_instrument_map_name
const char * lscp_get_midi_instrument_map_name(lscp_client_t *pClient, int iMidiMap)
Definition: client.c:2696
lscp_get_channels
int lscp_get_channels(lscp_client_t *pClient)
Definition: client.c:1031
_lscp_channel_info_t::midi_map
int midi_map
Definition: client.h:76
lscp_set_volume
lscp_status_t lscp_set_volume(lscp_client_t *pClient, float fVolume)
Definition: client.c:2089
_lscp_midi_instrument_info_t::instrument_file
char * instrument_file
Definition: client.h:139
lscp_list_midi_instruments
lscp_midi_instrument_t * lscp_list_midi_instruments(lscp_client_t *pClient, int iMidiMap)
Definition: client.c:2916
lscp_load_instrument_non_modal
lscp_status_t lscp_load_instrument_non_modal(lscp_client_t *pClient, const char *pszFileName, int iInstrIndex, int iSamplerChannel)
Definition: client.c:985
lscp_cond_wait
#define lscp_cond_wait(c, m)
Definition: thread.h:92
lscp_get_channel_info
lscp_channel_info_t * lscp_get_channel_info(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1267
LSCP_EVENT_AUDIO_OUTPUT_DEVICE_COUNT
@ LSCP_EVENT_AUDIO_OUTPUT_DEVICE_COUNT
Definition: event.h:61
lscp_get_channel_stream_count
int lscp_get_channel_stream_count(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1443
LSCP_EVENT_CHANNEL_INFO
@ LSCP_EVENT_CHANNEL_INFO
Definition: event.h:59
LSCP_EVENT_VOICE_COUNT
@ LSCP_EVENT_VOICE_COUNT
Definition: event.h:56
lscp_get_total_voice_count
int lscp_get_total_voice_count(lscp_client_t *pClient)
Definition: client.c:1995
_locale_t
Definition: client.c:56
_lscp_channel_info_t::midi_channel
int midi_channel
Definition: client.h:75
lscp_set_channel_audio_type
lscp_status_t lscp_set_channel_audio_type(lscp_client_t *pClient, int iSamplerChannel, const char *pszAudioDriver)
Definition: client.c:1611
LSCP_PACKAGE
#define LSCP_PACKAGE
Definition: version.h:26
LSCP_LOAD_DEFAULT
@ LSCP_LOAD_DEFAULT
Definition: client.h:126
lscp_set_channel_midi_map
lscp_status_t lscp_set_channel_midi_map(lscp_client_t *pClient, int iSamplerChannel, int iMidiMap)
Definition: client.c:1787
lscp_remove_midi_instrument_map
lscp_status_t lscp_remove_midi_instrument_map(lscp_client_t *pClient, int iMidiMap)
Definition: client.c:2611
_lscp_midi_instrument_info_t::volume
float volume
Definition: client.h:143
lscp_set_fxsend_level
lscp_status_t lscp_set_fxsend_level(lscp_client_t *pClient, int iSamplerChannel, int iFxSend, float fLevel)
Definition: client.c:2546
lscp_get_midi_instrument_info
lscp_midi_instrument_info_t * lscp_get_midi_instrument_info(lscp_client_t *pClient, lscp_midi_instrument_t *pMidiInstr)
Definition: client.c:2962
lscp_get_channel_stream_usage
int lscp_get_channel_stream_usage(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1476
lscp_create_fxsend
int lscp_create_fxsend(lscp_client_t *pClient, int iSamplerChannel, int iMidiController, const char *pszFxName)
Definition: client.c:2246
lscp_unmap_midi_instrument
lscp_status_t lscp_unmap_midi_instrument(lscp_client_t *pClient, lscp_midi_instrument_t *pMidiInstr)
Definition: client.c:2847
lscp_set_channel_mute
lscp_status_t lscp_set_channel_mute(lscp_client_t *pClient, int iSamplerChannel, int iMute)
Definition: client.c:1852
lscp_set_channel_volume
lscp_status_t lscp_set_channel_volume(lscp_client_t *pClient, int iSamplerChannel, float fVolume)
Definition: client.c:1822
lscp_edit_channel_instrument
lscp_status_t lscp_edit_channel_instrument(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:3093
lscp_client_join
lscp_status_t lscp_client_join(lscp_client_t *pClient)
Definition: client.c:518
INVALID_SOCKET
#define INVALID_SOCKET
Definition: socket.h:51
lscp_get_midi_instrument_maps
int lscp_get_midi_instrument_maps(lscp_client_t *pClient)
Definition: client.c:2633
lscp_set_fxsend_audio_channel
lscp_status_t lscp_set_fxsend_audio_channel(lscp_client_t *pClient, int iSamplerChannel, int iFxSend, int iAudioSrc, int iAudioDst)
Definition: client.c:2494
lscp_remove_channel
lscp_status_t lscp_remove_channel(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1123
lscp_status_t
enum _lscp_status_t lscp_status_t
lscp_client_package
const char * lscp_client_package(void)
Definition: client.c:278
lscp_set_channel_volume
lscp_status_t lscp_set_channel_volume(lscp_client_t *pClient, int iSamplerChannel, float fVolume)
Definition: client.c:1822
_lscp_usage_t
_lscp_usage_t
Definition: client.h:94
LSCP_EVENT_MIDI_INPUT_DEVICE_INFO
@ LSCP_EVENT_MIDI_INPUT_DEVICE_INFO
Definition: event.h:64
lscp_channel_info_t
struct _lscp_channel_info_t lscp_channel_info_t
lscp_client_get_errno
int lscp_client_get_errno(lscp_client_t *pClient)
Definition: client.c:727
lscp_socket_agent_free
lscp_status_t lscp_socket_agent_free(lscp_socket_agent_t *pAgent)
Definition: socket.c:236
lscp_list_available_engines
const char ** lscp_list_available_engines(lscp_client_t *pClient)
Definition: client.c:1173
lscp_cond_destroy
#define lscp_cond_destroy(c)
Definition: thread.h:91
lscp_destroy_fxsend
lscp_status_t lscp_destroy_fxsend(lscp_client_t *pClient, int iSamplerChannel, int iFxSend)
Definition: client.c:2288
LSCP_EVENT_MISCELLANEOUS
@ LSCP_EVENT_MISCELLANEOUS
Definition: event.h:69
LSCP_VERSION
#define LSCP_VERSION
Definition: version.h:27
lscp_list_fxsends
int * lscp_list_fxsends(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:2348
lscp_client_get_events
lscp_event_t lscp_client_get_events(lscp_client_t *pClient)
Definition: client.c:937
lscp_get_streams
int lscp_get_streams(lscp_client_t *pClient)
Definition: client.c:2183
LSCP_MIDI_MAP_DEFAULT
@ LSCP_MIDI_MAP_DEFAULT
Definition: client.h:152
lscp_set_channel_midi_channel
lscp_status_t lscp_set_channel_midi_channel(lscp_client_t *pClient, int iSamplerChannel, int iMidiChannel)
Definition: client.c:1757
lscp_get_available_engines
int lscp_get_available_engines(lscp_client_t *pClient)
Definition: client.c:1144
_lscp_channel_info_t::audio_routing
int * audio_routing
Definition: client.h:68
lscp_remove_midi_instrument_map
lscp_status_t lscp_remove_midi_instrument_map(lscp_client_t *pClient, int iMidiMap)
Definition: client.c:2611
lscp_list_available_engines
const char ** lscp_list_available_engines(lscp_client_t *pClient)
Definition: client.c:1173
_lscp_channel_info_t::instrument_nr
int instrument_nr
Definition: client.h:70
event.h
_lscp_midi_instrument_info_t::instrument_nr
int instrument_nr
Definition: client.h:140
lscp_get_channel_buffer_fill
lscp_buffer_fill_t * lscp_get_channel_buffer_fill(lscp_client_t *pClient, lscp_usage_t usage_type, int iSamplerChannel)
Definition: client.c:1537
lscp_unmap_midi_instrument
lscp_status_t lscp_unmap_midi_instrument(lscp_client_t *pClient, lscp_midi_instrument_t *pMidiInstr)
Definition: client.c:2847
lscp_client_get_result
const char * lscp_client_get_result(lscp_client_t *pClient)
Definition: client.c:710
lscp_event_to_text
const char * lscp_event_to_text(lscp_event_t event)
Definition: event.c:43
lscp_set_channel_solo
lscp_status_t lscp_set_channel_solo(lscp_client_t *pClient, int iSamplerChannel, int iSolo)
Definition: client.c:1878
lscp_client_unsubscribe
lscp_status_t lscp_client_unsubscribe(lscp_client_t *pClient, lscp_event_t events)
Definition: client.c:863
LSCP_USAGE_BYTES
@ LSCP_USAGE_BYTES
Definition: client.h:96
lscp_midi_map_mode_t
enum _lscp_midi_map_mode_t lscp_midi_map_mode_t
lscp_load_engine
lscp_status_t lscp_load_engine(lscp_client_t *pClient, const char *pszEngineName, int iSamplerChannel)
Definition: client.c:1009
lscp_client_subscribe
lscp_status_t lscp_client_subscribe(lscp_client_t *pClient, lscp_event_t events)
Definition: client.c:767
LSCP_OK
@ LSCP_OK
Definition: thread.h:71
lscp_client_t
struct _lscp_client_t lscp_client_t
Definition: client.h:162
lscp_event_from_text
lscp_event_t lscp_event_from_text(const char *pszText)
Definition: event.c:115
lscp_cond_signal
#define lscp_cond_signal(c)
Definition: thread.h:93
_lscp_midi_instrument_info_t::name
char * name
Definition: client.h:137
lscp_reset_channel
lscp_status_t lscp_reset_channel(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1901
lscp_client_connection_lost
bool lscp_client_connection_lost(lscp_client_t *pClient)
Definition: client.c:658
lscp_get_engine_info
lscp_engine_info_t * lscp_get_engine_info(lscp_client_t *pClient, const char *pszEngineName)
Definition: client.c:1208
lscp_set_channel_solo
lscp_status_t lscp_set_channel_solo(lscp_client_t *pClient, int iSamplerChannel, int iSolo)
Definition: client.c:1878
lscp_set_channel_audio_type
lscp_status_t lscp_set_channel_audio_type(lscp_client_t *pClient, int iSamplerChannel, const char *pszAudioType)
Definition: client.c:1611
LSCP_EVENT_STREAM_COUNT
@ LSCP_EVENT_STREAM_COUNT
Definition: event.h:57
lscp_client_version
const char * lscp_client_version(void)
Definition: client.c:281
lscp_client_destroy
lscp_status_t lscp_client_destroy(lscp_client_t *pClient)
Definition: client.c:541
lscp_load_instrument
lscp_status_t lscp_load_instrument(lscp_client_t *pClient, const char *pszFileName, int iInstrIndex, int iSamplerChannel)
Definition: client.c:960
LSCP_EVENT_NONE
@ LSCP_EVENT_NONE
Definition: event.h:54
lscp_list_midi_instruments
lscp_midi_instrument_t * lscp_list_midi_instruments(lscp_client_t *pClient, int iMidiMap)
Definition: client.c:2916
_lscp_server_info_t::version
char * version
Definition: client.h:47
_lscp_channel_info_t::instrument_file
char * instrument_file
Definition: client.h:69
_lscp_channel_info_t::midi_device
int midi_device
Definition: client.h:73
lscp_map_midi_instrument
lscp_status_t lscp_map_midi_instrument(lscp_client_t *pClient, lscp_midi_instrument_t *pMidiInstr, const char *pszEngineName, const char *pszFileName, int iInstrIndex, float fVolume, lscp_load_mode_t load_mode, const char *pszName)
Definition: client.c:2788
LSCP_BUFSIZ
#define LSCP_BUFSIZ
Definition: socket.h:56
lscp_fxsend_info_t
struct _lscp_fxsend_info_t lscp_fxsend_info_t
lscp_client_query
lscp_status_t lscp_client_query(lscp_client_t *pClient, const char *pszQuery)
Definition: client.c:682
LSCP_EVENT_MIDI_INPUT_DEVICE_COUNT
@ LSCP_EVENT_MIDI_INPUT_DEVICE_COUNT
Definition: event.h:63
lscp_get_channel_stream_count
int lscp_get_channel_stream_count(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1443
lscp_get_total_voice_count
int lscp_get_total_voice_count(lscp_client_t *pClient)
Definition: client.c:1995
_lscp_channel_info_t::instrument_name
char * instrument_name
Definition: client.h:71
lscp_set_channel_midi_map
lscp_status_t lscp_set_channel_midi_map(lscp_client_t *pClient, int iSamplerChannel, int iMidiMap)
Definition: client.c:1787
_lscp_engine_info_t::description
char * description
Definition: client.h:56
LSCP_MIDI_MAP_ALL
@ LSCP_MIDI_MAP_ALL
Definition: client.h:153
lscp_client_query
lscp_status_t lscp_client_query(lscp_client_t *pClient, const char *pszQuery)
Definition: client.c:682
lscp_get_midi_instrument_info
lscp_midi_instrument_info_t * lscp_get_midi_instrument_info(lscp_client_t *pClient, lscp_midi_instrument_t *pMidiInstr)
Definition: client.c:2962
lscp_get_volume
float lscp_get_volume(lscp_client_t *pClient)
Definition: client.c:2053
lscp_get_channel_stream_usage
int lscp_get_channel_stream_usage(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1476
lscp_create_fxsend
int lscp_create_fxsend(lscp_client_t *pClient, int iSamplerChannel, int iMidiController, const char *pszFxName)
Definition: client.c:2246
lscp_get_voices
int lscp_get_voices(lscp_client_t *pClient)
Definition: client.c:2119
_locale_t::numeric
char numeric[32+1]
Definition: client.c:57
lscp_get_fxsends
int lscp_get_fxsends(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:2313
lscp_reset_channel
lscp_status_t lscp_reset_channel(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1901
lscp_client_connection_lost
bool lscp_client_connection_lost(lscp_client_t *pClient)
Definition: client.c:658
_lscp_buffer_fill_t
Definition: client.h:85
lscp_get_engine_info
lscp_engine_info_t * lscp_get_engine_info(lscp_client_t *pClient, const char *pszEngineName)
Definition: client.c:1208
_lscp_midi_instrument_t
Definition: client.h:114
lscp_socket_perror
void lscp_socket_perror(const char *pszPrefix)
Definition: socket.c:114
lscp_set_voices
lscp_status_t lscp_set_voices(lscp_client_t *pClient, int iMaxVoices)
Definition: client.c:2157
socket.h
lscp_set_fxsend_name
lscp_status_t lscp_set_fxsend_name(lscp_client_t *pClient, int iSamplerChannel, int iFxSend, const char *pszFxName)
Definition: client.c:2467
_lscp_midi_instrument_info_t::engine_name
char * engine_name
Definition: client.h:138
lscp_set_streams
lscp_status_t lscp_set_streams(lscp_client_t *pClient, int iMaxStreams)
Definition: client.c:2221
lscp_clear_midi_instruments
lscp_status_t lscp_clear_midi_instruments(lscp_client_t *pClient, int iMidiMap)
Definition: client.c:3066
lscp_load_instrument
lscp_status_t lscp_load_instrument(lscp_client_t *pClient, const char *pszFileName, int iInstrIndex, int iSamplerChannel)
Definition: client.c:960
LSCP_MIDI_CHANNEL_ALL
#define LSCP_MIDI_CHANNEL_ALL
Definition: client.h:37
lscp_get_voices
int lscp_get_voices(lscp_client_t *pClient)
Definition: client.c:2119
lscp_set_fxsend_audio_channel
lscp_status_t lscp_set_fxsend_audio_channel(lscp_client_t *pClient, int iSamplerChannel, int iFxSend, int iAudioSrc, int iAudioDst)
Definition: client.c:2494
lscp_get_channel_voice_count
int lscp_get_channel_voice_count(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1410
lscp_remove_channel
lscp_status_t lscp_remove_channel(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1123
lscp_client_package
const char * lscp_client_package(void)
Definition: client.c:278
LSCP_EVENT_MIDI_INSTRUMENT_MAP_INFO
@ LSCP_EVENT_MIDI_INSTRUMENT_MAP_INFO
Definition: event.h:66
_lscp_midi_instrument_info_t::instrument_name
char * instrument_name
Definition: client.h:141
LSCP_EVENT_MIDI_INSTRUMENT_MAP_COUNT
@ LSCP_EVENT_MIDI_INSTRUMENT_MAP_COUNT
Definition: event.h:65
lscp_get_midi_instrument_map_name
const char * lscp_get_midi_instrument_map_name(lscp_client_t *pClient, int iMidiMap)
Definition: client.c:2696
lscp_client_get_errno
int lscp_client_get_errno(lscp_client_t *pClient)
Definition: client.c:727
lscp_set_volume
lscp_status_t lscp_set_volume(lscp_client_t *pClient, float fVolume)
Definition: client.c:2089
lscp_buffer_fill_t
struct _lscp_buffer_fill_t lscp_buffer_fill_t
lscp_set_channel_midi_device
lscp_status_t lscp_set_channel_midi_device(lscp_client_t *pClient, int iSamplerChannel, int iMidiDevice)
Definition: client.c:1708
SOCKET_ERROR
#define SOCKET_ERROR
Definition: socket.h:52
LSCP_EVENT_MIDI_INSTRUMENT_INFO
@ LSCP_EVENT_MIDI_INSTRUMENT_INFO
Definition: event.h:68
lscp_load_instrument_non_modal
lscp_status_t lscp_load_instrument_non_modal(lscp_client_t *pClient, const char *pszFileName, int iInstrIndex, int iSamplerChannel)
Definition: client.c:985
lscp_list_fxsends
int * lscp_list_fxsends(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:2348
lscp_get_channel_info
lscp_channel_info_t * lscp_get_channel_info(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1267
LSCP_EVENT_BUFFER_FILL
@ LSCP_EVENT_BUFFER_FILL
Definition: event.h:58
_lscp_fxsend_info_t
Definition: client.h:103
lscp_socket_t
int lscp_socket_t
Definition: socket.h:50
closesocket
#define closesocket(s)
Definition: socket.h:53
_lscp_fxsend_info_t::audio_routing
int * audio_routing
Definition: client.h:107
lscp_set_channel_midi_type
lscp_status_t lscp_set_channel_midi_type(lscp_client_t *pClient, int iSamplerChannel, const char *pszMidiDriver)
Definition: client.c:1684
_lscp_channel_info_t::mute
int mute
Definition: client.h:78
_lscp_load_mode_t
_lscp_load_mode_t
Definition: client.h:124
_lscp_fxsend_info_t::name
char * name
Definition: client.h:105
_lscp_channel_info_t::engine_name
char * engine_name
Definition: client.h:65
lscp_set_channel_audio_device
lscp_status_t lscp_set_channel_audio_device(lscp_client_t *pClient, int iSamplerChannel, int iAudioDevice)
Definition: client.c:1635
_lscp_buffer_fill_t::stream_usage
unsigned long stream_usage
Definition: client.h:88
lscp_set_fxsend_name
lscp_status_t lscp_set_fxsend_name(lscp_client_t *pClient, int iSamplerChannel, int iFxSend, const char *pszFxName)
Definition: client.c:2467
LSCP_LOAD_ON_DEMAND_HOLD
@ LSCP_LOAD_ON_DEMAND_HOLD
Definition: client.h:128
lscp_client_proc_t
lscp_status_t(* lscp_client_proc_t)(struct _lscp_client_t *pClient, lscp_event_t event, const char *pchData, int cchData, void *pvData)
Definition: client.h:166
LSCP_MIDI_MAP_NONE
@ LSCP_MIDI_MAP_NONE
Definition: client.h:151
LSCP_LOAD_PERSISTENT
@ LSCP_LOAD_PERSISTENT
Definition: client.h:129
_lscp_channel_info_t::solo
int solo
Definition: client.h:79
lscp_get_channel_voice_count
int lscp_get_channel_voice_count(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:1410
_lscp_server_info_t
Definition: client.h:44
lscp_socket_getopts
void lscp_socket_getopts(const char *pszPrefix, lscp_socket_t sock)
Definition: socket.c:153
lscp_edit_channel_instrument
lscp_status_t lscp_edit_channel_instrument(lscp_client_t *pClient, int iSamplerChannel)
Definition: client.c:3093
lscp_set_channel_audio_channel
lscp_status_t lscp_set_channel_audio_channel(lscp_client_t *pClient, int iSamplerChannel, int iAudioOut, int iAudioIn)
Definition: client.c:1660
lscp_set_channel_audio_device
lscp_status_t lscp_set_channel_audio_device(lscp_client_t *pClient, int iSamplerChannel, int iAudioDevice)
Definition: client.c:1635
lscp_list_midi_instrument_maps
int * lscp_list_midi_instrument_maps(lscp_client_t *pClient)
Definition: client.c:2662
lscp_socket_agent_init
void lscp_socket_agent_init(lscp_socket_agent_t *pAgent, lscp_socket_t sock, struct sockaddr_in *pAddr, int cAddr)
Definition: socket.c:198
_locale_t::ctype
char ctype[32+1]
Definition: client.c:58
lscp_get_midi_instruments
int lscp_get_midi_instruments(lscp_client_t *pClient, int iMidiMap)
Definition: client.c:2876
lscp_client_destroy
lscp_status_t lscp_client_destroy(lscp_client_t *pClient)
Definition: client.c:541
lscp_set_channel_midi_device
lscp_status_t lscp_set_channel_midi_device(lscp_client_t *pClient, int iSamplerChannel, int iMidiDevice)
Definition: client.c:1708
_lscp_server_info_t::protocol_version
char * protocol_version
Definition: client.h:48
lscp_set_midi_instrument_map_name
lscp_status_t lscp_set_midi_instrument_map_name(lscp_client_t *pClient, int iMidiMap, const char *pszMapName)
Definition: client.c:2749