1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4   Rosegarden
5   A sequencer and musical notation editor.
6   Copyright 2000-2021 the Rosegarden development team.
7 
8   This program is free software; you can redistribute it and/or
9   modify it under the terms of the GNU General Public License as
10   published by the Free Software Foundation; either version 2 of the
11   License, or (at your option) any later version.  See the file
12   COPYING included with this distribution for more information.
13 */
14 
15 #ifndef RG_MAPPEDCOMMON_H
16 #define RG_MAPPEDCOMMON_H
17 
18 // Some Mapped types that gui and sound libraries use to communicate
19 // plugin and Studio information.  Putting them here so we can change
20 // MappedStudio regularly without having to rebuild the gui.
21 //
22 #include <vector>
23 
24 #include <QString>
25 #include <QDataStream>
26 
27 namespace Rosegarden
28 {
29 
30 typedef int          MappedObjectId;
31 typedef QString      MappedObjectProperty;
32 typedef float        MappedObjectValue;
33 
34 // typedef QVector<MappedObjectProperty> MappedObjectPropertyList;
35 // replaced with a std::vector<> for Qt2 compatibility
36 
37 typedef std::vector<MappedObjectId> MappedObjectIdList;
38 typedef std::vector<MappedObjectProperty> MappedObjectPropertyList;
39 typedef std::vector<MappedObjectValue> MappedObjectValueList;
40 
41 // The direction in which a port operates.
42 //
43 typedef enum
44 {
45     ReadOnly,  // input port
46     WriteOnly, // output port
47     Duplex
48 } PortDirection;
49 
50 QDataStream& operator>>(QDataStream& s, MappedObjectIdList&);
51 QDataStream& operator<<(QDataStream&, const MappedObjectIdList&);
52 
53 QDataStream& operator>>(QDataStream& s, MappedObjectPropertyList&);
54 QDataStream& operator<<(QDataStream&, const MappedObjectPropertyList&);
55 
56 QDataStream& operator>>(QDataStream& s, MappedObjectValueList&);
57 QDataStream& operator<<(QDataStream&, const MappedObjectValueList&);
58 
59 }
60 
61 #endif // RG_MAPPEDCOMMON_H
62