shared_ptr<Region> fixes
[ardour.git] / gtk2_ardour / ardour_image_compositor_socket.h
1 /*
2     Copyright (C) 2003 Paul Davis 
3
4     This program is free software; you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation; either version 2 of the License, or
7     (at your option) any later version.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU General Public License
15     along with this program; if not, write to the Free Software
16     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17
18     $Id$
19 */
20
21
22 #ifndef __ardour_image_comp_h__
23 #define __ardour_image_comp_h__
24
25 #include <string> 
26
27 namespace ardourvis
28 {
29         /** Simple version number */
30         const int32_t MSG_VERSION = 1 ;
31         
32         /** the default port we use */
33         const int32_t DEFAULT_PORT = 30000 ;
34         
35         /** the maximum buffer size we will use to send receive a message (image data handled differently) */
36         const int32_t MAX_MSG_SIZE = 256 ;
37         
38         /** the number of characters used for a value describing the characters within a textual data element */
39         const int32_t TEXT_SIZE_CHARS = 3 ;
40         
41         /** the number of characters we use for time values within a message */
42         const int32_t TIME_VALUE_CHARS = 10 ;
43         
44         /** the number of charachters we use for other value data, ie image width/height values */
45         const int32_t IMAGE_SIZE_CHARS = 3 ;
46         
47         /** the number of characters used to for the size of the image data message */
48         const int32_t IMAGE_DATA_MESSAGE_SIZE_CHARS = 32 ;
49
50         // ------------------------------------------------------------------------- //
51         // Main Actions
52         // we join the action chars with items to create the message
53         // with the exception of the return values, all messages begin with one
54         // of these message parts
55         
56         /** Insert an Item */
57         const std::string INSERT_ITEM = "IN" ;
58         
59         /** Remove an Item */
60         const std::string REMOVE_ITEM = "RM" ;
61         
62         /** Rename a named item */
63         const std::string RENAME_ITEM = "MV" ;
64         
65         /** Request some aditional data */
66         const std::string REQUEST_DATA = "RQ" ;
67         
68         /** Return of a data request */
69         const std::string RETURN_DATA = "RD" ;
70         
71         /** Update a item */
72         const std::string ITEM_UPDATE = "IU" ;
73         
74         /** Select an Item */
75         const std::string ITEM_SELECTED = "IS" ;
76         
77         /** Sesion Action */
78         const std::string SESSION_ACTION = "SA" ;
79         
80         /** Sesion Action */
81         const std::string SHUTDOWN = "SD" ;
82         
83
84         // ------------------------------------------------------------------------- //
85         // Return values
86         const std::string RETURN_TRUE  = "RT1" ;
87         const std::string RETURN_FALSE = "RT0" ;
88         
89         
90         
91         // ------------------------------------------------------------------------- //
92         // Updateable attributes
93         
94         /** Update the position of a time axis item */
95         const std::string POSITION_CHANGE = "PC" ;
96         
97         /** Update the duration of a time axis item */
98         const std::string DURATION_CHANGE = "DC" ;
99         
100         /** Enable the position lock constraint no a time axis item */
101         const std::string POSITION_LOCK_CHANGE = "PL" ;
102         
103         /** Enable the duration lock constraint no a time axis item */
104         const std::string DURATION_LOCK_CHANGE = "PL" ;
105         
106         /** Update the Maximum duration of a time axis item (_Upper _Duration) */
107         const std::string MAX_DURATION_CHANGE = "UD" ;
108         
109         /** Enable the Maximum duration constraint of a time axis item (_Enable _Upper (Duration)) */
110         const std::string MAX_DURATION_ENABLE_CHANGE = "EU" ;
111         
112         /** Update the Minimum duration of a time axis item (_Lowerr _Duration) */
113         const std::string MIN_DURATION_CHANGE = "LD" ;
114         
115         /** Enable the Minimum duration constraint of a time axis item (_Enable _Lower (Duration)) */
116         const std::string MIN_DURATION_ENABLE_CHANGE = "EL" ;
117         
118         /** Refresh the image data of an imageframe item (original image has been altered?) */
119         const std::string IMAGE_REFRESH = "IR" ;
120         
121         /** the session sample rate has changed */
122         const std::string SAMPLE_RATE_CHANGE = "RC" ;
123         
124         
125         
126         // ------------------------------------------------------------------------- //
127         // Requestable data items
128         
129         /** RGB data of the iamge */
130         // this is probably a bad choice of string !
131         const std::string IMAGE_RGB_DATA = "ID" ;
132         
133         /** the (path) name of the Ardour session */
134         const std::string SESSION_NAME = "SN" ;
135         
136         /** the current sample rate */
137         const std::string SAMPLE_RATE = "SR" ;
138         
139         /** the (path) name of the image compositor session */
140         const std::string COMPOSITOR_SESSION = "CS" ;
141         
142         
143         // ------------------------------------------------------------------------- //
144         // Session Actions - follwed by session path
145         
146         /** Close a session */
147         const std::string CLOSE_SESSION = "CS" ;
148         
149         /** Open a session */
150         const std::string OPEN_SESSION = "OS" ;
151         
152         
153         
154         // ------------------------------------------------------------------------- //
155         // Items
156         
157         const std::string IMAGEFRAME_TIME_AXIS = "IT" ;
158         const std::string MARKER_TIME_AXIS = "MT" ;
159         const std::string IMAGEFRAME_ITEM = "II" ;
160         const std::string MARKER_ITEM = "MI" ;
161         
162         /** or an ImageFrameTimeAxisGroup */
163         const std::string IMAGEFRAME_GROUP = "IG" ;
164         
165 } /* namespace ardour_visual */
166
167 #endif /* __ardour_image_comp_socket_h__ */