File: cmdline.h

package info (click to toggle)
drc 3.2.2~dfsg0-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 4,548 kB
  • sloc: ansic: 13,575; cpp: 11,048; sh: 253; makefile: 41
file content (89 lines) | stat: -rw-r--r-- 2,644 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/****************************************************************************

    DRC: Digital Room Correction
    Copyright (C) 2002-2004 Denis Sbragion

    This program is free software; you can redistribute it and/or modify
    it 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.

    This program is distributed in the hope that it 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 this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

		You can contact the author on Internet at the following address:

				d.sbragion@neomerica.it

****************************************************************************/

/* Command line parsing utilities */

#ifndef CmdLine_h
	#define CmdLine_h

	#include "drc.h"
	#include "cfgparse.h"
	#include "boolean.h"
	#include <getopt.h>

	/* Struttura gestione parametri */
	typedef
		union
			{
				char * StrParm;
				int IntParm;
				DRCFloat FltParm;
			}
		ParameterType;

	/* Struttura gestione opzioni */
	typedef
		struct
			{
				int OptCount;
				struct option * Options;
				ParameterType * Parms;
				Boolean * ParmSet;
			}
		CmdLineType;

	#ifdef __cplusplus
		extern "C"
			{
	#endif

	/* Registra le impostazioni per la command line a partire
	da una definizione ParseCfg. Torna una struttura opaque
	utilizzata per il recupero dei parametri dalla linea di comando. */
	CmdLineType * RegisterCmdLine(const CfgParameter * CfgParmsDef);

	/* Effettua il processing della command line */
	int GetCmdLine(const int argc, char * const * argv,
		const CfgParameter * CfgParmsDef, CmdLineType * OptData,
		char ** CfgFileName);

	/* Sovrascrive i parametri della definizione ParseCfg CfgParmsDef con
	i parametri recuperati dalla linea di comando e registrati nella
	in OptData. */
	void CopyCmdLineParms(const CmdLineType * OptData,CfgParameter * CfgParmsDef);

	/* Visualizza le opzioni disponibili a linea di comando */
	void ShowCmdLine(const CfgParameter * CfgParmsDef);

	/* Libera la memoria occupata per la gestione della command line */
	void FreeCmdLine(CmdLineType * OptData, const CfgParameter * CfgParmsDef);

	/* Libera la memoria di una strttura di configurazione */
	void FreeCfgParameters(CfgParameter * CfgParmsDef);

	#ifdef __cplusplus
		}
	#endif
#endif