From 490bac7421b5345e5b9035f1430520c751935534 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Sat, 21 Oct 2017 14:37:45 +0300 Subject: Fixed MSVC2015 build --- utils/dumpbank/dumpbank.cpp | 30 +++++++++++++++++++------- utils/gen_adldata/file_formats/load_op2.h | 20 +++++++++++++---- utils/gen_adldata/ini/ini_processing.cpp | 9 ++++++++ utils/gen_adldata/ini/ini_processing_variant.h | 2 ++ utils/midiplay/adlmidiplay.cpp | 1 + 5 files changed, 50 insertions(+), 12 deletions(-) (limited to 'utils') diff --git a/utils/dumpbank/dumpbank.cpp b/utils/dumpbank/dumpbank.cpp index 6996681..aad3e7b 100644 --- a/utils/dumpbank/dumpbank.cpp +++ b/utils/dumpbank/dumpbank.cpp @@ -5,19 +5,29 @@ #include #include +#ifndef _MSC_VER +#define PACKED_STRUCT __attribute__((packed)) +#else +#define PACKED_STRUCT +#endif + +#ifdef _MSC_VER +#pragma pack(push,1) +#endif + struct BNK1_header { char maj_vers, min_vers; char signature[6]; // "ADLIB-" unsigned short ins_used, ins_entries; unsigned name_list, inst_data; -} __attribute__((packed)); +} PACKED_STRUCT; struct BNK1_record { unsigned short index; unsigned char used; char name[9]; -} __attribute__((packed)); +} PACKED_STRUCT; struct OPL2_op { unsigned char key_scale_lvl; @@ -33,14 +43,14 @@ struct OPL2_op unsigned char pitch_vib; unsigned char env_scaling; unsigned char connection; -} __attribute__((packed)); +} PACKED_STRUCT; struct BNK1_instrument { unsigned char sound_mode; unsigned char voice_num; OPL2_op ops[2]; unsigned char waveforms[2]; -} __attribute__((packed)); // conventional Ad Lib instrument maker bankfile patch +} PACKED_STRUCT; // conventional Ad Lib instrument maker bankfile patch struct BNK2_header { @@ -49,7 +59,7 @@ struct BNK2_header char filler[10]; unsigned short ins_entries, ins_used; int lostSpace; -} __attribute__((packed)); +} PACKED_STRUCT; struct BNK2_record { char O3_sig[3]; @@ -57,13 +67,13 @@ struct BNK2_record char used; int attrib, dataOffset; unsigned short blockSize, allocBSize; -} __attribute__((packed)); +} PACKED_STRUCT; struct OPL3_op { unsigned char AVEKMMMM, KKLLLLLL; unsigned char AAAADDDD, SSSSRRRR; unsigned char DxxxxWWW, xxxxxxxx; -} __attribute__((packed)); +} PACKED_STRUCT; struct BNK2_instrument { OPL3_op ops[4]; @@ -71,7 +81,11 @@ struct BNK2_instrument unsigned char xxP24NNN; unsigned char TTTTTTTT; unsigned char xxxxxxxx; -} __attribute__((packed)); // Ad Lib Gold instrument maker bankfile patch +} PACKED_STRUCT; // Ad Lib Gold instrument maker bankfile patch + +#ifdef _MSC_VER +#pragma pack(pop) +#endif static void LoadBNK1(const std::vector& data) { diff --git a/utils/gen_adldata/file_formats/load_op2.h b/utils/gen_adldata/file_formats/load_op2.h index 30a118f..58d6988 100644 --- a/utils/gen_adldata/file_formats/load_op2.h +++ b/utils/gen_adldata/file_formats/load_op2.h @@ -3,7 +3,16 @@ #include "../progs_cache.h" -#pragma pack(push, 1) +#ifndef _MSC_VER +#define PACKED_STRUCT __attribute__((packed)) +#else +#define PACKED_STRUCT +#endif + +#ifdef _MSC_VER +#pragma pack(push,1) +#endif + struct Doom_OPL2instrument { unsigned char trem_vibr_1; /* OP 1: tremolo/vibrato/sustain/KSR/multi */ @@ -21,8 +30,7 @@ struct Doom_OPL2instrument unsigned char level_2; /* OP 2: output level */ unsigned char unused; short basenote; /* base note offset */ -} __attribute__((packed)); -#pragma pack(pop) +} PACKED_STRUCT; struct Doom_opl_instr { @@ -34,7 +42,11 @@ struct Doom_opl_instr unsigned char finetune; unsigned char note; struct Doom_OPL2instrument patchdata[2]; -} __attribute__((packed)); +} PACKED_STRUCT; + +#ifdef _MSC_VER +#pragma pack(pop) +#endif static bool LoadDoom(const char *fn, unsigned bank, const char *prefix) diff --git a/utils/gen_adldata/ini/ini_processing.cpp b/utils/gen_adldata/ini/ini_processing.cpp index 2f15821..4ef43fc 100644 --- a/utils/gen_adldata/ini/ini_processing.cpp +++ b/utils/gen_adldata/ini/ini_processing.cpp @@ -30,6 +30,7 @@ DEALINGS IN THE SOFTWARE. #include "ini_processing.h" #include +#include #include #include #include @@ -37,6 +38,14 @@ DEALINGS IN THE SOFTWARE. #include #include #ifdef _WIN32 + #ifdef _MSC_VER + #ifdef _WIN64 + typedef __int64 ssize_t; + #else + typedef __int32 ssize_t; + #endif + #define NOMINMAX //Don't override std::min and std::max + #endif #include #endif diff --git a/utils/gen_adldata/ini/ini_processing_variant.h b/utils/gen_adldata/ini/ini_processing_variant.h index 34f999a..3395e4e 100644 --- a/utils/gen_adldata/ini/ini_processing_variant.h +++ b/utils/gen_adldata/ini/ini_processing_variant.h @@ -32,6 +32,8 @@ INI Processor and target value (to be compatible with QSettings) #include #include +#include +#include #include #ifdef INI_PROCESSING_ALLOW_QT_TYPES #include diff --git a/utils/midiplay/adlmidiplay.cpp b/utils/midiplay/adlmidiplay.cpp index 7c8766d..9fb9033 100644 --- a/utils/midiplay/adlmidiplay.cpp +++ b/utils/midiplay/adlmidiplay.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include -- cgit v1.2.3