2
* communication.h - header file defining stuff concerning communication between
3
* LVSL-server and -client
5
* Copyright (c) 2005-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
7
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public
11
* License as published by the Free Software Foundation; either
12
* version 2 of the License, or (at your option) any later version.
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* General Public License for more details.
19
* You should have received a copy of the GNU General Public
20
* License along with this program (see COPYING); if not, write to the
21
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22
* Boston, MA 02111-1307, USA.
27
#ifndef _COMMUNICATION_H
28
#define _COMMUNICATION_H
42
inline T readValue( int _fd = 0 )
45
read( _fd, &i, sizeof( i ) );
53
inline void writeValue( const T & _i, int _fd = 1 )
55
write( _fd, &_i, sizeof( _i ) );
61
static inline std::string readString( int _fd = 0 )
63
Sint16 len = readValue<Sint16>( _fd );
64
char * sc = new char[len];
74
static inline void writeString( const char * _str, int _fd = 1 )
76
int len = strlen( _str ) + 1;
77
writeValue<Sint16>( len, _fd );
78
write( _fd, _str, len );
84
struct vstParameterDumpItem
94
// summarized version of VstParameterProperties-struct - useful because client
95
// doesn't have to know about the latter one
96
struct vstParamProperties
100
char categoryLabel[24];
110
LVSL_LANG_ENGLISH = 1,
120
enum vstRemoteCommands
127
VST_ENQUEUE_MIDI_EVENT,
132
VST_GET_PARAMETER_COUNT = 20,
133
VST_GET_PARAMETER_DUMP,
134
VST_SET_PARAMETER_DUMP,
135
VST_GET_PARAMETER_PROPERTIES,
138
VST_INITIALIZATION_DONE = 100,
139
VST_FAILED_LOADING_PLUGIN,
141
VST_SHM_KEY_AND_SIZE,
145
VST_PLUGIN_EDITOR_GEOMETRY,
149
VST_PLUGIN_VENDOR_STRING,
150
VST_PLUGIN_PRODUCT_STRING,
153
VST_PARAMETER_PROPERTIES,
154
VST_GET_SAMPLE_RATE = 120,