/[svn]/liblscp/trunk/lscp/client.h
ViewVC logotype

Annotation of /liblscp/trunk/lscp/client.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 253 - (hide annotations) (download) (as text)
Mon Sep 27 14:40:08 2004 UTC (19 years, 6 months ago) by capela
File MIME type: text/x-c++hdr
File size: 7293 byte(s)
* Fixed lscp_set_channel_midi_channel() where MIDI
  channels should be given in the range 0-15, and
  omni mode with new LSCP_MIDI_CHANNEL_ALL symbol.

* Rearrangement on main command requester executive.

1 capela 107 // client.h
2     //
3     /****************************************************************************
4     liblscp - LinuxSampler Control Protocol API
5     Copyright (C) 2004, 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 Lesser General Public
18     License along with this library; if not, write to the Free Software
19     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20    
21     *****************************************************************************/
22    
23     #ifndef __LSCP_CLIENT_H
24     #define __LSCP_CLIENT_H
25    
26     #include "lscp/socket.h"
27 capela 146 #include "lscp/event.h"
28 capela 107
29     #if defined(__cplusplus)
30     extern "C" {
31     #endif
32    
33 capela 253 //-------------------------------------------------------------------------
34     // MIDI channel omni mode.
35 capela 107
36 capela 253 #define LSCP_MIDI_CHANNEL_ALL (-1)
37    
38    
39 capela 107 //-------------------------------------------------------------------------
40     // Client data structures.
41    
42     /** Engine info cache struct. */
43     typedef struct _lscp_engine_info_t
44     {
45     char * description;
46     char * version;
47    
48     } lscp_engine_info_t;
49    
50    
51     /** Channel info cache struct. */
52     typedef struct _lscp_channel_info_t
53     {
54     char * engine_name;
55     int audio_device;
56     int audio_channels;
57     char ** audio_routing;
58     char * instrument_file;
59     int instrument_nr;
60 capela 132 int instrument_status;
61 capela 107 int midi_device;
62     int midi_port;
63     int midi_channel;
64     float volume;
65    
66     } lscp_channel_info_t;
67    
68    
69     /** Buffer fill cache struct. */
70     typedef struct _lscp_buffer_fill_t
71     {
72     unsigned int stream_id;
73     unsigned long stream_usage;
74    
75     } lscp_buffer_fill_t;
76    
77    
78     /** Buffer fill stream usage types. */
79     typedef enum _lscp_usage_t
80     {
81     LSCP_USAGE_BYTES = 0,
82     LSCP_USAGE_PERCENTAGE
83    
84     } lscp_usage_t;
85    
86    
87     //-------------------------------------------------------------------------
88     // Client socket main structure.
89    
90     /** Client opaque descriptor struct. */
91     typedef struct _lscp_client_t lscp_client_t;
92    
93 capela 144 /** Client event callback procedure prototype. */
94 capela 107 typedef lscp_status_t (*lscp_client_proc_t)
95     (
96     struct _lscp_client_t *pClient,
97 capela 144 lscp_event_t event,
98 capela 146 const char *pchData,
99     int cchData,
100 capela 107 void *pvData
101     );
102    
103     //-------------------------------------------------------------------------
104     // Client versioning teller fuunction.
105    
106     const char * lscp_client_package (void);
107     const char * lscp_client_version (void);
108     const char * lscp_client_build (void);
109    
110     //-------------------------------------------------------------------------
111     // Client socket functions.
112    
113     lscp_client_t * lscp_client_create (const char *pszHost, int iPort, lscp_client_proc_t pfnCallback, void *pvData);
114     lscp_status_t lscp_client_join (lscp_client_t *pClient);
115     lscp_status_t lscp_client_destroy (lscp_client_t *pClient);
116    
117     lscp_status_t lscp_client_set_timeout (lscp_client_t *pClient, int iTimeout);
118     int lscp_client_get_timeout (lscp_client_t *pClient);
119    
120     //-------------------------------------------------------------------------
121     // Client common protocol functions.
122    
123     lscp_status_t lscp_client_query (lscp_client_t *pClient, const char *pszQuery);
124     const char * lscp_client_get_result (lscp_client_t *pClient );
125     int lscp_client_get_errno (lscp_client_t *pClient );
126    
127     //-------------------------------------------------------------------------
128     // Client registration protocol functions.
129    
130 capela 144 lscp_status_t lscp_client_subscribe (lscp_client_t *pClient, lscp_event_t events);
131     lscp_status_t lscp_client_unsubscribe (lscp_client_t *pClient, lscp_event_t events);
132 capela 107
133 capela 213 lscp_event_t lscp_client_get_events (lscp_client_t *pClient);
134 capela 144
135 capela 107 //-------------------------------------------------------------------------
136     // Client command protocol functions.
137    
138     lscp_status_t lscp_load_instrument (lscp_client_t *pClient, const char *pszFileName, int iInstrIndex, int iSamplerChannel);
139 capela 144 lscp_status_t lscp_load_instrument_non_modal (lscp_client_t *pClient, const char *pszFileName, int iInstrIndex, int iSamplerChannel);
140 capela 107 lscp_status_t lscp_load_engine (lscp_client_t *pClient, const char *pszEngineName, int iSamplerChannel);
141     int lscp_get_channels (lscp_client_t *pClient);
142 capela 125 int * lscp_list_channels (lscp_client_t *pClient);
143 capela 107 int lscp_add_channel (lscp_client_t *pClient);
144     lscp_status_t lscp_remove_channel (lscp_client_t *pClient, int iSamplerChannel);
145     const char ** lscp_get_available_engines (lscp_client_t *pClient);
146    
147     lscp_engine_info_t * lscp_get_engine_info (lscp_client_t *pClient, const char *pszEngineName);
148     lscp_channel_info_t * lscp_get_channel_info (lscp_client_t *pClient, int iSamplerChannel);
149    
150     int lscp_get_channel_voice_count (lscp_client_t *pClient, int iSamplerChannel);
151     int lscp_get_channel_stream_count (lscp_client_t *pClient, int iSamplerChannel);
152 capela 167 int lscp_get_channel_stream_usage (lscp_client_t *pClient, int iSamplerChannel);
153 capela 107
154     lscp_buffer_fill_t * lscp_get_channel_buffer_fill (lscp_client_t *pClient, lscp_usage_t iUsageType, int iSamplerChannel);
155    
156     lscp_status_t lscp_set_channel_audio_type (lscp_client_t *pClient, int iSamplerChannel, const char *pszAudioType);
157 capela 144 lscp_status_t lscp_set_channel_audio_device (lscp_client_t *pClient, int iSamplerChannel, int iAudioDevice);
158 capela 107 lscp_status_t lscp_set_channel_audio_channel (lscp_client_t *pClient, int iSamplerChannel, int iAudioOut, int iAudioIn);
159    
160     lscp_status_t lscp_set_channel_midi_type (lscp_client_t *pClient, int iSamplerChannel, const char *pszMidiType);
161 capela 144 lscp_status_t lscp_set_channel_midi_device (lscp_client_t *pClient, int iSamplerChannel, int iMidiDevice);
162 capela 107 lscp_status_t lscp_set_channel_midi_port (lscp_client_t *pClient, int iSamplerChannel, int iMidiPort);
163     lscp_status_t lscp_set_channel_midi_channel (lscp_client_t *pClient, int iSamplerChannel, int iMidiChannel);
164     lscp_status_t lscp_set_channel_volume (lscp_client_t *pClient, int iSamplerChannel, float fVolume);
165    
166     lscp_status_t lscp_reset_channel (lscp_client_t *pClient, int iSamplerChannel);
167    
168 capela 213 lscp_status_t lscp_reset_sampler (lscp_client_t *pClient);
169 capela 107
170     #if defined(__cplusplus)
171     }
172     #endif
173    
174     #endif // __LSCP_CLIENT_H
175    
176     // end of client.h

  ViewVC Help
Powered by ViewVC