1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4     Sonic Visualiser
5     An audio file viewer and annotation editor.
6     Centre for Digital Music, Queen Mary, University of London.
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 /*
16    This is a modified version of a source file from the
17    Rosegarden MIDI and audio sequencer and notation editor.
18    This file copyright 2000-2006 Chris Cannam.
19 */
20 
21 #ifndef SV_OSC_MESSAGE_H
22 #define SV_OSC_MESSAGE_H
23 
24 #include <QString>
25 #include <QVariant>
26 
27 #include <vector>
28 #include <map>
29 
30 #include "base/Debug.h"
31 
32 class OSCMessage
33 {
34 public:
OSCMessage()35     OSCMessage() : m_target(0), m_targetData(0) { }
36     ~OSCMessage();
37 
setTarget(const int & target)38     void setTarget(const int &target) { m_target = target; }
getTarget()39     int getTarget() const { return m_target; }
40 
setTargetData(const int & targetData)41     void setTargetData(const int &targetData) { m_targetData = targetData; }
getTargetData()42     int getTargetData() const { return m_targetData; }
43 
setMethod(QString method)44     void setMethod(QString method) { m_method = method; }
getMethod()45     QString getMethod() const { return m_method; }
46 
47     void clearArgs();
48     void addArg(QVariant arg);
49 
50     int getArgCount() const;
51     const QVariant &getArg(int i) const;
52 
53     // For debugging purposes, not for interchange
toString()54     QString toString() const {
55         QString s = QString("[%1][%2] %3")
56             .arg(m_target)
57             .arg(m_targetData)
58             .arg(m_method);
59         for (auto a: m_args) {
60             s.push_back(" \"" + a.toString() + "\"");
61         }
62         return s;
63     }
64 
65 private:
66     int m_target;
67     int m_targetData;
68     QString m_method;
69     std::vector<QVariant> m_args;
70 };
71 
72 #endif
73