|
- /*
- ==============================================================================
-
- This file is part of the JUCETICE project - Copyright 2009 by Lucio Asnaghi.
-
- JUCETICE is based around the JUCE library - "Jules' Utility Class Extensions"
- Copyright 2007 by Julian Storer.
-
- ------------------------------------------------------------------------------
-
- JUCE and JUCETICE can be redistributed and/or modified under the terms of
- the GNU General Public License, as published by the Free Software Foundation;
- either version 2 of the License, or (at your option) any later version.
-
- JUCE and JUCETICE are distributed in the hope that they will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with JUCE and JUCETICE; if not, visit www.gnu.org/licenses or write to
- Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- Boston, MA 02111-1307 USA
-
- ==============================================================================
- */
-
- BEGIN_JUCE_NAMESPACE
-
- //==============================================================================
- void CommandLineTokenizer::parseCommandLine (const String& commandLine)
- {
- int section;
- String value, parse = commandLine.trim();
-
- while (parse.length() > 0)
- {
- section = parse.indexOf (0, " ");
- if (section == -1)
- section = parse.length();
-
- argv.add (parse.substring (0, section));
-
- if (section < parse.length() )
- parse = parse.substring (section+1,parse.length()).trim();
- else
- parse = String();
- }
- }
-
- //==============================================================================
- const String& CommandLineTokenizer::operator[] (const int index) const throw()
- {
- jassert (index >= 0 && index < argv.size());
- return argv[index];
- }
-
- const int CommandLineTokenizer::size()
- {
- return argv.size();
- }
-
- //==============================================================================
- int CommandLineTokenizer::searchToken (const String& tokenToSearch, const bool caseSensitive)
- {
- if (caseSensitive)
- {
- for (int i = 0; i < argv.size(); i++ )
- if (tokenToSearch.compare (argv[i]) == 0)
- return i;
- }
- else
- {
- for (int i = 0; i < argv.size(); i++ )
- if (tokenToSearch.compareIgnoreCase (argv[i]) == 0)
- return i;
- }
- return -1;
- }
-
- //==============================================================================
- String CommandLineTokenizer::getOptionString (const String& tokenToSearch,
- const String& defValue,
- const bool caseSensitive)
- {
- int i = searchToken (tokenToSearch, caseSensitive);
- if (i++ < 0)
- return defValue;
-
- if (i >= 0 && i < argv.size())
- return argv[i];
- else
- return defValue;
- }
-
- bool CommandLineTokenizer::getOptionBool (const String& tokenToSearch,
- const bool defValue,
- const bool caseSensitive)
- {
- int i = searchToken (tokenToSearch, caseSensitive);
- if (i++ < 0)
- return defValue;
-
- if (i >= 0 && i < argv.size())
- return argv[i].getIntValue() == 0 ? false : true;
- else
- return defValue;
- }
-
- int CommandLineTokenizer::getOptionInt (const String& tokenToSearch,
- const int defValue,
- const bool caseSensitive)
- {
- int i = searchToken (tokenToSearch, caseSensitive);
- if (i++ < 0)
- return defValue;
-
- if (i >= 0 && i < argv.size())
- return argv[i].getIntValue();
- else
- return defValue;
- }
-
- double CommandLineTokenizer::getOptionDouble (const String& tokenToSearch,
- const double defValue,
- const bool caseSensitive)
- {
- int i = searchToken (tokenToSearch, caseSensitive);
- if (i++ < 0)
- return defValue;
-
- if (i >= 0 && i < argv.size())
- return argv[i].getDoubleValue();
- else
- return defValue;
- }
-
- END_JUCE_NAMESPACE
|