Parent Directory | Revision Log
* added and implemented a set of 19 new LSCP commands for controlling internal effects: - added LSCP command "GET AVAILABLE_EFFECTS" - added LSCP command "LIST AVAILABLE_EFFECTS" - added LSCP command "GET EFFECT INFO <effect-index>" - added LSCP command "CREATE EFFECT_INSTANCE <effect-index>" - added LSCP command "CREATE EFFECT_INSTANCE <effect-system> <module> <effect-name>" - added LSCP command "DESTROY EFFECT_INSTANCE <effect-instance>" - added LSCP command "GET EFFECT_INSTANCES" - added LSCP command "LIST EFFECT_INSTANCES" - added LSCP command "GET EFFECT_INSTANCE INFO <effect-instance>" - added LSCP command "GET EFFECT_INSTANCE_INPUT_CONTROL INFO <effect-instance> <input-control>" - added LSCP command "SET EFFECT_INSTANCE_INPUT_CONTROL <effect-instance> <input-control> <value>" - added LSCP command "GET MASTER_EFFECT_CHAINS <audio-device>" - added LSCP command "LIST MASTER_EFFECT_CHAINS <audio-device>" - added LSCP command "ADD MASTER_EFFECT_CHAIN <audio-device>" - added LSCP command "REMOVE MASTER_EFFECT_CHAIN <audio-device> <effect-chain>" - added LSCP command "GET MASTER_EFFECT_CHAIN INFO <audio-device> <effect-chain>" - added LSCP command "APPEND MASTER_EFFECT_CHAIN EFFECT <audio-device> <effect-chain> <effect-instance>" - added LSCP command "INSERT MASTER_EFFECT_CHAIN EFFECT <audio-device> <effect-chain> <effect-instance> <effect-chain-pos>" - added LSCP command "REMOVE MASTER_EFFECT_CHAIN EFFECT <audio-device> <effect-chain> <effect-instance>" * bumped version to 1.0.0.cvs7
1 | schoenebeck | 2135 | #ifndef LS_IDGENERATOR_H |
2 | #define LS_IDGENERATOR_H | ||
3 | |||
4 | #include <set> | ||
5 | |||
6 | namespace LinuxSampler { | ||
7 | |||
8 | /** | ||
9 | * Generates unique numerical IDs starting from zero. | ||
10 | * | ||
11 | * @e Note: this class is not exported to the C++ API of the sampler! | ||
12 | */ | ||
13 | class IDGenerator { | ||
14 | public: | ||
15 | /** | ||
16 | * Constructor. | ||
17 | * | ||
18 | * @param simpleAlgorithm - if false, all created IDs which are still in | ||
19 | * use will be remembered, if true then IDs are | ||
20 | * simply generated by incrementing an int variable | ||
21 | * by 1 until the whole int value range was used | ||
22 | */ | ||
23 | IDGenerator(bool simpleAlgorithm = false); | ||
24 | |||
25 | /** | ||
26 | * Returns new unique positive ID of at least zero, a negative number if | ||
27 | * no free ID could be generated. | ||
28 | */ | ||
29 | int create(); | ||
30 | |||
31 | /** | ||
32 | * Free the given ID, for being re-used in future. | ||
33 | */ | ||
34 | void destroy(int id); | ||
35 | |||
36 | private: | ||
37 | std::set<int> ids; | ||
38 | int previousId; | ||
39 | bool simple; | ||
40 | }; | ||
41 | |||
42 | } // namespace LinuxSampler | ||
43 | |||
44 | #endif // LS_IDGENERATOR_H |
ViewVC Help | |
Powered by ViewVC |