Mercurial > hg > opencollidoscope
diff CollidoscopeApp/include/Config.h @ 0:02467299402e
First import
CollidoscopeApp for Raspberry Pi
JackDevice
Teensy code for Collidoscope
author | Fiore Martin <f.martin@qmul.ac.uk> |
---|---|
date | Thu, 30 Jun 2016 14:50:06 +0200 |
parents | |
children | dd889fff8423 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CollidoscopeApp/include/Config.h Thu Jun 30 14:50:06 2016 +0200 @@ -0,0 +1,104 @@ +#pragma once + +#include <string> +#include <array> +#include "cinder/Color.h" +#include "cinder/Xml.h" + + +class Config +{ +public: + + Config(); + + // no copies + Config( const Config © ) = delete; + Config & operator=(const Config ©) = delete; + + /* load values for internal field from configuration file. Throws ci::Exception */ + void loadFromFile( std::string&& path ); + + std::string getInputDeviceKey() const + { + return mAudioInputDeviceKey; // Komplete 1/2 + //return "{0.0.1.00000000}.{a043bc8c-1dd1-4c94-82b4-ad8320cac5a5}"; // Komplete 3/4 + //return "{0.0.1.00000000}.{828b681b-cc0c-44e1-93c9-5f1f46f5926f}"; // Realtek + } + + std::size_t getNumChunks() const + { + return mNumChunks; + } + + /* return wave lenght in seconds */ + double getWaveLen() const + { + return mWaveLen; + } + + ci::Color getWaveSelectionColor(size_t waveIdx) const + { + if (waveIdx == 0){ + return cinder::Color(243.0f / 255.0f, 6.0f / 255.0f, 62.0f / 255.0f); + } + else{ + return cinder::Color(255.0f / 255.0f, 204.0f / 255.0f, 0.0f / 255.0f); + } + } + + std::size_t getCursorTriggerMessageBufSize() const + { + return 512; + } + + // returns the index of the wave associated to the MIDI channel passed as argument + size_t getWaveForMIDIChannel( unsigned char channelIdx ) + { + return channelIdx; + /*for ( int i = 0; i < NUM_WAVES; i++ ){ + if ( channelIdx == mMidiChannels[i] ) + return i; + }*/ + } + + double getMaxGrainDurationCoeff() const + { + return 8.0; + } + + double getMaxFilterCutoffFreq() const + { + return 22050.; + } + + double getMinFilterCutoffFreq() const + { + return 200.; + } + + size_t getMaxKeyboardVoices() const + { + return 6; + } + + size_t getMaxSelectionNumChunks() const + { + return 37; + } + + size_t getOscilloscopeNumPointsDivider() const + { + return 4; + } + +private: + + void parseWave( const ci::XmlTree &wave, int id ); + + std::string mAudioInputDeviceKey; + std::size_t mNumChunks; + double mWaveLen; + std::array< size_t, NUM_WAVES > mMidiChannels; + +};