/[svn]/liblscp/trunk/src/common.h
ViewVC logotype

Diff of /liblscp/trunk/src/common.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 171 by capela, Mon Jul 5 16:26:44 2004 UTC revision 3842 by capela, Thu Dec 17 08:36:44 2020 UTC
# Line 2  Line 2 
2  //  //
3  /****************************************************************************  /****************************************************************************
4     liblscp - LinuxSampler Control Protocol API     liblscp - LinuxSampler Control Protocol API
5     Copyright (C) 2004, rncbc aka Rui Nuno Capela. All rights reserved.     Copyright (C) 2004-2020, rncbc aka Rui Nuno Capela. All rights reserved.
6    
7     This library is free software; you can redistribute it and/or     This library is free software; you can redistribute it and/or
8     modify it under the terms of the GNU Lesser General Public     modify it under the terms of the GNU Lesser General Public
# Line 14  Line 14 
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15     Lesser General Public License for more details.     Lesser General Public License for more details.
16    
17     You should have received a copy of the GNU Lesser General Public     You should have received a copy of the GNU General Public License along
18     License along with this library; if not, write to the Free Software     with this program; if not, write to the Free Software Foundation, Inc.,
19     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20    
21  *****************************************************************************/  *****************************************************************************/
22    
# Line 38  Line 38 
38    
39  struct _lscp_client_t  struct _lscp_client_t
40  {  {
41      // Client socket stuff.          // Client socket stuff.
42      lscp_client_proc_t  pfnCallback;          lscp_client_proc_t  pfnCallback;
43      void *              pvData;          void *              pvData;
44      lscp_socket_agent_t cmd;          lscp_socket_agent_t cmd;
45      lscp_socket_agent_t evt;          lscp_socket_agent_t evt;
46      // Subscribed events.          // Subscribed events.
47      lscp_event_t        events;          lscp_event_t        events;
48      // Client struct persistent caches.          // Client struct persistent caches.
49      char **             audio_drivers;          char **             audio_drivers;
50      char **             midi_drivers;          char **             midi_drivers;
51      int  *              audio_devices;          int  *              audio_devices;
52      int  *              midi_devices;          int  *              midi_devices;
53      char **             engines;          char **             engines;
54      int  *              channels;          int  *              channels;
55      // Client struct volatile caches.          int  *              fxsends;
56      lscp_driver_info_t  audio_driver_info;          lscp_midi_instrument_t *midi_instruments;
57      lscp_driver_info_t  midi_driver_info;          int  *              midi_maps;
58      lscp_device_info_t  audio_device_info;          char *              midi_map_name;
59      lscp_device_info_t  midi_device_info;          // Client struct volatile caches.
60      lscp_param_info_t   audio_param_info;          lscp_driver_info_t  audio_driver_info;
61      lscp_param_info_t   midi_param_info;          lscp_driver_info_t  midi_driver_info;
62      lscp_device_port_info_t audio_channel_info;          lscp_device_info_t  audio_device_info;
63      lscp_device_port_info_t midi_port_info;          lscp_device_info_t  midi_device_info;
64      lscp_param_info_t   audio_channel_param_info;          lscp_param_info_t   audio_param_info;
65      lscp_param_info_t   midi_port_param_info;          lscp_param_info_t   midi_param_info;
66      lscp_engine_info_t  engine_info;          lscp_device_port_info_t audio_channel_info;
67      lscp_channel_info_t channel_info;          lscp_device_port_info_t midi_port_info;
68      // Result and error status.          lscp_param_info_t   audio_channel_param_info;
69      char *              pszResult;          lscp_param_info_t   midi_port_param_info;
70      int                 iErrno;          lscp_server_info_t  server_info;
71      // Stream buffers status.          lscp_engine_info_t  engine_info;
72      lscp_buffer_fill_t *buffer_fill;          lscp_channel_info_t channel_info;
73      int                 iStreamCount;          lscp_fxsend_info_t  fxsend_info;
74      // Transaction call timeout (msecs).          lscp_midi_instrument_info_t midi_instrument_info;
75      int                 iTimeout;          // Result and error status.
76      lscp_mutex_t        mutex;          char *              pszResult;
77            int                 iErrno;
78            // Stream buffers status.
79            lscp_buffer_fill_t *buffer_fill;
80            int                 iStreamCount;
81            // Transaction call timeout (msecs).
82            int                 iTimeout;
83            lscp_mutex_t        mutex;
84            lscp_cond_t         cond;
85            // Flag last transaction timedout.
86            int                 iTimeoutCount;
87  };  };
88    
89    
90  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
91  // Local client request executive.  // Local client request executive.
92    
93  lscp_status_t   lscp_client_call            (lscp_client_t *pClient, const char *pszQuery);  lscp_status_t   lscp_client_recv            (lscp_client_t *pClient, char *pchBuffer, int *pcchBuffer, int iTimeout);
94    lscp_status_t   lscp_client_call            (lscp_client_t *pClient, const char *pszQuery, int iResult);
95  void            lscp_client_set_result      (lscp_client_t *pClient, char *pszResult, int iErrno);  void            lscp_client_set_result      (lscp_client_t *pClient, char *pszResult, int iErrno);
96    
97  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
98  // General utility function prototypes.  // General utility function prototypes.
99    
100  char *          lscp_strtok                 (char *pchBuffer, const char *pszSeps, char **ppch);  char *          lscp_strtok            (char *pchBuffer, const char *pszSeps, char **ppch);
101  char *          lscp_ltrim                  (char *psz);  char *          lscp_ltrim             (char *psz);
102  char *          lscp_unquote                (char **ppsz, int dup);  char *          lscp_unquote           (char **ppsz, int dup);
103    void            lscp_unquote_dup       (char **ppszDst, char **ppszSrc);
104    
105  char **         lscp_szsplit_create         (const char *pszCsv, const char *pszSeps);  char **         lscp_szsplit_create    (const char *pszCsv, const char *pszSeps);
106  void            lscp_szsplit_destroy        (char **ppszSplit);  void            lscp_szsplit_destroy   (char **ppszSplit);
107  #ifdef LSCP_SZSPLIT_COUNT  #ifdef LSCP_SZSPLIT_COUNT
108  int             lscp_szsplit_count          (char **ppszSplit);  int             lscp_szsplit_count     (char **ppszSplit);
109  int             lscp_szsplit_size           (char **ppszSplit);  int             lscp_szsplit_size      (char **ppszSplit);
110  #endif  #endif
111    
112  int *           lscp_isplit_create          (const char *pszCsv, const char *pszSeps);  int *           lscp_isplit_create     (const char *pszCsv, const char *pszSeps);
113  void            lscp_isplit_destroy         (int *piSplit);  void            lscp_isplit_destroy    (int *piSplit);
114  #ifdef LSCP_ISPLIT_COUNT  #ifdef LSCP_ISPLIT_COUNT
115  int             lscp_isplit_count           (int *piSplit);  int             lscp_isplit_count      (int *piSplit);
116  int             lscp_isplit_size            (int *piSplit);  int             lscp_isplit_size       (int *piSplit);
117  #endif  #endif
118    
119  lscp_param_t *  lscp_psplit_create          (const char *pszCsv, const char *pszSep1, const char *pszSep2);  lscp_param_t *  lscp_psplit_create     (const char *pszCsv, const char *pszSep1, const char *pszSep2);
120  void            lscp_psplit_destroy         (lscp_param_t *ppSplit);  void            lscp_psplit_destroy    (lscp_param_t *ppSplit);
121  #ifdef LSCP_PSPLIT_COUNT  #ifdef LSCP_PSPLIT_COUNT
122  int             lscp_psplit_count           (lscp_param_t *ppSplit);  int             lscp_psplit_count      (lscp_param_t *ppSplit);
123  int             lscp_psplit_size            (lscp_param_t *ppSplit);  int             lscp_psplit_size       (lscp_param_t *ppSplit);
124  #endif  #endif
125    
126  void            lscp_plist_alloc       (lscp_param_t **ppList);  void            lscp_plist_alloc       (lscp_param_t **ppList);
# Line 119  int             lscp_plist_count       ( Line 131  int             lscp_plist_count       (
131  int             lscp_plist_size        (lscp_param_t **ppList);  int             lscp_plist_size        (lscp_param_t **ppList);
132  #endif  #endif
133    
134    lscp_midi_instrument_t *lscp_midi_instruments_create (const char *pszCsv);
135    void            lscp_midi_instruments_destroy (lscp_midi_instrument_t *pInstrs);
136    #ifdef LSCP_MIDI_INSTRUMENTS_COUNT
137    int             lscp_midi_instruments_count   (lscp_midi_instrument_t *pInstrs);
138    int             lscp_midi_instruments_size    (lscp_midi_instrument_t *pInstrs);
139    #endif
140    
141    
142    //-------------------------------------------------------------------------
143    // Server struct helper functions.
144    
145    void            lscp_server_info_init       (lscp_server_info_t *pServerInfo);
146    void            lscp_server_info_free       (lscp_server_info_t *pServerInfo);
147    void            lscp_server_info_reset      (lscp_server_info_t *pServerInfo);
148    
149  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
150  // Engine struct helper functions.  // Engine struct helper functions.
151    
152  void            lscp_engine_info_init       (lscp_engine_info_t *pEngineInfo);  void            lscp_engine_info_init       (lscp_engine_info_t *pEngineInfo);
153    void            lscp_engine_info_free       (lscp_engine_info_t *pEngineInfo);
154  void            lscp_engine_info_reset      (lscp_engine_info_t *pEngineInfo);  void            lscp_engine_info_reset      (lscp_engine_info_t *pEngineInfo);
155    
156  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
157  // Channel struct helper functions.  // Channel struct helper functions.
158    
159  void            lscp_channel_info_init      (lscp_channel_info_t *pChannelInfo);  void            lscp_channel_info_init      (lscp_channel_info_t *pChannelInfo);
160    void            lscp_channel_info_free      (lscp_channel_info_t *pChannelInfo);
161  void            lscp_channel_info_reset     (lscp_channel_info_t *pChannelInfo);  void            lscp_channel_info_reset     (lscp_channel_info_t *pChannelInfo);
162    
163  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
164  // Driver struct helper functions.  // Driver struct helper functions.
165    
166  void            lscp_driver_info_init       (lscp_driver_info_t *pDriverInfo);  void            lscp_driver_info_init       (lscp_driver_info_t *pDriverInfo);
167    void            lscp_driver_info_free       (lscp_driver_info_t *pDriverInfo);
168  void            lscp_driver_info_reset      (lscp_driver_info_t *pDriverInfo);  void            lscp_driver_info_reset      (lscp_driver_info_t *pDriverInfo);
169    
170  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
171  // Device struct helper functions.  // Device struct helper functions.
172    
173  void            lscp_device_info_init       (lscp_device_info_t *pDeviceInfo);  void            lscp_device_info_init       (lscp_device_info_t *pDeviceInfo);
174    void            lscp_device_info_free       (lscp_device_info_t *pDeviceInfo);
175  void            lscp_device_info_reset      (lscp_device_info_t *pDeviceInfo);  void            lscp_device_info_reset      (lscp_device_info_t *pDeviceInfo);
176    
177  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
178  // Device channel/port struct helper functions.  // Device channel/port struct helper functions.
179    
180  void            lscp_device_port_info_init  (lscp_device_port_info_t *pDevicePortInfo);  void            lscp_device_port_info_init  (lscp_device_port_info_t *pDevicePortInfo);
181    void            lscp_device_port_info_free  (lscp_device_port_info_t *pDevicePortInfo);
182  void            lscp_device_port_info_reset (lscp_device_port_info_t *pDevicePortInfo);  void            lscp_device_port_info_reset (lscp_device_port_info_t *pDevicePortInfo);
183    
184  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
185  // Parameter struct helper functions.  // Parameter struct helper functions.
186    
187  void            lscp_param_info_init        (lscp_param_info_t *pParamInfo);  void            lscp_param_info_init        (lscp_param_info_t *pParamInfo);
188    void            lscp_param_info_free        (lscp_param_info_t *pParamInfo);
189  void            lscp_param_info_reset       (lscp_param_info_t *pParamInfo);  void            lscp_param_info_reset       (lscp_param_info_t *pParamInfo);
190    
191  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
# Line 160  void            lscp_param_info_reset Line 193  void            lscp_param_info_reset
193    
194  int             lscp_param_concat           (char *pszBuffer, int cchMaxBuffer, lscp_param_t *pParams);  int             lscp_param_concat           (char *pszBuffer, int cchMaxBuffer, lscp_param_t *pParams);
195    
196    //-------------------------------------------------------------------------
197    // Effect struct helper functions.
198    
199    void            lscp_fxsend_info_init       (lscp_fxsend_info_t *pFxSendInfo);
200    void            lscp_fxsend_info_free       (lscp_fxsend_info_t *pFxSendInfo);
201    void            lscp_fxsend_info_reset      (lscp_fxsend_info_t *pFxSendInfo);
202    
203    //-------------------------------------------------------------------------
204    // MIDI instrument info struct helper functions.
205    
206    void            lscp_midi_instrument_info_init  (lscp_midi_instrument_info_t *pInstrInfo);
207    void            lscp_midi_instrument_info_free  (lscp_midi_instrument_info_t *pInstrInfo);
208    void            lscp_midi_instrument_info_reset (lscp_midi_instrument_info_t *pInstrInfo);
209    
210    
211  #endif // __LSCP_COMMON_H  #endif // __LSCP_COMMON_H
212    

Legend:
Removed from v.171  
changed lines
  Added in v.3842

  ViewVC Help
Powered by ViewVC