/* ZynAddSubFX - a software synthesizer Nio.h - IO Interface Copyright (C) 2016 Mark McCurry This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #ifndef NIO_H #define NIO_H #include #include class WavFile; class Master; struct SYNTH_T; class oss_devs_t; /**Interface to Nio Subsystem * * Should be only externally included header */ namespace Nio { void init(const SYNTH_T &synth, const oss_devs_t &oss_devs, Master *master); bool start(void); void stop(void); void setDefaultSource(std::string name); void setDefaultSink(std::string name); bool setSource(std::string name); bool setSink(std::string name); void setPostfix(std::string post); std::string getPostfix(void); std::set getSources(void); std::set getSinks(void); std::string getSource(void); std::string getSink(void); //Get the prefered sample rate from jack (if running) void preferedSampleRate(unsigned &rate); //Complete Master Swaps to ONLY BE CALLED FROM RT CONTEXT void masterSwap(Master *master); //Wave writing void waveNew(class WavFile *wave); void waveStart(void); void waveStop(void); void waveEnd(void); extern bool autoConnect; extern bool pidInClientName; extern std::string defaultSource; extern std::string defaultSink; }; #endif