/*
* jack-director.h - Main Program headers
*
*
* this file is part of:
*
* JackDirector 0.1 --- Start/Stop Transport by midi command, play a metronome
*
* jack-director - 2014 (C) by Sergio Atzori <sergioatzori [at] gmail.com>
*/
/*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _JACKDIRECTOR_H_INCLUDED_
#define _JACKDIRECTOR_H_INCLUDED_
/* default configuration file */
#define CONFIG_FILE "jack-directorrc"
/* show debug information?
(0=be quiet, 1=stdout, 2=stdout+stderr, 3=full debug, 3=full debug+midi dump) */
#define SHOW_DEBUG 3
/* Jack Client's name */
#define SEQ_JD_NAME "JackDirector"
/*
*
* STOP!
* Please don't edit anything beyond this line.
*
*/
/* program name */
#define PROGRAM_NAME "jack-director"
/* program version */
#define PROGRAM_VERSION PROGRAM_NAME " 0.1 2014-05-11"
/* length of buffer for joypad name */
#define NAME_LENGTH 128
/* an empty string */
#define NOTHING "\0"
/* this is the comment sign in the configuration file */
#define COMMENT_SIGN '#'
/* the command line argument used to show the version of joyd */
#define PRINT_VERSION "-v"
/* the long command line argument used to show the version of joyd */
#define PRINT_VERSION_LONG "--version"
/* the informative text to show with the version number */
#define PROGRAM_INFOTEXT "usage: " PROGRAM_NAME " {configuration file}"
typedef struct smidi_cmd {
unsigned short bpm;
signed char mute;
signed char stop;
signed char ignore;
signed char nolocate;
unsigned int locate;
} MIDI_CMD;
/*
* The structure for the configuration variables
*/
typedef struct sconfig {
int debug;
char *config_file;
int mfreq;
int mamplitude;
int mduration;
int mattack;
int mdecay;
int ntrans;
int nstart;
int nstop;
int nthres;
int midich;
int bpm;
char *name;
int mcresyncdelay;
int mcnotransport;
int mcnoposition;
} TCONFIG;
extern TCONFIG config;
extern unsigned short current_prg;
extern unsigned short current_midich;
extern unsigned short current_transport;
extern unsigned short current_bpm;
extern unsigned short current_mute;
extern unsigned long long current_locate;
extern MIDI_CMD midi_prg[16][128]; /* 16 channels - 128 programs */
#endif