cannam@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ cannam@0: Chris@15: #include cannam@0: cannam@0: #include "audioio/BufferingAudioCallbackRecordTarget.h" cannam@0: #include "audioio/AudioRecordSourceFactory.h" cannam@0: cannam@0: #include cannam@0: #include cannam@0: Chris@16: #include "audioio/System.h" cannam@0: cannam@0: #include "Processor.h" cannam@3: #include "SimpleXMLRuleLoader.h" cannam@0: cannam@0: #include cannam@1: #include cannam@0: cannam@0: #include cannam@0: #include cannam@9: #include cannam@9: #include cannam@0: #include cannam@0: cannam@0: using std::cout; cannam@0: using std::cerr; cannam@0: using std::endl; cannam@0: using std::string; cannam@0: using std::vector; cannam@0: cannam@0: cannam@0: int main(int argc, char **argv) cannam@0: { cannam@0: QApplication application(argc, argv); cannam@0: cannam@9: QStringList args = application.arguments(); cannam@9: cannam@9: QString fileName; cannam@9: for (QStringList::iterator i = args.begin(); i != args.end(); ++i) { cannam@9: if (i == args.begin()) continue; cannam@9: if (i->startsWith('-')) continue; cannam@9: fileName = *i; cannam@9: break; cannam@9: } cannam@9: cannam@9: if (fileName == "") { cannam@9: std::cerr << "Usage: " << args.begin()->toStdString() << " " << std::endl; cannam@9: return 2; cannam@9: } cannam@9: cannam@0: QFont fn = application.font(); cannam@0: fn.setPointSize(fn.pointSize() + 3); cannam@0: application.setFont(fn); cannam@0: cannam@0: QPushButton *button = new QPushButton("Quit"); cannam@0: QObject::connect(button, SIGNAL(clicked()), cannam@0: &application, SLOT(closeAllWindows())); cannam@0: cannam@0: BufferingAudioCallbackRecordTarget *target = cannam@0: new BufferingAudioCallbackRecordTarget(); cannam@0: cannam@0: AudioCallbackRecordSource *source = cannam@0: AudioRecordSourceFactory::createCallbackRecordSource(target); cannam@0: if (!source) { cannam@0: std::cerr << "ERROR: Failed to create audio record source" << std::endl; cannam@0: return 1; cannam@0: } cannam@0: cannam@9: Processor processor(target); cannam@6: cannam@3: SimpleXMLRuleLoader loader; cannam@9: if (!loader.loadFile(processor, fileName)) { cannam@9: std::cerr << "ERROR: Failed to load XML ruleset file \"" << fileName.toStdString() << "\"" << std::endl; cannam@3: return 1; cannam@3: } cannam@0: cannam@0: button->show(); cannam@1: processor.start(); cannam@0: cannam@0: application.exec(); cannam@0: } cannam@0: