📄 controls.h
字号:
/* TiMidity++ -- MIDI to WAVE converter and player Copyright (C) 1999-2002 Masanao Izumo <mo@goice.co.jp> Copyright (C) 1995 Tuukka Toivonen <tt@cgs.fi> 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 controls.h*/#ifndef ___CONTROLS_H_#define ___CONTROLS_H_#define RC_IS_SKIP_FILE(rc) ((rc) == RC_QUIT || (rc) == RC_LOAD_FILE || \ (rc) == RC_NEXT || (rc) == RC_REALLY_PREVIOUS || \ (rc) == RC_ERROR || (rc) == RC_STOP || \ (rc) == RC_TUNE_END)/* Return values for ControlMode.read */#define RC_ERROR -1#ifdef RC_NONE#undef RC_NONE#endif#define RC_NONE 0#define RC_QUIT 1#define RC_NEXT 2#define RC_PREVIOUS 3 /* Restart this song at beginning, or the previous song if we're less than a second into this one. */#define RC_FORWARD 4#define RC_BACK 5#define RC_JUMP 6#define RC_TOGGLE_PAUSE 7 /* Pause/continue */#define RC_RESTART 8 /* Restart song at beginning */#define RC_PAUSE 9 /* Really pause playing */#define RC_CONTINUE 10 /* Continue if paused */#define RC_REALLY_PREVIOUS 11 /* Really go to the previous song */#define RC_CHANGE_VOLUME 12#define RC_LOAD_FILE 13 /* Load a new midifile */#define RC_TUNE_END 14 /* The tune is over, play it again sam? */#define RC_KEYUP 15 /* Key up */#define RC_KEYDOWN 16 /* Key down */#define RC_SPEEDUP 17 /* Speed up */#define RC_SPEEDDOWN 18 /* Speed down */#define RC_VOICEINCR 19 /* Increase voices */#define RC_VOICEDECR 20 /* Decrease voices */#define RC_TOGGLE_DRUMCHAN 21 /* Toggle drum channel */#define RC_RELOAD 22 /* Reload & Play */#define RC_TOGGLE_SNDSPEC 23 /* Open/Close Sound Spectrogram Window */#define RC_CHANGE_REV_EFFB 24#define RC_CHANGE_REV_TIME 25#define RC_SYNC_RESTART 26#define RC_TOGGLE_CTL_SPEANA 27#define RC_CHANGE_RATE 28#define RC_OUTPUT_CHANGED 29#define RC_STOP 30 /* Stop to play */#define RC_TOGGLE_MUTE 31#define RC_SOLO_PLAY 32#define RC_MUTE_CLEAR 33#define CMSG_INFO 0#define CMSG_WARNING 1#define CMSG_ERROR 2#define CMSG_FATAL 3#define CMSG_TRACE 4#define CMSG_TIME 5#define CMSG_TOTAL 6#define CMSG_FILE 7#define CMSG_TEXT 8#define VERB_NORMAL 0#define VERB_VERBOSE 1#define VERB_NOISY 2#define VERB_DEBUG 3#define VERB_DEBUG_SILLY 4enum { CTLE_NOW_LOADING, /* v1:filename */ CTLE_LOADING_DONE, /* v1:0=success -1=error 1=terminated */ CTLE_PLAY_START, /* v1:nsamples */ CTLE_PLAY_END, CTLE_CURRENT_TIME, /* v1:secs, v2:voices */ CTLE_NOTE, /* v1:status, v2:ch, v3:note, v4:velo */ CTLE_MASTER_VOLUME, /* v1:amp(%) */ CTLE_METRONOME, /* v1:measure, v2:beat */ CTLE_KEYSIG, /* v1:key sig */ CTLE_KEY_OFFSET, /* v1:key offset */ CTLE_TEMPO, /* v1:tempo */ CTLE_TIME_RATIO, /* v1:time ratio(%) */ CTLE_TEMPER_KEYSIG, /* v1:tuning key sig */ CTLE_TEMPER_TYPE, /* v1:ch, v2:tuning type */ CTLE_MUTE, /* v1:ch, v2:is_mute */ CTLE_PROGRAM, /* v1:ch, v2:prog, v3:name, v4:bank,lsb.msb */ CTLE_VOLUME, /* v1:ch, v2:value */ CTLE_EXPRESSION, /* v1:ch, v2:value */ CTLE_PANNING, /* v1:ch, v2:value */ CTLE_SUSTAIN, /* v1:ch, v2:value */ CTLE_PITCH_BEND, /* v1:ch, v2:value */ CTLE_MOD_WHEEL, /* v1:ch, v2:value */ CTLE_CHORUS_EFFECT, /* v1:ch, v2:value */ CTLE_REVERB_EFFECT, /* v1:ch, v2:value */ CTLE_LYRIC, /* v1:lyric-ID */ CTLE_REFRESH, CTLE_RESET, CTLE_SPEANA, /* v1:double[] v2:len */ CTLE_PAUSE, /* v1:pause on/off v2:time of pause */ CTLE_GSLCD, /* GS L.C.D. */ CTLE_MAXVOICES, /* v1:voices, Change voices */ CTLE_DRUMPART /* v1:ch, v2:is_drum */};typedef struct _CtlEvent { int type; /* See above */ long v1, v2, v3, v4;/* Event value */} CtlEvent;typedef struct { char *id_name, id_character; int verbosity, trace_playing, opened; int32 flags;/* ControlMode flags. * Some interfaces ignore these flags. */#define CTLF_LIST_LOOP (1u<<0) /* -i?l */#define CTLF_LIST_RANDOM (1u<<1) /* -i?r */#define CTLF_LIST_SORT (1u<<2) /* -i?s */#define CTLF_AUTOSTART (1u<<3) /* -i?a */#define CTLF_AUTOEXIT (1u<<4) /* -i?x */#define CTLF_DRAG_START (1u<<5) /* -i?d */#define CTLF_AUTOUNIQ (1u<<6) /* -i?u */#define CTLF_AUTOREFINE (1u<<7) /* -i?R */#define CTLF_NOT_CONTINUE (1u<<8) /* -i?C */#define CTLF_DAEMONIZE (1u<<9) /* -i?D */ int (*open)(int using_stdin, int using_stdout); void (*close)(void); void (*pass_playing_list)(int number_of_files, char *list_of_files[]); int (*read)(int32 *valp); int (*cmsg)(int type, int verbosity_level, char *fmt, ...); void (*event)(CtlEvent *ev); /* Control events */} ControlMode;extern ControlMode *ctl_list[], *ctl;extern int dumb_error_count;#endif /* ___CONTROLS_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -