annotate host/host.cpp @ 0:a6020bf991cd

* Initial import of what may or may not become a simple live visual-response host for causal Vamp plugins
author cannam
date Thu, 19 Oct 2006 16:53:48 +0000
parents
children 4342352b8ef3
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
cannam@0 3 #include <vamp-sdk/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
cannam@0 11 #include "system/System.h"
cannam@0 12
cannam@0 13 #include "Processor.h"
cannam@0 14
cannam@0 15 #include <cmath>
cannam@0 16
cannam@0 17 #include <QApplication>
cannam@0 18 #include <QFont>
cannam@0 19 #include <QPushButton>
cannam@0 20
cannam@0 21 using std::cout;
cannam@0 22 using std::cerr;
cannam@0 23 using std::endl;
cannam@0 24 using std::string;
cannam@0 25 using std::vector;
cannam@0 26
cannam@0 27
cannam@0 28 int main(int argc, char **argv)
cannam@0 29 {
cannam@0 30 QApplication application(argc, argv);
cannam@0 31
cannam@0 32 QFont fn = application.font();
cannam@0 33 fn.setPointSize(fn.pointSize() + 3);
cannam@0 34 application.setFont(fn);
cannam@0 35
cannam@0 36 QPushButton *button = new QPushButton("Quit");
cannam@0 37 QObject::connect(button, SIGNAL(clicked()),
cannam@0 38 &application, SLOT(closeAllWindows()));
cannam@0 39
cannam@0 40 BufferingAudioCallbackRecordTarget *target =
cannam@0 41 new BufferingAudioCallbackRecordTarget();
cannam@0 42
cannam@0 43 AudioCallbackRecordSource *source =
cannam@0 44 AudioRecordSourceFactory::createCallbackRecordSource(target);
cannam@0 45 if (!source) {
cannam@0 46 std::cerr << "ERROR: Failed to create audio record source" << std::endl;
cannam@0 47 return 1;
cannam@0 48 }
cannam@0 49
cannam@0 50 Processor processor(target);
cannam@0 51 processor.start();
cannam@0 52
cannam@0 53 // int n = processor.addPlugin("vamp:vamp-aubio:aubiotempo");
cannam@0 54 int n = processor.addPlugin("vamp:vamp-example-plugins:percussiononsets");
cannam@0 55 // int n = processor.addPlugin("vamp:vamp-example-plugins:spectralcentroid");
cannam@0 56 std::cerr << "Plugin loaded successfully (number: " << n << ")" << std::endl;
cannam@0 57
cannam@0 58 button->show();
cannam@0 59
cannam@0 60 application.exec();
cannam@0 61 }
cannam@0 62