Renamed directory "dev" to "dev_tools". Replaced the ecasound-2.7.2 with a new download of ecasound. The reason is that the previous ecasound directory had all the Makefiles checked in with hardcoded paths from Naomi's computer. This prevented anyone else from being able to build. I copied over the modified version of ecacontrol.py.
88 lines
1.8 KiB
C++
88 lines
1.8 KiB
C++
// -*- mode: C++; -*-
|
|
#ifndef INCLUDED_KVU_COM_LINE_H
|
|
#define INCLUDED_KVU_COM_LINE_H
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
/**
|
|
* Class representation of command line arguments
|
|
*/
|
|
class COMMAND_LINE {
|
|
|
|
private:
|
|
|
|
std::vector<std::string> cparams;
|
|
|
|
mutable std::vector<std::string>::size_type current_rep;
|
|
|
|
public:
|
|
|
|
/**
|
|
* Number of elements
|
|
*/
|
|
std::string::size_type size() const { return(cparams.size()); }
|
|
|
|
/**
|
|
* Sets the first argument active. This is usually program's
|
|
* name.
|
|
*/
|
|
void begin(void) const { current_rep = 0; }
|
|
|
|
/**
|
|
* Moves to the next argument.
|
|
*/
|
|
void next(void) const { ++current_rep; }
|
|
|
|
/**
|
|
* Moves to the previous argument.
|
|
*/
|
|
void previous(void) const { --current_rep; }
|
|
|
|
/**
|
|
* Returns true if we've past the last argument.
|
|
*/
|
|
bool end(void) const { if (current_rep >= cparams.size()) return(true); else return (false); }
|
|
|
|
/**
|
|
* Returns the current argument
|
|
*
|
|
* require:
|
|
* end() == false
|
|
*/
|
|
const std::string& current(void) const { return(cparams[current_rep]); }
|
|
|
|
/**
|
|
* Is '-option' is among the arguments?
|
|
*
|
|
* ensure:
|
|
* current() == old current()
|
|
*/
|
|
bool has(char option) const;
|
|
|
|
/**
|
|
* Is '-option' is among the arguments?
|
|
*/
|
|
bool has(const std::string& option) const;
|
|
|
|
/**
|
|
* Make sure that all option tokens start with a '-' sign
|
|
*/
|
|
void combine(void);
|
|
|
|
/**
|
|
* Static version of <code>combine</code>
|
|
*/
|
|
static std::vector<std::string> combine(const std::vector<std::string>& source);
|
|
|
|
/**
|
|
* Adds 'argu' to the arguments.
|
|
*/
|
|
void push_back(const std::string& argu);
|
|
|
|
COMMAND_LINE(int argc, char *argv[]);
|
|
COMMAND_LINE(const std::vector<std::string>& params);
|
|
COMMAND_LINE(void);
|
|
};
|
|
|
|
#endif
|