diff --git a/Application/PlaybackEventController.h b/Application/PlaybackEventController.h index d322198b4..e4bf3f79d 100644 --- a/Application/PlaybackEventController.h +++ b/Application/PlaybackEventController.h @@ -7,13 +7,12 @@ // #import -#import #import "PlaybackController.h" #import "PlaylistEntry.h" @class AudioScrobbler; -@interface PlaybackEventController : NSObject { +@interface PlaybackEventController : NSObject { NSOperationQueue *queue; PlaylistEntry *entry; diff --git a/Application/PlaybackEventController.m b/Application/PlaybackEventController.m index d9dc69eb6..d748e677f 100644 --- a/Application/PlaybackEventController.m +++ b/Application/PlaybackEventController.m @@ -38,7 +38,6 @@ typedef enum [NSNumber numberWithBool:YES], @"enableAudioScrobbler", [NSNumber numberWithBool:NO], @"automaticallyLaunchLastFM", [NSNumber numberWithBool:YES], @"notifications.enable", - [NSNumber numberWithBool:NO], @"notifications.use-growl", [NSNumber numberWithBool:YES], @"notifications.itunes-style", [NSNumber numberWithBool:YES], @"notifications.show-album-art", nil]; @@ -58,7 +57,6 @@ typedef enum scrobbler = [[AudioScrobbler alloc] init]; [[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:self]; - [GrowlApplicationBridge setGrowlDelegate:self]; entry = nil; } @@ -108,17 +106,7 @@ typedef enum if ([AudioScrobbler isRunning]) return; } - if ([defaults boolForKey:@"notifications.use-growl"]) { - // Note: We don't want to send a growl notification on resume. - [GrowlApplicationBridge notifyWithTitle:[pe title] - description:[pe artist] - notificationName:@"Stream Changed" - iconData:[pe albumArtInternal] - priority:0 - isSticky:NO - clickContext:nil]; - } - else { + { NSUserNotification *notif = [[NSUserNotification alloc] init]; notif.title = [pe title]; @@ -194,16 +182,6 @@ typedef enum [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackDidPause:) name:CogPlaybackDidPauseNotficiation object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackDidResume:) name:CogPlaybackDidResumeNotficiation object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackDidStop:) name:CogPlaybackDidStopNotficiation object:nil]; - - [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.enableGrowlMist" options:0 context:nil]; - - [self toggleGrowlMist]; -} - -- (void) toggleGrowlMist -{ - BOOL enableMist = [[NSUserDefaults standardUserDefaults] boolForKey:@"enableGrowlMist"]; - [GrowlApplicationBridge setShouldUseBuiltInNotifications:enableMist]; } - (void) observeValueForKeyPath:(NSString *)keyPath @@ -211,9 +189,6 @@ typedef enum change:(NSDictionary *)change context:(void *)context { - if ([keyPath isEqualToString:@"values.enableGrowlMist"]) { - [self toggleGrowlMist]; - } } - (void)playbackDidBegin:(NSNotification *)notification @@ -240,17 +215,6 @@ typedef enum [queue addOperation:op]; } -- (NSDictionary *) registrationDictionaryForGrowl -{ - NSArray *notifications = [NSArray arrayWithObjects:@"Stream Changed", nil]; - - return [NSDictionary dictionaryWithObjectsAndKeys: - @"Cog", GROWL_APP_NAME, - notifications, GROWL_NOTIFICATIONS_ALL, - notifications, GROWL_NOTIFICATIONS_DEFAULT, - nil]; -} - - (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification { switch (notification.activationType) diff --git a/Cog.entitlements b/Cog.entitlements new file mode 100644 index 000000000..6883e4a27 --- /dev/null +++ b/Cog.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.disable-library-validation + + + diff --git a/Cog.xcodeproj/project.pbxproj b/Cog.xcodeproj/project.pbxproj index b4b4a2e44..6bcfe3077 100644 --- a/Cog.xcodeproj/project.pbxproj +++ b/Cog.xcodeproj/project.pbxproj @@ -9,8 +9,6 @@ /* Begin PBXBuildFile section */ 07D971E60ED1DAA800E7602E /* TagEditorController.m in Sources */ = {isa = PBXBuildFile; fileRef = 07D971E50ED1DAA800E7602E /* TagEditorController.m */; }; 07E18DF30D62B38400BB0E11 /* NSArray+ShuffleUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 07E18DF20D62B38400BB0E11 /* NSArray+ShuffleUtils.m */; }; - 170680630B950158006BA573 /* Growl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 170680620B950158006BA573 /* Growl.framework */; }; - 170680840B950164006BA573 /* Growl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 170680620B950158006BA573 /* Growl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 170B55940D6E5E7B006B9E92 /* StatusImageTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 170B55930D6E5E7B006B9E92 /* StatusImageTransformer.m */; }; 171B57DD0C091F2B00F6AFAF /* flac.icns in Resources */ = {isa = PBXBuildFile; fileRef = 171B57D90C091F2B00F6AFAF /* flac.icns */; }; 171B57DE0C091F2B00F6AFAF /* m4a.icns in Resources */ = {isa = PBXBuildFile; fileRef = 171B57DA0C091F2B00F6AFAF /* m4a.icns */; }; @@ -753,7 +751,6 @@ 83E6B7621816136F00D4576D /* Sparkle.framework in CopyFiles */, 838491881808593200E7332D /* NDHotKey.framework in CopyFiles */, 17F561400C3BD4F30019975C /* CogAudio.framework in CopyFiles */, - 170680840B950164006BA573 /* Growl.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1004,6 +1001,7 @@ 83849170180843B200E7332D /* playDockBadgeColorful.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = playDockBadgeColorful.png; path = Images/playDockBadgeColorful.png; sourceTree = ""; }; 83849171180843B200E7332D /* stopDockBadgeColorful.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = stopDockBadgeColorful.png; path = Images/stopDockBadgeColorful.png; sourceTree = ""; }; 838491791808585C00E7332D /* NDHotKey.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = NDHotKey.xcodeproj; path = Frameworks/NDHotKey/NDHotKey.xcodeproj; sourceTree = ""; }; + 83859520234FEB35004E9946 /* Cog.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Cog.entitlements; sourceTree = ""; }; 8399D4E01805A55000B503B1 /* XmlContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XmlContainer.m; sourceTree = ""; }; 8399D4E11805A55000B503B1 /* XmlContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlContainer.h; sourceTree = ""; }; 83B0669C180D5668008E3612 /* MIDI.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MIDI.xcodeproj; path = Plugins/MIDI/MIDI.xcodeproj; sourceTree = ""; }; @@ -1079,7 +1077,6 @@ 17BB5CFA0B8A86350009ACB1 /* CoreAudio.framework in Frameworks */, 17BB5CFB0B8A86350009ACB1 /* CoreAudioKit.framework in Frameworks */, 17BB5EA60B8A87850009ACB1 /* IOKit.framework in Frameworks */, - 170680630B950158006BA573 /* Growl.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1510,6 +1507,7 @@ 29B97314FDCFA39411CA2CEA /* Cog */ = { isa = PBXGroup; children = ( + 83859520234FEB35004E9946 /* Cog.entitlements */, 080E96DDFE201D6D7F000001 /* Classes */, 29B97315FDCFA39411CA2CEA /* Other Sources */, 29B97317FDCFA39411CA2CEA /* Resources */, @@ -2482,7 +2480,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PROJECT_DIR}/Scripts/genversion.sh\"\nif [ \"${EXPANDED_CODE_SIGN_IDENTITY_NAME}\" != \"\" ]; then codesign --verbose --force --deep -o runtime --sign \"${EXPANDED_CODE_SIGN_IDENTITY_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}\"; fi\n"; + shellScript = "\"${PROJECT_DIR}/Scripts/genversion.sh\"\nif [ \"${EXPANDED_CODE_SIGN_IDENTITY_NAME}\" != \"\" ]; then codesign --verbose --force --deep -o runtime --sign \"${EXPANDED_CODE_SIGN_IDENTITY_NAME}\" \"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/AutoUpdate.app\"; fi\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -2823,13 +2821,17 @@ C01FCF4B08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_ENTITLEMENTS = Cog.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_SEARCH_PATHS = ThirdParty/Frameworks; + FRAMEWORK_SEARCH_PATHS = ( + ThirdParty/Frameworks, + "$(PROJECT_DIR)/ThirdParty/Frameworks", + ); GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; GCC_OPTIMIZATION_LEVEL = 0; @@ -2860,12 +2862,16 @@ C01FCF4C08A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_ENTITLEMENTS = Cog.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; - FRAMEWORK_SEARCH_PATHS = ThirdParty/Frameworks; + FRAMEWORK_SEARCH_PATHS = ( + ThirdParty/Frameworks, + "$(PROJECT_DIR)/ThirdParty/Frameworks", + ); GCC_ENABLE_OBJC_EXCEPTIONS = YES; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; diff --git a/Preferences/General/Base.lproj/Preferences.xib b/Preferences/General/Base.lproj/Preferences.xib index 160873274..2b9a6c667 100644 --- a/Preferences/General/Base.lproj/Preferences.xib +++ b/Preferences/General/Base.lproj/Preferences.xib @@ -1,8 +1,8 @@ - + - + @@ -33,11 +33,11 @@ - + - + @@ -45,11 +45,11 @@ - + - + @@ -57,11 +57,11 @@ - + - + @@ -69,7 +69,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -87,7 +87,7 @@ - + @@ -96,11 +96,11 @@ - + - + @@ -108,7 +108,7 @@ - + @@ -118,12 +118,13 @@ + - + @@ -132,12 +133,12 @@ - + - + @@ -153,7 +154,7 @@ - - - - + - - + @@ -333,7 +334,7 @@ - + @@ -342,12 +343,12 @@ - + - + @@ -363,12 +364,12 @@ - + - + @@ -384,7 +385,7 @@ - - - - @@ -453,7 +443,7 @@ - - + @@ -490,7 +480,7 @@ - + @@ -507,7 +497,7 @@ - + @@ -516,7 +506,7 @@ - + @@ -525,12 +515,12 @@ - + - + @@ -546,7 +536,7 @@ - + @@ -555,12 +545,12 @@ - + - + @@ -581,12 +571,12 @@ - + - + diff --git a/Preferences/General/General.xcodeproj/project.pbxproj b/Preferences/General/General.xcodeproj/project.pbxproj index ed6694cc1..8b86fc611 100644 --- a/Preferences/General/General.xcodeproj/project.pbxproj +++ b/Preferences/General/General.xcodeproj/project.pbxproj @@ -354,7 +354,7 @@ TargetAttributes = { 8D5B49AC048680CD000E48DA = { DevelopmentTeam = N6E749HJ2X; - ProvisioningStyle = Manual; + ProvisioningStyle = Automatic; }; }; }; @@ -496,8 +496,11 @@ 1DEB913B08733D840010E9CD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = ""; GCC_DYNAMIC_NO_PIC = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; @@ -507,6 +510,7 @@ INSTALL_PATH = "$(HOME)/Library/Bundles"; PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cog.preferences; PRODUCT_NAME = General; + PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; WRAPPER_EXTENSION = preferencePane; ZERO_LINK = YES; @@ -516,7 +520,10 @@ 1DEB913C08733D840010E9CD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = ""; GCC_MODEL_TUNING = G5; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = General_Prefix.pch; @@ -524,6 +531,7 @@ INSTALL_PATH = "$(HOME)/Library/Bundles"; PRODUCT_BUNDLE_IDENTIFIER = org.cogx.cog.preferences; PRODUCT_NAME = General; + PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; WRAPPER_EXTENSION = preferencePane; }; diff --git a/Preferences/General/en.lproj/Preferences.strings b/Preferences/General/en.lproj/Preferences.strings index 90d2f0b1d..a8ed1973a 100644 --- a/Preferences/General/en.lproj/Preferences.strings +++ b/Preferences/General/en.lproj/Preferences.strings @@ -101,9 +101,6 @@ /* Class = "NSTextFieldCell"; title = "MIDI Flavor:"; ObjectID = "FQF-vJ-hBx"; */ "FQF-vJ-hBx.title" = "MIDI Flavor:"; -/* Class = "NSButtonCell"; title = "Use Growl"; ObjectID = "GbM-Kf-xzx"; */ -"GbM-Kf-xzx.title" = "Use Growl"; - /* Class = "NSButtonCell"; title = "Colorful dock icons"; ObjectID = "GdX-5e-NeU"; */ "GdX-5e-NeU.title" = "Colorful dock icons"; diff --git a/Preferences/General/es.lproj/Preferences.strings b/Preferences/General/es.lproj/Preferences.strings index 90d2f0b1d..a8ed1973a 100644 --- a/Preferences/General/es.lproj/Preferences.strings +++ b/Preferences/General/es.lproj/Preferences.strings @@ -101,9 +101,6 @@ /* Class = "NSTextFieldCell"; title = "MIDI Flavor:"; ObjectID = "FQF-vJ-hBx"; */ "FQF-vJ-hBx.title" = "MIDI Flavor:"; -/* Class = "NSButtonCell"; title = "Use Growl"; ObjectID = "GbM-Kf-xzx"; */ -"GbM-Kf-xzx.title" = "Use Growl"; - /* Class = "NSButtonCell"; title = "Colorful dock icons"; ObjectID = "GdX-5e-NeU"; */ "GdX-5e-NeU.title" = "Colorful dock icons"; diff --git a/ThirdParty/BASS/bass.h b/ThirdParty/BASS/bass.h index 1f48d77f6..388d40689 100644 --- a/ThirdParty/BASS/bass.h +++ b/ThirdParty/BASS/bass.h @@ -1,6 +1,6 @@ /* BASS 2.4 C/C++ header file - Copyright (c) 1999-2014 Un4seen Developments Ltd. + Copyright (c) 1999-2019 Un4seen Developments Ltd. See the BASS.CHM file for more detailed documentation */ @@ -84,7 +84,7 @@ typedef DWORD HPLUGIN; // Plugin handle #define BASS_ERROR_NONET 32 // no internet connection could be opened #define BASS_ERROR_CREATE 33 // couldn't create the file #define BASS_ERROR_NOFX 34 // effects are not available -#define BASS_ERROR_NOTAVAIL 37 // requested data is not available +#define BASS_ERROR_NOTAVAIL 37 // requested data/action is not available #define BASS_ERROR_DECODE 38 // the channel is/isn't a "decoding channel" #define BASS_ERROR_DX 39 // a sufficient DirectX version is not installed #define BASS_ERROR_TIMEOUT 40 // connection timedout @@ -117,6 +117,7 @@ typedef DWORD HPLUGIN; // Plugin handle #define BASS_CONFIG_VERIFY 23 #define BASS_CONFIG_UPDATETHREADS 24 #define BASS_CONFIG_DEV_BUFFER 27 +#define BASS_CONFIG_REC_LOOPBACK 28 #define BASS_CONFIG_VISTA_TRUEPOS 30 #define BASS_CONFIG_IOS_MIXAUDIO 34 #define BASS_CONFIG_DEV_DEFAULT 36 @@ -135,22 +136,36 @@ typedef DWORD HPLUGIN; // Plugin handle #define BASS_CONFIG_DEV_NONSTOP 50 #define BASS_CONFIG_IOS_NOCATEGORY 51 #define BASS_CONFIG_VERIFY_NET 52 +#define BASS_CONFIG_DEV_PERIOD 53 +#define BASS_CONFIG_FLOAT 54 +#define BASS_CONFIG_NET_SEEK 56 +#define BASS_CONFIG_AM_DISABLE 58 +#define BASS_CONFIG_NET_PLAYLIST_DEPTH 59 +#define BASS_CONFIG_NET_PREBUF_WAIT 60 +#define BASS_CONFIG_WASAPI_PERSIST 65 +#define BASS_CONFIG_REC_WASAPI 66 // BASS_SetConfigPtr options #define BASS_CONFIG_NET_AGENT 16 #define BASS_CONFIG_NET_PROXY 17 #define BASS_CONFIG_IOS_NOTIFY 46 +#define BASS_CONFIG_LIBSSL 64 // BASS_Init flags -#define BASS_DEVICE_8BITS 1 // 8 bit resolution, else 16 bit -#define BASS_DEVICE_MONO 2 // mono, else stereo +#define BASS_DEVICE_8BITS 1 // 8 bit +#define BASS_DEVICE_MONO 2 // mono #define BASS_DEVICE_3D 4 // enable 3D functionality +#define BASS_DEVICE_16BITS 8 // limit output to 16 bit #define BASS_DEVICE_LATENCY 0x100 // calculate device latency (BASS_INFO struct) #define BASS_DEVICE_CPSPEAKERS 0x400 // detect speakers via Windows control panel #define BASS_DEVICE_SPEAKERS 0x800 // force enabling of speaker assignment #define BASS_DEVICE_NOSPEAKER 0x1000 // ignore speaker arrangement #define BASS_DEVICE_DMIX 0x2000 // use ALSA "dmix" plugin #define BASS_DEVICE_FREQ 0x4000 // set device sample rate +#define BASS_DEVICE_STEREO 0x8000 // limit output to stereo +#define BASS_DEVICE_HOG 0x10000 // hog/exclusive mode +#define BASS_DEVICE_AUDIOTRACK 0x20000 // use AudioTrack output +#define BASS_DEVICE_DSOUND 0x40000 // use DirectSound output // DirectSound interfaces (for use with BASS_GetDSoundObject) #define BASS_OBJECT_DS 1 // IDirectSound @@ -172,6 +187,7 @@ typedef struct { #define BASS_DEVICE_ENABLED 1 #define BASS_DEVICE_DEFAULT 2 #define BASS_DEVICE_INIT 4 +#define BASS_DEVICE_LOOPBACK 8 #define BASS_DEVICE_TYPE_MASK 0xff000000 #define BASS_DEVICE_TYPE_NETWORK 0x01000000 @@ -252,7 +268,7 @@ typedef struct { DWORD flags; // BASS_SAMPLE_xxx flags DWORD length; // length (in bytes) DWORD max; // maximum simultaneous playbacks - DWORD origres; // original resolution bits + DWORD origres; // original resolution DWORD chans; // number of channels DWORD mingap; // minimum gap (ms) between creating channels DWORD mode3d; // BASS_3DMODE_xxx mode @@ -266,7 +282,7 @@ typedef struct { } BASS_SAMPLE; #define BASS_SAMPLE_8BITS 1 // 8 bit -#define BASS_SAMPLE_FLOAT 256 // 32-bit floating-point +#define BASS_SAMPLE_FLOAT 256 // 32 bit floating-point #define BASS_SAMPLE_MONO 2 // mono #define BASS_SAMPLE_LOOP 4 // looped #define BASS_SAMPLE_3D 8 // 3D functionality @@ -279,13 +295,15 @@ typedef struct { #define BASS_SAMPLE_OVER_DIST 0x30000 // override furthest from listener (3D only) #define BASS_STREAM_PRESCAN 0x20000 // enable pin-point seeking/length (MP3/MP2/MP1) -#define BASS_MP3_SETPOS BASS_STREAM_PRESCAN #define BASS_STREAM_AUTOFREE 0x40000 // automatically free the stream when it stop/ends #define BASS_STREAM_RESTRATE 0x80000 // restrict the download rate of internet file streams #define BASS_STREAM_BLOCK 0x100000 // download/play internet file stream in small blocks #define BASS_STREAM_DECODE 0x200000 // don't play the stream, only decode (BASS_ChannelGetData) #define BASS_STREAM_STATUS 0x800000 // give server status info (HTTP/ICY tags) in DOWNLOADPROC +#define BASS_MP3_IGNOREDELAY 0x200 // ignore LAME/Xing/VBRI/iTunes delay & padding info +#define BASS_MP3_SETPOS BASS_STREAM_PRESCAN + #define BASS_MUSIC_FLOAT BASS_SAMPLE_FLOAT #define BASS_MUSIC_MONO BASS_SAMPLE_MONO #define BASS_MUSIC_LOOP BASS_SAMPLE_LOOP @@ -299,6 +317,7 @@ typedef struct { #define BASS_MUSIC_RAMPS 0x400 // sensitive ramping #define BASS_MUSIC_SURROUND 0x800 // surround sound #define BASS_MUSIC_SURROUND2 0x1000 // surround sound (mode 2) +#define BASS_MUSIC_FT2PAN 0x2000 // apply FastTracker 2 panning to XM files #define BASS_MUSIC_FT2MOD 0x2000 // play .MOD as FastTracker 2 does #define BASS_MUSIC_PT1MOD 0x4000 // play .MOD as ProTracker 1 does #define BASS_MUSIC_NONINTER 0x10000 // non-interpolated sample mixing @@ -351,6 +370,8 @@ typedef struct { const char *filename; // filename } BASS_CHANNELINFO; +#define BASS_ORIGRES_FLOAT 0x10000 + // BASS_CHANNELINFO types #define BASS_CTYPE_SAMPLE 1 #define BASS_CTYPE_RECORD 2 @@ -362,6 +383,9 @@ typedef struct { #define BASS_CTYPE_STREAM_AIFF 0x10006 #define BASS_CTYPE_STREAM_CA 0x10007 #define BASS_CTYPE_STREAM_MF 0x10008 +#define BASS_CTYPE_STREAM_AM 0x10009 +#define BASS_CTYPE_STREAM_DUMMY 0x18000 +#define BASS_CTYPE_STREAM_DEVICE 0x18001 #define BASS_CTYPE_STREAM_WAV 0x40000 // WAVE flag, LOWORD=codec #define BASS_CTYPE_STREAM_WAV_PCM 0x50001 #define BASS_CTYPE_STREAM_WAV_FLOAT 0x50003 @@ -479,14 +503,15 @@ handle : The stream that needs writing buffer : Buffer to write the samples in length : Number of bytes to write user : The 'user' parameter value given when calling BASS_StreamCreate -RETURN : Number of bytes written. Set the BASS_STREAMPROC_END flag to end - the stream. */ +RETURN : Number of bytes written. Set the BASS_STREAMPROC_END flag to end the stream. */ #define BASS_STREAMPROC_END 0x80000000 // end of user stream flag // special STREAMPROCs #define STREAMPROC_DUMMY (STREAMPROC*)0 // "dummy" stream #define STREAMPROC_PUSH (STREAMPROC*)-1 // push stream +#define STREAMPROC_DEVICE (STREAMPROC*)-2 // device mix stream +#define STREAMPROC_DEVICE_3D (STREAMPROC*)-3 // device 3D mix stream // BASS_StreamCreateFileUser file systems #define STREAMFILE_NOBUFFER 0 @@ -520,6 +545,7 @@ typedef struct { #define BASS_FILEPOS_SOCKET 6 #define BASS_FILEPOS_ASYNCBUF 7 #define BASS_FILEPOS_SIZE 8 +#define BASS_FILEPOS_BUFFERING 9 typedef void (CALLBACK DOWNLOADPROC)(const void *buffer, DWORD length, void *user); /* Internet stream download callback function. @@ -540,8 +566,10 @@ user : The 'user' parameter value given when calling BASS_StreamCreateURL */ #define BASS_SYNC_MUSICINST 1 #define BASS_SYNC_MUSICFX 3 #define BASS_SYNC_OGG_CHANGE 12 -#define BASS_SYNC_MIXTIME 0x40000000 // FLAG: sync at mixtime, else at playtime -#define BASS_SYNC_ONETIME 0x80000000 // FLAG: sync only once, else continuously +#define BASS_SYNC_DEV_FAIL 14 +#define BASS_SYNC_DEV_FORMAT 15 +#define BASS_SYNC_MIXTIME 0x40000000 // flag: sync at mixtime, else at playtime +#define BASS_SYNC_ONETIME 0x80000000 // flag: sync only once, else continuously typedef void (CALLBACK SYNCPROC)(HSYNC handle, DWORD channel, DWORD data, void *user); /* Sync callback function. NOTE: a sync callback function should be very @@ -572,10 +600,11 @@ user : The 'user' parameter value given when calling BASS_RecordStart RETURN : TRUE = continue recording, FALSE = stop */ // BASS_ChannelIsActive return values -#define BASS_ACTIVE_STOPPED 0 -#define BASS_ACTIVE_PLAYING 1 -#define BASS_ACTIVE_STALLED 2 -#define BASS_ACTIVE_PAUSED 3 +#define BASS_ACTIVE_STOPPED 0 +#define BASS_ACTIVE_PLAYING 1 +#define BASS_ACTIVE_STALLED 2 +#define BASS_ACTIVE_PAUSED 3 +#define BASS_ACTIVE_PAUSED_DEVICE 4 // Channel attributes #define BASS_ATTRIB_FREQ 1 @@ -588,6 +617,9 @@ RETURN : TRUE = continue recording, FALSE = stop */ #define BASS_ATTRIB_SRC 8 #define BASS_ATTRIB_NET_RESUME 9 #define BASS_ATTRIB_SCANINFO 10 +#define BASS_ATTRIB_NORAMP 11 +#define BASS_ATTRIB_BITRATE 12 +#define BASS_ATTRIB_BUFFER 13 #define BASS_ATTRIB_MUSIC_AMPLIFY 0x100 #define BASS_ATTRIB_MUSIC_PANSEP 0x101 #define BASS_ATTRIB_MUSIC_PSCALER 0x102 @@ -598,6 +630,9 @@ RETURN : TRUE = continue recording, FALSE = stop */ #define BASS_ATTRIB_MUSIC_VOL_CHAN 0x200 // + channel # #define BASS_ATTRIB_MUSIC_VOL_INST 0x300 // + instrument # +// BASS_ChannelSlideAttribute flags +#define BASS_SLIDE_LOG 0x1000000 + // BASS_ChannelGetData flags #define BASS_DATA_AVAILABLE 0 // query how much data is buffered #define BASS_DATA_FIXED 0x20000000 // flag: return 8.24 fixed-point data @@ -609,15 +644,18 @@ RETURN : TRUE = continue recording, FALSE = stop */ #define BASS_DATA_FFT4096 0x80000004 // 4096 FFT #define BASS_DATA_FFT8192 0x80000005 // 8192 FFT #define BASS_DATA_FFT16384 0x80000006 // 16384 FFT +#define BASS_DATA_FFT32768 0x80000007 // 32768 FFT #define BASS_DATA_FFT_INDIVIDUAL 0x10 // FFT flag: FFT for each channel, else all combined #define BASS_DATA_FFT_NOWINDOW 0x20 // FFT flag: no Hanning window #define BASS_DATA_FFT_REMOVEDC 0x40 // FFT flag: pre-remove DC bias #define BASS_DATA_FFT_COMPLEX 0x80 // FFT flag: return complex data +#define BASS_DATA_FFT_NYQUIST 0x100 // FFT flag: return extra Nyquist value // BASS_ChannelGetLevelEx flags #define BASS_LEVEL_MONO 1 #define BASS_LEVEL_STEREO 2 #define BASS_LEVEL_RMS 4 +#define BASS_LEVEL_VOLPAN 8 // BASS_ChannelGetTags types : what's returned #define BASS_TAG_ID3 0 // ID3v1 tags : TAG_ID3 structure @@ -628,19 +666,25 @@ RETURN : TRUE = continue recording, FALSE = stop */ #define BASS_TAG_META 5 // ICY metadata : ANSI string #define BASS_TAG_APE 6 // APE tags : series of null-terminated UTF-8 strings #define BASS_TAG_MP4 7 // MP4/iTunes metadata : series of null-terminated UTF-8 strings +#define BASS_TAG_WMA 8 // WMA tags : series of null-terminated UTF-8 strings #define BASS_TAG_VENDOR 9 // OGG encoder : UTF-8 string #define BASS_TAG_LYRICS3 10 // Lyric3v2 tag : ASCII string #define BASS_TAG_CA_CODEC 11 // CoreAudio codec info : TAG_CA_CODEC structure #define BASS_TAG_MF 13 // Media Foundation tags : series of null-terminated UTF-8 strings #define BASS_TAG_WAVEFORMAT 14 // WAVE format : WAVEFORMATEEX structure +#define BASS_TAG_AM_MIME 15 // Android Media MIME type : ASCII string +#define BASS_TAG_AM_NAME 16 // Android Media codec name : ASCII string #define BASS_TAG_RIFF_INFO 0x100 // RIFF "INFO" tags : series of null-terminated ANSI strings #define BASS_TAG_RIFF_BEXT 0x101 // RIFF/BWF "bext" tags : TAG_BEXT structure #define BASS_TAG_RIFF_CART 0x102 // RIFF/BWF "cart" tags : TAG_CART structure #define BASS_TAG_RIFF_DISP 0x103 // RIFF "DISP" text tag : ANSI string +#define BASS_TAG_RIFF_CUE 0x104 // RIFF "cue " chunk : TAG_CUE structure +#define BASS_TAG_RIFF_SMPL 0x105 // RIFF "smpl" chunk : TAG_SMPL structure #define BASS_TAG_APE_BINARY 0x1000 // + index #, binary APE tag : TAG_APE_BINARY structure #define BASS_TAG_MUSIC_NAME 0x10000 // MOD music name : ANSI string #define BASS_TAG_MUSIC_MESSAGE 0x10001 // MOD message : ANSI string #define BASS_TAG_MUSIC_ORDERS 0x10002 // MOD order list : BYTE array of pattern numbers +#define BASS_TAG_MUSIC_AUTH 0x10003 // MOD author : UTF-8 string #define BASS_TAG_MUSIC_INST 0x10100 // + instrument #, MOD instrument name : ANSI string #define BASS_TAG_MUSIC_SAMPLE 0x10300 // + sample #, MOD sample name : ANSI string @@ -724,6 +768,60 @@ typedef struct char TagText[1]; // free form text for scripts or tags #endif } TAG_CART; + +// RIFF "cue " tag structures +typedef struct +{ + DWORD dwName; + DWORD dwPosition; + DWORD fccChunk; + DWORD dwChunkStart; + DWORD dwBlockStart; + DWORD dwSampleOffset; +} TAG_CUE_POINT; + +typedef struct +{ + DWORD dwCuePoints; +#if defined(__GNUC__) && __GNUC__<3 + TAG_CUE_POINT CuePoints[0]; +#elif 1 // change to 0 if compiler fails the following line + TAG_CUE_POINT CuePoints[]; +#else + TAG_CUE_POINT CuePoints[1]; +#endif +} TAG_CUE; + +// RIFF "smpl" tag structures +typedef struct +{ + DWORD dwIdentifier; + DWORD dwType; + DWORD dwStart; + DWORD dwEnd; + DWORD dwFraction; + DWORD dwPlayCount; +} TAG_SMPL_LOOP; + +typedef struct +{ + DWORD dwManufacturer; + DWORD dwProduct; + DWORD dwSamplePeriod; + DWORD dwMIDIUnityNote; + DWORD dwMIDIPitchFraction; + DWORD dwSMPTEFormat; + DWORD dwSMPTEOffset; + DWORD cSampleLoops; + DWORD cbSamplerData; +#if defined(__GNUC__) && __GNUC__<3 + TAG_SMPL_LOOP SampleLoops[0]; +#elif 1 // change to 0 if compiler fails the following line + TAG_SMPL_LOOP SampleLoops[]; +#else + TAG_SMPL_LOOP SampleLoops[1]; +#endif +} TAG_SMPL; #ifdef _MSC_VER #pragma warning(pop) #endif @@ -756,11 +854,16 @@ typedef const WAVEFORMATEX *LPCWAVEFORMATEX; #define BASS_POS_BYTE 0 // byte position #define BASS_POS_MUSIC_ORDER 1 // order.row position, MAKELONG(order,row) #define BASS_POS_OGG 3 // OGG bitstream number +#define BASS_POS_RESET 0x2000000 // flag: reset user file buffers +#define BASS_POS_RELATIVE 0x4000000 // flag: seek relative to the current position #define BASS_POS_INEXACT 0x8000000 // flag: allow seeking to inexact position #define BASS_POS_DECODE 0x10000000 // flag: get the decoding (not playing) position #define BASS_POS_DECODETO 0x20000000 // flag: decode to the position instead of seeking #define BASS_POS_SCAN 0x40000000 // flag: scan to the position +// BASS_ChannelSetDevice/GetDevice option +#define BASS_NODEVICE 0x20000 + // BASS_RecordSetInput flags #define BASS_INPUT_OFF 0x10000 #define BASS_INPUT_ON 0x20000 @@ -778,19 +881,17 @@ typedef const WAVEFORMATEX *LPCWAVEFORMATEX; #define BASS_INPUT_TYPE_AUX 0x09000000 #define BASS_INPUT_TYPE_ANALOG 0x0a000000 -// DX8 effect types, use with BASS_ChannelSetFX -enum -{ - BASS_FX_DX8_CHORUS, - BASS_FX_DX8_COMPRESSOR, - BASS_FX_DX8_DISTORTION, - BASS_FX_DX8_ECHO, - BASS_FX_DX8_FLANGER, - BASS_FX_DX8_GARGLE, - BASS_FX_DX8_I3DL2REVERB, - BASS_FX_DX8_PARAMEQ, - BASS_FX_DX8_REVERB -}; +// BASS_ChannelSetFX effect types +#define BASS_FX_DX8_CHORUS 0 +#define BASS_FX_DX8_COMPRESSOR 1 +#define BASS_FX_DX8_DISTORTION 2 +#define BASS_FX_DX8_ECHO 3 +#define BASS_FX_DX8_FLANGER 4 +#define BASS_FX_DX8_GARGLE 5 +#define BASS_FX_DX8_I3DL2REVERB 6 +#define BASS_FX_DX8_PARAMEQ 7 +#define BASS_FX_DX8_REVERB 8 +#define BASS_FX_VOLUME 9 typedef struct { float fWetDryMix; @@ -876,6 +977,13 @@ typedef struct { #define BASS_DX8_PHASE_90 3 #define BASS_DX8_PHASE_180 4 +typedef struct { + float fTarget; + float fCurrent; + float fTime; + DWORD lCurve; +} BASS_FX_VOLUME_PARAM; + typedef void (CALLBACK IOSNOTIFYPROC)(DWORD status); /* iOS notification callback function. status : The notification (BASS_IOSNOTIFY_xxx) */ @@ -907,6 +1015,7 @@ float BASSDEF(BASS_GetCPU)(); BOOL BASSDEF(BASS_Start)(); BOOL BASSDEF(BASS_Stop)(); BOOL BASSDEF(BASS_Pause)(); +BOOL BASSDEF(BASS_IsStarted)(); BOOL BASSDEF(BASS_SetVolume)(float volume); float BASSDEF(BASS_GetVolume)(); @@ -999,6 +1108,7 @@ BOOL BASSDEF(BASS_ChannelRemoveFX)(DWORD handle, HFX fx); BOOL BASSDEF(BASS_FXSetParameters)(HFX handle, const void *params); BOOL BASSDEF(BASS_FXGetParameters)(HFX handle, void *params); BOOL BASSDEF(BASS_FXReset)(HFX handle); +BOOL BASSDEF(BASS_FXSetPriority)(HFX handle, int priority); #ifdef __cplusplus } @@ -1028,6 +1138,11 @@ static inline HSTREAM BASS_StreamCreateURL(const WCHAR *url, DWORD offset, DWORD { return BASS_StreamCreateURL((const char*)url, offset, flags|BASS_UNICODE, proc, user); } + +static inline BOOL BASS_SetConfigPtr(DWORD option, const WCHAR *value) +{ + return BASS_SetConfigPtr(option|BASS_UNICODE, (const void*)value); +} #endif #endif diff --git a/ThirdParty/BASS/bassmidi.h b/ThirdParty/BASS/bassmidi.h index 387b1a4a4..86b8a5007 100644 --- a/ThirdParty/BASS/bassmidi.h +++ b/ThirdParty/BASS/bassmidi.h @@ -1,6 +1,6 @@ /* BASSMIDI 2.4 C/C++ header file - Copyright (c) 2006-2014 Un4seen Developments Ltd. + Copyright (c) 2006-2018 Un4seen Developments Ltd. See the BASSMIDI.CHM file for more detailed documentation */ @@ -24,6 +24,9 @@ extern "C" { typedef DWORD HSOUNDFONT; // soundfont handle +// Additional error codes returned by BASS_ErrorGetCode +#define BASS_ERROR_MIDI_INCLUDE 7000 // SFZ include file could not be opened + // Additional BASS_SetConfig options #define BASS_CONFIG_MIDI_COMPACT 0x10400 #define BASS_CONFIG_MIDI_VOICES 0x10401 @@ -57,6 +60,8 @@ typedef DWORD HSOUNDFONT; // soundfont handle #define BASS_MIDI_FONT_MEM 0x10000 #define BASS_MIDI_FONT_MMAP 0x20000 #define BASS_MIDI_FONT_XGDRUMS 0x40000 +#define BASS_MIDI_FONT_NOFX 0x80000 +#define BASS_MIDI_FONT_LINATTMOD 0x100000 typedef struct { HSOUNDFONT font; // soundfont @@ -102,7 +107,8 @@ typedef struct { #define BASS_MIDI_MARK_COPY 6 // copyright notice #define BASS_MIDI_MARK_TRACK 7 // track name #define BASS_MIDI_MARK_INST 8 // instrument name -#define BASS_MIDI_MARK_TICK 0x10000 // FLAG: get position in ticks (otherwise bytes) +#define BASS_MIDI_MARK_TRACKSTART 9 // track start (SMF2) +#define BASS_MIDI_MARK_TICK 0x10000 // flag: get position in ticks (otherwise bytes) // MIDI events #define MIDI_EVENT_NOTE 1 @@ -169,6 +175,7 @@ typedef struct { #define MIDI_EVENT_CHANPRES_PITCH 66 #define MIDI_EVENT_CHANPRES_FILTER 67 #define MIDI_EVENT_CHANPRES_VOLUME 68 +#define MIDI_EVENT_MOD_VIBRATO 69 #define MIDI_EVENT_MODRANGE 69 #define MIDI_EVENT_BANK_LSB 70 #define MIDI_EVENT_KEYPRES 71 @@ -176,13 +183,21 @@ typedef struct { #define MIDI_EVENT_KEYPRES_PITCH 73 #define MIDI_EVENT_KEYPRES_FILTER 74 #define MIDI_EVENT_KEYPRES_VOLUME 75 +#define MIDI_EVENT_SOSTENUTO 76 +#define MIDI_EVENT_MOD_PITCH 77 +#define MIDI_EVENT_MOD_FILTER 78 +#define MIDI_EVENT_MOD_VOLUME 79 #define MIDI_EVENT_MIXLEVEL 0x10000 #define MIDI_EVENT_TRANSPOSE 0x10001 #define MIDI_EVENT_SYSTEMEX 0x10002 +#define MIDI_EVENT_SPEED 0x10004 #define MIDI_EVENT_END 0 #define MIDI_EVENT_END_TRACK 0x10003 +#define MIDI_EVENT_NOTES 0x20000 +#define MIDI_EVENT_VOICES 0x20001 + #define MIDI_SYSTEM_DEFAULT 0 #define MIDI_SYSTEM_GM1 1 #define MIDI_SYSTEM_GM2 2 @@ -200,8 +215,11 @@ typedef struct { // BASS_MIDI_StreamEvents modes #define BASS_MIDI_EVENTS_STRUCT 0 // BASS_MIDI_EVENT structures #define BASS_MIDI_EVENTS_RAW 0x10000 // raw MIDI event data -#define BASS_MIDI_EVENTS_SYNC 0x1000000 // FLAG: trigger event syncs -#define BASS_MIDI_EVENTS_NORSTATUS 0x2000000 // FLAG: no running status +#define BASS_MIDI_EVENTS_SYNC 0x1000000 // flag: trigger event syncs +#define BASS_MIDI_EVENTS_NORSTATUS 0x2000000 // flag: no running status +#define BASS_MIDI_EVENTS_CANCEL 0x4000000 // flag: cancel pending events +#define BASS_MIDI_EVENTS_TIME 0x8000000 // flag: delta-time info is present +#define BASS_MIDI_EVENTS_ABSTIME 0x10000000 // flag: absolute time info is present // BASS_MIDI_StreamGetChannel special channels #define BASS_MIDI_CHAN_CHORUS (DWORD)-1 @@ -217,6 +235,9 @@ typedef struct { #define BASS_ATTRIB_MIDI_CHANS 0x12002 #define BASS_ATTRIB_MIDI_VOICES 0x12003 #define BASS_ATTRIB_MIDI_VOICES_ACTIVE 0x12004 +#define BASS_ATTRIB_MIDI_STATE 0x12005 +#define BASS_ATTRIB_MIDI_SRC 0x12006 +#define BASS_ATTRIB_MIDI_KILL 0x12007 #define BASS_ATTRIB_MIDI_TRACK_VOL 0x12100 // + track # // Additional tag type @@ -225,6 +246,15 @@ typedef struct { // BASS_ChannelGetLength/GetPosition/SetPosition mode #define BASS_POS_MIDI_TICK 2 // tick position +typedef BOOL (CALLBACK MIDIFILTERPROC)(HSTREAM handle, DWORD track, BASS_MIDI_EVENT *event, BOOL seeking, void *user); +/* Event filtering callback function. +handle : MIDI stream handle +track : Track containing the event +event : The event +seeking: TRUE = the event is being processed while seeking, FALSE = it is being played +user : The 'user' parameter value given when calling BASS_MIDI_StreamSetFilter +RETURN : TRUE = process the event, FALSE = drop the event */ + // BASS_MIDI_FontPack flags #define BASS_MIDI_PACK_NOHEAD 1 // don't send a WAV header to the encoder #define BASS_MIDI_PACK_16BIT 2 // discard low 8 bits of 24-bit sample data @@ -236,7 +266,7 @@ typedef struct { } BASS_MIDI_DEVICEINFO; typedef void (CALLBACK MIDIINPROC)(DWORD device, double time, const BYTE *buffer, DWORD length, void *user); -/* User MIDI input callback function. +/* MIDI input callback function. device : MIDI input device time : Timestamp buffer : Buffer containing MIDI data @@ -257,7 +287,10 @@ BOOL BASSMIDIDEF(BASS_MIDI_StreamEvent)(HSTREAM handle, DWORD chan, DWORD event, DWORD BASSMIDIDEF(BASS_MIDI_StreamEvents)(HSTREAM handle, DWORD mode, const void *events, DWORD length); DWORD BASSMIDIDEF(BASS_MIDI_StreamGetEvent)(HSTREAM handle, DWORD chan, DWORD event); DWORD BASSMIDIDEF(BASS_MIDI_StreamGetEvents)(HSTREAM handle, int track, DWORD filter, BASS_MIDI_EVENT *events); +DWORD BASSMIDIDEF(BASS_MIDI_StreamGetEventsEx)(HSTREAM handle, int track, DWORD filter, BASS_MIDI_EVENT *events, DWORD start, DWORD count); +BOOL BASSMIDIDEF(BASS_MIDI_StreamGetPreset)(HSTREAM handle, DWORD chan, BASS_MIDI_FONT *font); HSTREAM BASSMIDIDEF(BASS_MIDI_StreamGetChannel)(HSTREAM handle, DWORD chan); +BOOL BASSMIDIDEF(BASS_MIDI_StreamSetFilter)(HSTREAM handle, BOOL seeking, MIDIFILTERPROC *proc, void *user); HSOUNDFONT BASSMIDIDEF(BASS_MIDI_FontInit)(const void *file, DWORD flags); HSOUNDFONT BASSMIDIDEF(BASS_MIDI_FontInitUser)(const BASS_FILEPROCS *procs, void *user, DWORD flags); @@ -273,6 +306,8 @@ BOOL BASSMIDIDEF(BASS_MIDI_FontUnpack)(HSOUNDFONT handle, const void *outfile, D BOOL BASSMIDIDEF(BASS_MIDI_FontSetVolume)(HSOUNDFONT handle, float volume); float BASSMIDIDEF(BASS_MIDI_FontGetVolume)(HSOUNDFONT handle); +DWORD BASSMIDIDEF(BASS_MIDI_ConvertEvents)(const BYTE *data, DWORD length, BASS_MIDI_EVENT *events, DWORD count, DWORD flags); + BOOL BASSMIDIDEF(BASS_MIDI_InGetDeviceInfo)(DWORD device, BASS_MIDI_DEVICEINFO *info); BOOL BASSMIDIDEF(BASS_MIDI_InInit)(DWORD device, MIDIINPROC *proc, void *user); BOOL BASSMIDIDEF(BASS_MIDI_InFree)(DWORD device); diff --git a/ThirdParty/BASS/libbass.dylib b/ThirdParty/BASS/libbass.dylib index 0cebc3bf1..b5158bb38 100644 Binary files a/ThirdParty/BASS/libbass.dylib and b/ThirdParty/BASS/libbass.dylib differ diff --git a/ThirdParty/BASS/libbass_mpc.dylib b/ThirdParty/BASS/libbass_mpc.dylib index eea5c7d5b..df14ca80b 100644 Binary files a/ThirdParty/BASS/libbass_mpc.dylib and b/ThirdParty/BASS/libbass_mpc.dylib differ diff --git a/ThirdParty/BASS/libbassflac.dylib b/ThirdParty/BASS/libbassflac.dylib index ba342ab1f..1a6f1a45b 100644 Binary files a/ThirdParty/BASS/libbassflac.dylib and b/ThirdParty/BASS/libbassflac.dylib differ diff --git a/ThirdParty/BASS/libbassmidi.dylib b/ThirdParty/BASS/libbassmidi.dylib index be0233d47..934640cb2 100644 Binary files a/ThirdParty/BASS/libbassmidi.dylib and b/ThirdParty/BASS/libbassmidi.dylib differ diff --git a/ThirdParty/BASS/libbassopus.dylib b/ThirdParty/BASS/libbassopus.dylib index dd75a5121..647cff2dc 100644 Binary files a/ThirdParty/BASS/libbassopus.dylib and b/ThirdParty/BASS/libbassopus.dylib differ diff --git a/ThirdParty/BASS/libbasswv.dylib b/ThirdParty/BASS/libbasswv.dylib index 5b2b9324a..0c1ebffa1 100644 Binary files a/ThirdParty/BASS/libbasswv.dylib and b/ThirdParty/BASS/libbasswv.dylib differ diff --git a/ThirdParty/BASS/libunmo3.dylib b/ThirdParty/BASS/libunmo3.dylib deleted file mode 100755 index cca34a7e3..000000000 Binary files a/ThirdParty/BASS/libunmo3.dylib and /dev/null differ diff --git a/ThirdParty/BASS/unmo3.h b/ThirdParty/BASS/unmo3.h deleted file mode 100755 index cc1d0f948..000000000 --- a/ThirdParty/BASS/unmo3.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - UNMO3 library C/C++ header file - Copyright (c) 2010-2013 Un4seen Developments Ltd. - - Free for non-commercial use -*/ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _WIN32 -#define WINAPI -#endif - -// Get the UNMO3 library version -unsigned WINAPI UNMO3_GetVersion(); - -// Decode a MO3 file -// in: data/len = MO3 data/len -// out: data/len = decoded data/len (if successful) -// return: 0 = Success, 2 = It isn't a MO3 file, 3 = There was a problem decoding the MO3 file -int WINAPI UNMO3_Decode(void **data, unsigned *len, unsigned flags); - -// UNMO3_Decode flags -#define UNMO3_DECODE_NOSAMPLES 1 // don't process sample data - -// Free the data returned by UNMO3_Decode -void WINAPI UNMO3_Free(void *data); - -#ifdef __cplusplus -} -#endif