SpectMorph
smuserinstrumentindex.hh
1 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl-2.1.html
2 
3 #ifndef SPECTMORPH_USER_INSTRUMENT_INDEX_HH
4 #define SPECTMORPH_USER_INSTRUMENT_INDEX_HH
5 
6 #include "sminstrument.hh"
7 
8 namespace SpectMorph
9 {
10 
12 {
13 private:
14  std::string user_instruments_dir;
15 
16  Error create_bank_directory (const std::string& bank);
17 
18 public:
20 
21  Error update_instrument (const std::string& bank, int number, const Instrument& instrument);
22 
23  std::string bank_directory (const std::string& bank);
24  std::string filename (const std::string& bank, int number);
25  std::string label (const std::string& bank, int number);
26 
27  int count (const std::string& bank);
28 
29  Error remove_bank (const std::string& bank);
30  Error create_bank (const std::string& bank);
31  std::vector<std::string> list_banks();
32 
33  Signal<> signal_banks_changed;
34  Signal<std::string> signal_bank_removed;
35  Signal<std::string, int, const Instrument *> signal_instrument_updated;
36  Signal<std::string> signal_instrument_list_updated;
37 };
38 
39 }
40 
41 #endif
Definition: smutils.hh:102
Definition: sminstrument.hh:83
Definition: smsignal.hh:150
Definition: smuserinstrumentindex.hh:12