|
- /*
- 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 <string>
- #include <set>
-
- namespace zyncarla {
-
- 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<std::string> getSources(void);
- std::set<std::string> 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
|