/**
* cg-tools -- Cooperative gamma-enabled tools
* Copyright (C) 2016 Mattias Andrée (maandree@kth.se)
*
* 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 3 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, see .
*/
#include
/**
* The process's name
*/
extern const char* argv0;
/**
* The libcoopgamma context
*/
extern libcoopgamma_context_t cg;
/**
* The names of the selected CRTC:s
*/
extern char** crtcs;
/**
* CRTC and monitor information about
* each selected CRTC and connect monitor
*/
extern libcoopgamma_crtc_info_t* crtc_info;
/**
* The number of selected CRTC:s
*/
extern size_t crtcs_n;
/**
* Print usage information and exit
*/
#if defined(__GNUC__)
__attribute__((__noreturn__))
#endif
extern void usage(void);
/**
* Handle a command line option
*
* @param opt The option, it is a NUL-terminate two-character
* string starting with either '-' or '+', if the
* argument is not recognised, call `usage`. This
* string will not be "-m", "-s", or "-c".
* @param arg The argument associated with `opt`,
* `NULL` there is no next argument, if this
* parameter is `NULL` but needed, call `usage`
* @return 0 if `arg` was not used,
* 1 if `arg` was used,
* -1 on error
*/
#if defined(__GNUC__)
__attribute__((__nonnull__(1)))
#endif
extern int handle_opt(char* opt, char* arg);
/**
* This function is called after the last
* call to `handle_opt`
*
* @param argc The number of unparsed arguments
* @param argv `NULL` terminated list of unparsed arguments
* @param method The argument associated with the "-m" option
* @param site The argument associated with the "-s" option
* @param crtcs The arguments associated with the "-c" options, `NULL`-terminated
* @return Zero on success, -1 on error
*/
#if defined(__GNUC__)
__attribute__((__nonnull__(2)))
#endif
extern int handle_args(int argc, char* argv[], char* method, char* site, char** crtcs);