liblscp 0.9.12
device.h
Go to the documentation of this file.
1// device.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_DEVICE_H
24#define __LSCP_DEVICE_H
25
26#include "lscp/client.h"
27
28#if defined(__cplusplus)
29extern "C" {
30#endif
31
32
33//-------------------------------------------------------------------------
34// Device driver information structures.
35
46
47
49typedef struct _lscp_param_t
50{
51 char * key;
52 char * value;
53
55
56
72
73
75typedef struct _lscp_driver_info_t
76{
78 char * version;
79 char ** parameters;
80
82
83
91
92
100
101
102//-------------------------------------------------------------------------
103// Audio driver control functions.
104
106const char ** lscp_list_available_audio_drivers (lscp_client_t *pClient);
107
108lscp_driver_info_t * lscp_get_audio_driver_info (lscp_client_t *pClient, const char *pszAudioDriver);
109lscp_param_info_t * lscp_get_audio_driver_param_info(lscp_client_t *pClient, const char *pszAudioDriver, const char *pszParam, lscp_param_t *pDepList);
110
111//-------------------------------------------------------------------------
112// Audio device control functions.
113
114int lscp_create_audio_device (lscp_client_t *pClient, const char *pszAudioDriver, lscp_param_t *pParams);
115lscp_status_t lscp_destroy_audio_device (lscp_client_t *pClient, int iAudioDevice);
116
119lscp_device_info_t * lscp_get_audio_device_info (lscp_client_t *pClient, int iAudioDevice);
120lscp_status_t lscp_set_audio_device_param (lscp_client_t *pClient, int iAudioDevice, lscp_param_t *pParam);
121
122lscp_device_port_info_t *lscp_get_audio_channel_info (lscp_client_t *pClient, int iAudioDevice, int iAudioChannel);
123
124lscp_param_info_t * lscp_get_audio_channel_param_info (lscp_client_t *pClient, int iAudioDevice, int iAudioChannel, const char *pszParam);
125lscp_status_t lscp_set_audio_channel_param (lscp_client_t *pClient, int iAudioDevice, int iAudioChannel, lscp_param_t *pParam);
126
127
128//-------------------------------------------------------------------------
129// MIDI driver control functions.
130
132const char ** lscp_list_available_midi_drivers(lscp_client_t *pClient);
133
134lscp_driver_info_t * lscp_get_midi_driver_info (lscp_client_t *pClient, const char *pszMidiDriver);
135lscp_param_info_t * lscp_get_midi_driver_param_info (lscp_client_t *pClient, const char *pszMidiDriver, const char *pszParam, lscp_param_t *pDepList);
136
137//-------------------------------------------------------------------------
138// MIDI device control functions.
139
140int lscp_create_midi_device (lscp_client_t *pClient, const char *pszMidiDriver, lscp_param_t *pParams);
141lscp_status_t lscp_destroy_midi_device (lscp_client_t *pClient, int iMidiDevice);
142
146lscp_status_t lscp_set_midi_device_param (lscp_client_t *pClient, int iMidiDevice, lscp_param_t *pParam);
147
148lscp_device_port_info_t *lscp_get_midi_port_info (lscp_client_t *pClient, int iMidiDevice, int iMidiPort);
149
150lscp_param_info_t * lscp_get_midi_port_param_info (lscp_client_t *pClient, int iMidiDevice, int iMidiPort, const char *pszParam);
151lscp_status_t lscp_set_midi_port_param (lscp_client_t *pClient, int iMidiDevice, int iMidiPort, lscp_param_t *pParam);
152
153//-------------------------------------------------------------------------
154// Generic parameter list functions.
155
156const char * lscp_get_param_value (lscp_param_t *pParams, const char *pszParam);
157
158
159#if defined(__cplusplus)
160}
161#endif
162
163#endif // __LSCP_DEVICE_H
164
165// end of device.h
struct _lscp_client_t lscp_client_t
Definition client.h:162
const char ** lscp_list_available_midi_drivers(lscp_client_t *pClient)
Definition device.c:685
lscp_device_port_info_t * lscp_get_audio_channel_info(lscp_client_t *pClient, int iAudioDevice, int iAudioChannel)
Definition device.c:569
int * lscp_list_audio_devices(lscp_client_t *pClient)
Definition device.c:483
struct _lscp_param_t lscp_param_t
lscp_status_t lscp_set_audio_channel_param(lscp_client_t *pClient, int iAudioDevice, int iAudioChannel, lscp_param_t *pParam)
Definition device.c:626
lscp_param_info_t * lscp_get_audio_channel_param_info(lscp_client_t *pClient, int iAudioDevice, int iAudioChannel, const char *pszParam)
Definition device.c:597
struct _lscp_device_port_info_t lscp_device_port_info_t
struct _lscp_device_info_t lscp_device_info_t
lscp_status_t lscp_set_audio_device_param(lscp_client_t *pClient, int iAudioDevice, lscp_param_t *pParam)
Definition device.c:542
lscp_device_info_t * lscp_get_midi_device_info(lscp_client_t *pClient, int iMidiDevice)
Definition device.c:898
enum _lscp_type_t lscp_type_t
int lscp_get_available_audio_drivers(lscp_client_t *pClient)
Definition device.c:278
int lscp_create_audio_device(lscp_client_t *pClient, const char *pszAudioDriver, lscp_param_t *pParams)
Definition device.c:396
lscp_status_t lscp_set_midi_port_param(lscp_client_t *pClient, int iMidiDevice, int iMidiPort, lscp_param_t *pParam)
Definition device.c:1006
struct _lscp_param_info_t lscp_param_info_t
lscp_device_port_info_t * lscp_get_midi_port_info(lscp_client_t *pClient, int iMidiDevice, int iMidiPort)
Definition device.c:949
lscp_param_info_t * lscp_get_midi_port_param_info(lscp_client_t *pClient, int iMidiDevice, int iMidiPort, const char *pszParam)
Definition device.c:977
int lscp_get_midi_devices(lscp_client_t *pClient)
Definition device.c:834
struct _lscp_driver_info_t lscp_driver_info_t
int lscp_get_available_midi_drivers(lscp_client_t *pClient)
Definition device.c:656
const char * lscp_get_param_value(lscp_param_t *pParams, const char *pszParam)
Definition device.c:1027
const char ** lscp_list_available_audio_drivers(lscp_client_t *pClient)
Definition device.c:307
int lscp_create_midi_device(lscp_client_t *pClient, const char *pszMidiDriver, lscp_param_t *pParams)
Definition device.c:776
lscp_status_t lscp_set_midi_device_param(lscp_client_t *pClient, int iMidiDevice, lscp_param_t *pParam)
Definition device.c:922
int lscp_get_audio_devices(lscp_client_t *pClient)
Definition device.c:454
lscp_driver_info_t * lscp_get_midi_driver_info(lscp_client_t *pClient, const char *pszMidiDriver)
Definition device.c:720
int * lscp_list_midi_devices(lscp_client_t *pClient)
Definition device.c:863
lscp_param_info_t * lscp_get_audio_driver_param_info(lscp_client_t *pClient, const char *pszAudioDriver, const char *pszParam, lscp_param_t *pDepList)
Definition device.c:366
_lscp_type_t
Definition device.h:38
@ LSCP_TYPE_BOOL
Definition device.h:40
@ LSCP_TYPE_FLOAT
Definition device.h:42
@ LSCP_TYPE_NONE
Definition device.h:39
@ LSCP_TYPE_INT
Definition device.h:41
@ LSCP_TYPE_STRING
Definition device.h:43
lscp_status_t lscp_destroy_audio_device(lscp_client_t *pClient, int iAudioDevice)
Definition device.c:430
lscp_param_info_t * lscp_get_midi_driver_param_info(lscp_client_t *pClient, const char *pszMidiDriver, const char *pszParam, lscp_param_t *pDepList)
Definition device.c:746
lscp_driver_info_t * lscp_get_audio_driver_info(lscp_client_t *pClient, const char *pszAudioDriver)
Definition device.c:342
lscp_device_info_t * lscp_get_audio_device_info(lscp_client_t *pClient, int iAudioDevice)
Definition device.c:518
lscp_status_t lscp_destroy_midi_device(lscp_client_t *pClient, int iMidiDevice)
Definition device.c:810
Definition device.h:86
char * driver
Definition device.h:87
lscp_param_t * params
Definition device.h:88
Definition device.h:95
lscp_param_t * params
Definition device.h:97
char * name
Definition device.h:96
Definition device.h:76
char * version
Definition device.h:78
char ** parameters
Definition device.h:79
char * description
Definition device.h:77
Definition device.h:59
lscp_type_t type
Definition device.h:60
char * description
Definition device.h:61
int mandatory
Definition device.h:62
char * range_max
Definition device.h:68
char * defaultv
Definition device.h:66
char * range_min
Definition device.h:67
int fix
Definition device.h:63
char ** possibilities
Definition device.h:69
char ** depends
Definition device.h:65
int multiplicity
Definition device.h:64
Definition device.h:50
char * value
Definition device.h:52
char * key
Definition device.h:51
enum _lscp_status_t lscp_status_t