SpectMorph

lib/smwavset.hh

00001 /* 
00002  * Copyright (C) 2010 Stefan Westerfeld
00003  *
00004  * This library is free software; you can redistribute it and/or modify it
00005  * under the terms of the GNU Lesser General Public License as published by the
00006  * Free Software Foundation; either version 3 of the License, or (at your
00007  * option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful, but WITHOUT
00010  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00011  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
00012  * for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public License
00015  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00016  */
00017 
00018 #ifndef SPECTMORPH_WAVSET_HH
00019 #define SPECTMORPH_WAVSET_HH
00020 
00021 #include <vector>
00022 #include <string>
00023 #include <bse/bsecxxplugin.hh>
00024 
00025 #include "smaudio.hh"
00026 
00027 namespace SpectMorph
00028 {
00029 
00030 class WavSetWave
00031 {
00032 public:
00033   int         midi_note;
00034   int         channel;
00035   int         velocity_range_min;
00036   int         velocity_range_max;
00037   std::string path;
00038   Audio      *audio;
00039 
00040   WavSetWave();
00041   ~WavSetWave();
00042 };
00043 
00044 class WavSet
00045 {
00046 public:
00047   ~WavSet();
00048 
00049   std::vector<WavSetWave>  waves;
00050 
00051   void clear();
00052 
00053   BseErrorType load (const std::string& filename, AudioLoadOptions load_options = AUDIO_LOAD_DEBUG);
00054   BseErrorType save (const std::string& filename, bool embed_models = false);
00055 };
00056 
00057 }
00058 
00059 #endif
 All Classes Functions Variables Enumerations Enumerator