| Chris@320 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */ | 
| Chris@320 | 2 | 
| Chris@320 | 3 /* | 
| Chris@320 | 4     Sonic Visualiser | 
| Chris@320 | 5     An audio file viewer and annotation editor. | 
| Chris@320 | 6     Centre for Digital Music, Queen Mary, University of London. | 
| Chris@320 | 7 | 
| Chris@320 | 8     This program is free software; you can redistribute it and/or | 
| Chris@320 | 9     modify it under the terms of the GNU General Public License as | 
| Chris@320 | 10     published by the Free Software Foundation; either version 2 of the | 
| Chris@320 | 11     License, or (at your option) any later version.  See the file | 
| Chris@320 | 12     COPYING included with this distribution for more information. | 
| Chris@320 | 13 */ | 
| Chris@320 | 14 | 
| Chris@320 | 15 /* | 
| Chris@320 | 16    This is a modified version of a source file from the | 
| Chris@320 | 17    Rosegarden MIDI and audio sequencer and notation editor. | 
| Chris@320 | 18    This file copyright 2000-2006 Chris Cannam. | 
| Chris@320 | 19 */ | 
| Chris@320 | 20 | 
| Chris@1581 | 21 #ifndef SV_OSC_MESSAGE_H | 
| Chris@1581 | 22 #define SV_OSC_MESSAGE_H | 
| Chris@320 | 23 | 
| Chris@320 | 24 #include <QString> | 
| Chris@320 | 25 #include <QVariant> | 
| Chris@320 | 26 | 
| Chris@320 | 27 #include <vector> | 
| Chris@320 | 28 #include <map> | 
| Chris@320 | 29 | 
| Chris@686 | 30 #include "base/Debug.h" | 
| Chris@686 | 31 | 
| Chris@320 | 32 class OSCMessage | 
| Chris@320 | 33 { | 
| Chris@320 | 34 public: | 
| Chris@972 | 35     OSCMessage() : m_target(0), m_targetData(0) { } | 
| Chris@320 | 36     ~OSCMessage(); | 
| Chris@320 | 37 | 
| Chris@320 | 38     void setTarget(const int &target) { m_target = target; } | 
| Chris@320 | 39     int getTarget() const { return m_target; } | 
| Chris@320 | 40 | 
| Chris@320 | 41     void setTargetData(const int &targetData) { m_targetData = targetData; } | 
| Chris@320 | 42     int getTargetData() const { return m_targetData; } | 
| Chris@320 | 43 | 
| Chris@320 | 44     void setMethod(QString method) { m_method = method; } | 
| Chris@320 | 45     QString getMethod() const { return m_method; } | 
| Chris@320 | 46 | 
| Chris@320 | 47     void clearArgs(); | 
| Chris@320 | 48     void addArg(QVariant arg); | 
| Chris@320 | 49 | 
| Chris@929 | 50     int getArgCount() const; | 
| Chris@929 | 51     const QVariant &getArg(int i) const; | 
| Chris@320 | 52 | 
| Chris@1665 | 53     // For debugging purposes, not for interchange | 
| Chris@1665 | 54     QString toString() const { | 
| Chris@1665 | 55         QString s = QString("[%1][%2] %3") | 
| Chris@1665 | 56             .arg(m_target) | 
| Chris@1665 | 57             .arg(m_targetData) | 
| Chris@1665 | 58             .arg(m_method); | 
| Chris@1665 | 59         for (auto a: m_args) { | 
| Chris@1665 | 60             s.push_back(" \"" + a.toString() + "\""); | 
| Chris@1665 | 61         } | 
| Chris@1665 | 62         return s; | 
| Chris@1665 | 63     } | 
| Chris@1665 | 64 | 
| Chris@320 | 65 private: | 
| Chris@320 | 66     int m_target; | 
| Chris@320 | 67     int m_targetData; | 
| Chris@320 | 68     QString m_method; | 
| Chris@320 | 69     std::vector<QVariant> m_args; | 
| Chris@320 | 70 }; | 
| Chris@320 | 71 | 
| Chris@320 | 72 #endif |