annotate host/host.cpp @ 17:3cbd40805795 tip

Remove obsolete stuff from README
author Chris Cannam
date Tue, 03 Dec 2013 16:33:08 +0000
parents dbbd2b473eee
children
rev   line source
cannam@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
cannam@0 2
Chris@15 3 #include <vamp-hostsdk/PluginHostAdapter.h>
cannam@0 4
cannam@0 5 #include "audioio/BufferingAudioCallbackRecordTarget.h"
cannam@0 6 #include "audioio/AudioRecordSourceFactory.h"
cannam@0 7
cannam@0 8 #include <iostream>
cannam@0 9 #include <sndfile.h>
cannam@0 10
Chris@16 11 #include "audioio/System.h"
cannam@0 12
cannam@0 13 #include "Processor.h"
cannam@3 14 #include "SimpleXMLRuleLoader.h"
cannam@0 15
cannam@0 16 #include <cmath>
cannam@1 17 #include <cassert>
cannam@0 18
cannam@0 19 #include <QApplication>
cannam@0 20 #include <QFont>
cannam@9 21 #include <QString>
cannam@9 22 #include <QStringList>
cannam@0 23 #include <QPushButton>
cannam@0 24
cannam@0 25 using std::cout;
cannam@0 26 using std::cerr;
cannam@0 27 using std::endl;
cannam@0 28 using std::string;
cannam@0 29 using std::vector;
cannam@0 30
cannam@0 31
cannam@0 32 int main(int argc, char **argv)
cannam@0 33 {
cannam@0 34 QApplication application(argc, argv);
cannam@0 35
cannam@9 36 QStringList args = application.arguments();
cannam@9 37
cannam@9 38 QString fileName;
cannam@9 39 for (QStringList::iterator i = args.begin(); i != args.end(); ++i) {
cannam@9 40 if (i == args.begin()) continue;
cannam@9 41 if (i->startsWith('-')) continue;
cannam@9 42 fileName = *i;
cannam@9 43 break;
cannam@9 44 }
cannam@9 45
cannam@9 46 if (fileName == "") {
cannam@9 47 std::cerr << "Usage: " << args.begin()->toStdString() << " <ruleset.xml>" << std::endl;
cannam@9 48 return 2;
cannam@9 49 }
cannam@9 50
cannam@0 51 QFont fn = application.font();
cannam@0 52 fn.setPointSize(fn.pointSize() + 3);
cannam@0 53 application.setFont(fn);
cannam@0 54
cannam@0 55 QPushButton *button = new QPushButton("Quit");
cannam@0 56 QObject::connect(button, SIGNAL(clicked()),
cannam@0 57 &application, SLOT(closeAllWindows()));
cannam@0 58
cannam@0 59 BufferingAudioCallbackRecordTarget *target =
cannam@0 60 new BufferingAudioCallbackRecordTarget();
cannam@0 61
cannam@0 62 AudioCallbackRecordSource *source =
cannam@0 63 AudioRecordSourceFactory::createCallbackRecordSource(target);
cannam@0 64 if (!source) {
cannam@0 65 std::cerr << "ERROR: Failed to create audio record source" << std::endl;
cannam@0 66 return 1;
cannam@0 67 }
cannam@0 68
cannam@9 69 Processor processor(target);
cannam@6 70
cannam@3 71 SimpleXMLRuleLoader loader;
cannam@9 72 if (!loader.loadFile(processor, fileName)) {
cannam@9 73 std::cerr << "ERROR: Failed to load XML ruleset file \"" << fileName.toStdString() << "\"" << std::endl;
cannam@3 74 return 1;
cannam@3 75 }
cannam@0 76
cannam@0 77 button->show();
cannam@1 78 processor.start();
cannam@0 79
cannam@0 80 application.exec();
cannam@0 81 }
cannam@0 82