#pragma once

namespace globals {
	inline unsigned int COLOR_BG = 0xff181818;
	inline unsigned int COLOR_ACTIVE = 0xff00e672;
	inline unsigned int COLOR_ACTIVE_LIGHT = 0xff75e6b5;
	inline unsigned int COLOR_ACTIVE_DARK = 0xff005f2f;
	inline unsigned int COLOR_NEUTRAL = 0xff666666;
	inline unsigned int COLOR_NEUTRAL_LIGHT = 0x99999999;
	inline unsigned int COLOR_SEEK = 0xff00ff00;
	inline unsigned int COLOR_KNOB = 0xff272727;
	inline unsigned int COLOR_AUDIO = 0xffffd42a;
	inline unsigned int COLOR_MIDI = 0xff50a9ff;
	inline unsigned int COLOR_SELECTION = 0xff50a9ff;
	inline unsigned int COLOR_SEQ_MAX = 0xffffffff;
	inline unsigned int COLOR_SEQ_MIN = 0xffffffff;
	inline unsigned int COLOR_SEQ_INVX = 0xff00ffff;
	inline unsigned int COLOR_SEQ_TEN = 0xffff8050;
	inline unsigned int COLOR_SEQ_TENA = 0xffffee50;
	inline unsigned int COLOR_SEQ_TENR = 0xffffB950;
	inline unsigned int COLOR_SEQ_SKEW = 0xffffB950;

	// Anti noise
	inline const double ANOISE_LIN_MILLIS = 1.5;
	inline const double ANOISE_LOW_MILLIS = 1.5;
	inline const double ANOISE_HIGH_MILLIS = 4.0;

	// Audio trigger
	inline const int AUDIO_LATENCY_MILLIS = 5;
	inline const int AUDIO_COOLDOWN_MILLIS = 50;
	inline const int AUDIO_DRUMSBUF_MILLIS = 20;
	inline const int AUDIO_NOTE_LENGTH_MILLIS = 100; 
	inline const int MAX_UNDO = 100;

	// view
	inline const int PLUG_WIDTH = 640;
	inline const int PLUG_HEIGHT = 640;
	inline const int MAX_PLUG_WIDTH = 640 * 3;
	inline const int MAX_PLUG_HEIGHT = 640 * 3;
	inline const int PLUG_PADDING = 15;
	inline const int HOVER_RADIUS = 7;
	inline const int MPOINT_HOVER_RADIUS = 5;
	inline const int POINT_RADIUS = 4;
	inline const int MPOINT_RADIUS = 3;
	inline const int MSEL_PADDING = 8;

	// paint mode
	inline const int PAINT_PATS_IDX = 100; // starting index of paint patterns, audio patterns always range 0..11
	inline const int PAINT_PATS = 32;

	// sequencer
	inline const int SEQ_PAT_IDX = 1000;
	inline const int SEQ_MAX_CELLS = 32;
};