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

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

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

revision 735 by capela, Tue Aug 16 09:48:42 2005 UTC revision 952 by capela, Tue Nov 28 22:46:32 2006 UTC
# Line 2  Line 2 
2  //  //
3  /****************************************************************************  /****************************************************************************
4     liblscp - LinuxSampler Control Protocol API     liblscp - LinuxSampler Control Protocol API
5     Copyright (C) 2004-2005, rncbc aka Rui Nuno Capela. All rights reserved.     Copyright (C) 2004-2006, 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 42  extern "C" { Line 42  extern "C" {
42  /** Server info cache struct. */  /** Server info cache struct. */
43  typedef struct _lscp_server_info_t  typedef struct _lscp_server_info_t
44  {  {
45      char *        description;          char *        description;
46      char *        version;          char *        version;
47    
48  } lscp_server_info_t;  } lscp_server_info_t;
49    
# Line 51  typedef struct _lscp_server_info_t Line 51  typedef struct _lscp_server_info_t
51  /** Engine info cache struct. */  /** Engine info cache struct. */
52  typedef struct _lscp_engine_info_t  typedef struct _lscp_engine_info_t
53  {  {
54      char *        description;          char *        description;
55      char *        version;          char *        version;
56    
57  } lscp_engine_info_t;  } lscp_engine_info_t;
58    
# Line 60  typedef struct _lscp_engine_info_t Line 60  typedef struct _lscp_engine_info_t
60  /** Channel info cache struct. */  /** Channel info cache struct. */
61  typedef struct _lscp_channel_info_t  typedef struct _lscp_channel_info_t
62  {  {
63      char *        engine_name;          char *        engine_name;
64      int           audio_device;          int           audio_device;
65      int           audio_channels;          int           audio_channels;
66      char **       audio_routing;          char **       audio_routing;
67      char *        instrument_file;          char *        instrument_file;
68      int           instrument_nr;          int           instrument_nr;
69      char *        instrument_name;          char *        instrument_name;
70      int           instrument_status;          int           instrument_status;
71      int           midi_device;          int           midi_device;
72      int           midi_port;          int           midi_port;
73      int           midi_channel;          int           midi_channel;
74      float         volume;          float         volume;
75      int           mute;          int           mute;
76      int           solo;          int           solo;
77    
78  } lscp_channel_info_t;  } lscp_channel_info_t;
79    
# Line 81  typedef struct _lscp_channel_info_t Line 81  typedef struct _lscp_channel_info_t
81  /** Buffer fill cache struct. */  /** Buffer fill cache struct. */
82  typedef struct _lscp_buffer_fill_t  typedef struct _lscp_buffer_fill_t
83  {  {
84      unsigned int  stream_id;          unsigned int  stream_id;
85      unsigned long stream_usage;          unsigned long stream_usage;
86    
87  } lscp_buffer_fill_t;  } lscp_buffer_fill_t;
88    
# Line 90  typedef struct _lscp_buffer_fill_t Line 90  typedef struct _lscp_buffer_fill_t
90  /** Buffer fill stream usage types. */  /** Buffer fill stream usage types. */
91  typedef enum _lscp_usage_t  typedef enum _lscp_usage_t
92  {  {
93      LSCP_USAGE_BYTES = 0,          LSCP_USAGE_BYTES = 0,
94      LSCP_USAGE_PERCENTAGE          LSCP_USAGE_PERCENTAGE
95    
96  } lscp_usage_t;  } lscp_usage_t;
97    
98    
99    /** MIDI instrument parameter struct. */
100    typedef struct _lscp_midi_instrument_t
101    {
102            int bank_msb;
103            int bank_lsb;
104            int program;
105    
106    } lscp_midi_instrument_t;
107    
108    
109    /** MIDI instrument load mode. */
110    typedef enum _lscp_load_mode_t
111    {
112            LSCP_LOAD_DEFAULT = 0,
113            LSCP_LOAD_ON_DEMAND,
114            LSCP_LOAD_ON_DEMAND_HOLD,
115            LSCP_LOAD_PERSISTENT
116    
117    } lscp_load_mode_t;
118    
119    
120    /** MIDI instrument info cache struct. */
121    typedef struct _lscp_midi_instrument_info_t
122    {
123            char *           name;
124            char *           engine_name;
125            char *           instrument_file;
126            int              instrument_nr;
127            char *           instrument_name;
128            lscp_load_mode_t load_mode;
129            float            volume;
130    
131    } lscp_midi_instrument_info_t;
132    
133    
134  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
135  // Client socket main structure.  // Client socket main structure.
136    
# Line 105  typedef struct _lscp_client_t lscp_clien Line 140  typedef struct _lscp_client_t lscp_clien
140  /** Client event callback procedure prototype. */  /** Client event callback procedure prototype. */
141  typedef lscp_status_t (*lscp_client_proc_t)  typedef lscp_status_t (*lscp_client_proc_t)
142  (  (
143      struct _lscp_client_t *pClient,          struct _lscp_client_t *pClient,
144      lscp_event_t event,          lscp_event_t event,
145      const char *pchData,          const char *pchData,
146      int cchData,          int cchData,
147      void *pvData          void *pvData
148  );  );
149    
150  //-------------------------------------------------------------------------  //-------------------------------------------------------------------------
# Line 186  lscp_status_t           lscp_reset_sampl Line 221  lscp_status_t           lscp_reset_sampl
221    
222  lscp_server_info_t *    lscp_get_server_info            (lscp_client_t *pClient);  lscp_server_info_t *    lscp_get_server_info            (lscp_client_t *pClient);
223    
224    int                     lscp_get_total_voice_count      (lscp_client_t *pClient);
225    int                     lscp_get_total_voice_count_max  (lscp_client_t *pClient);
226    
227    //-------------------------------------------------------------------------
228    // MIDI instrument mapping control functions.
229    
230    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);
231    lscp_status_t           lscp_unmap_midi_instrument      (lscp_client_t *pClient, lscp_midi_instrument_t *pMidiInstr);
232    
233    int                     lscp_get_midi_instruments       (lscp_client_t *pClient);
234    lscp_midi_instrument_t *lscp_list_midi_instruments      (lscp_client_t *pClient);
235    
236    lscp_midi_instrument_info_t *lscp_get_midi_instrument_info(lscp_client_t *pClient, lscp_midi_instrument_t *pMidiInstr);
237    
238    lscp_status_t           lscp_clear_midi_instruments     (lscp_client_t *pClient);
239    
240    
241  #if defined(__cplusplus)  #if defined(__cplusplus)
242  }  }
243  #endif  #endif

Legend:
Removed from v.735  
changed lines
  Added in v.952

  ViewVC Help
Powered by ViewVC