- Change MIDI overrides to support 'default (auto)' mode
- Change MIDI flavor default to 'default (auto)' - Fix MIDI preference page to correctly enable the flavor option only where applicable - Fix SCVA player to reset existing instances reliablyCQTexperiment
parent
af69cd53c3
commit
ebfcd03c5d
|
@ -374,7 +374,7 @@
|
||||||
|
|
||||||
[userDefaultsValuesDict setObject:@"dls appl" forKey:@"midi.plugin"];
|
[userDefaultsValuesDict setObject:@"dls appl" forKey:@"midi.plugin"];
|
||||||
|
|
||||||
[userDefaultsValuesDict setObject:@"sc55" forKey:@"midi.flavor"];
|
[userDefaultsValuesDict setObject:@"default" forKey:@"midi.flavor"];
|
||||||
|
|
||||||
//Register and sync defaults
|
//Register and sync defaults
|
||||||
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValuesDict];
|
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValuesDict];
|
||||||
|
|
|
@ -208,7 +208,9 @@ static OSType getOSType(const char * in_)
|
||||||
|
|
||||||
SCPlayer::sc_mode mode = SCPlayer::sc_sc55;
|
SCPlayer::sc_mode mode = SCPlayer::sc_sc55;
|
||||||
NSString * flavor = [[NSUserDefaults standardUserDefaults] stringForKey:@"midi.flavor"];
|
NSString * flavor = [[NSUserDefaults standardUserDefaults] stringForKey:@"midi.flavor"];
|
||||||
if ([flavor isEqualToString:@"gm"])
|
if ([flavor isEqualToString:@"default"])
|
||||||
|
mode = SCPlayer::sc_default;
|
||||||
|
else if ([flavor isEqualToString:@"gm"])
|
||||||
mode = SCPlayer::sc_gm;
|
mode = SCPlayer::sc_gm;
|
||||||
else if ([flavor isEqualToString:@"gm2"])
|
else if ([flavor isEqualToString:@"gm2"])
|
||||||
mode = SCPlayer::sc_gm2;
|
mode = SCPlayer::sc_gm2;
|
||||||
|
|
|
@ -74,7 +74,7 @@ static bool syx_is_reset(const uint8_t * data)
|
||||||
void SCPlayer::send_sysex(uint32_t port, const uint8_t * data)
|
void SCPlayer::send_sysex(uint32_t port, const uint8_t * data)
|
||||||
{
|
{
|
||||||
sampler[port].TG_LongMidiIn( data, 0 );
|
sampler[port].TG_LongMidiIn( data, 0 );
|
||||||
if (syx_is_reset(data))
|
if (syx_is_reset(data) && mode != sc_default)
|
||||||
{
|
{
|
||||||
reset(port);
|
reset(port);
|
||||||
}
|
}
|
||||||
|
@ -117,6 +117,7 @@ void SCPlayer::reset_sc(uint32_t port)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case sc_sc8850:
|
case sc_sc8850:
|
||||||
|
case sc_default:
|
||||||
message[8] = 4;
|
message[8] = 4;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -153,6 +154,7 @@ void SCPlayer::reset(uint32_t port)
|
||||||
case sc_sc88:
|
case sc_sc88:
|
||||||
case sc_sc88pro:
|
case sc_sc88pro:
|
||||||
case sc_sc8850:
|
case sc_sc8850:
|
||||||
|
case sc_default:
|
||||||
sampler[port].TG_LongMidiIn( syx_reset_gs, 0 );
|
sampler[port].TG_LongMidiIn( syx_reset_gs, 0 );
|
||||||
reset_sc(port);
|
reset_sc(port);
|
||||||
break;
|
break;
|
||||||
|
@ -162,6 +164,26 @@ void SCPlayer::reset(uint32_t port)
|
||||||
sampler[port].TG_ShortMidiIn( 0x7F00B9, 0 ); // fix drum channel
|
sampler[port].TG_ShortMidiIn( 0x7F00B9, 0 ); // fix drum channel
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
for (i = 0; i < 16; ++i)
|
||||||
|
{
|
||||||
|
sampler[port].TG_ShortMidiIn( 0x78B0 + i, 0 );
|
||||||
|
sampler[port].TG_ShortMidiIn( 0x79B0 + i, 0 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
float temp[1024];
|
||||||
|
unsigned long i, j;
|
||||||
|
for (i = 0, j = (uSampleRate / 1536 + 1); i < j; ++i)
|
||||||
|
{
|
||||||
|
memset(temp, 0, sizeof(temp));
|
||||||
|
sampler[port].TG_setInterruptThreadIdAtThisTime();
|
||||||
|
sampler[port].TG_Process(temp, temp, 1024);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,14 +18,14 @@ public:
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
sc_gm = 0,
|
sc_default = 0,
|
||||||
|
sc_gm,
|
||||||
sc_gm2,
|
sc_gm2,
|
||||||
sc_sc55,
|
sc_sc55,
|
||||||
sc_sc88,
|
sc_sc88,
|
||||||
sc_sc88pro,
|
sc_sc88pro,
|
||||||
sc_sc8850,
|
sc_sc8850,
|
||||||
sc_xg,
|
sc_xg
|
||||||
sc_default = sc_sc55
|
|
||||||
}
|
}
|
||||||
sc_mode;
|
sc_mode;
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11129.15" systemVersion="15F34" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11542" systemVersion="16B2657" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<development version="7000" identifier="xcode"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11542"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11129.15"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
<customObject id="-2" userLabel="File's Owner" customClass="GeneralPreferencesPlugin">
|
<customObject id="-2" userLabel="File's Owner" customClass="GeneralPreferencesPlugin">
|
||||||
|
@ -454,7 +454,7 @@
|
||||||
</button>
|
</button>
|
||||||
</subviews>
|
</subviews>
|
||||||
</customView>
|
</customView>
|
||||||
<customView id="JXu-ar-J3Y" userLabel="MIDIView">
|
<customView wantsLayer="YES" id="JXu-ar-J3Y" userLabel="MIDIView">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="500" height="137"/>
|
<rect key="frame" x="0.0" y="0.0" width="500" height="137"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
|
@ -528,7 +528,6 @@
|
||||||
</menu>
|
</menu>
|
||||||
</popUpButtonCell>
|
</popUpButtonCell>
|
||||||
<connections>
|
<connections>
|
||||||
<action selector="setMidiPlugin:" target="i5B-ga-Atm" id="8Nt-Z0-LvI"/>
|
|
||||||
<binding destination="czk-eG-6QG" name="content" keyPath="arrangedObjects" id="Mzg-yr-6mv"/>
|
<binding destination="czk-eG-6QG" name="content" keyPath="arrangedObjects" id="Mzg-yr-6mv"/>
|
||||||
<binding destination="czk-eG-6QG" name="contentValues" keyPath="arrangedObjects.name" previousBinding="NFp-di-hMf" id="6JE-ba-47Z"/>
|
<binding destination="czk-eG-6QG" name="contentValues" keyPath="arrangedObjects.name" previousBinding="NFp-di-hMf" id="6JE-ba-47Z"/>
|
||||||
<binding destination="czk-eG-6QG" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="Mzg-yr-6mv" id="NFp-di-hMf"/>
|
<binding destination="czk-eG-6QG" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="Mzg-yr-6mv" id="NFp-di-hMf"/>
|
||||||
|
@ -547,12 +546,12 @@
|
||||||
<popUpButton verticalHuggingPriority="750" id="1Yw-25-Gbs">
|
<popUpButton verticalHuggingPriority="750" id="1Yw-25-Gbs">
|
||||||
<rect key="frame" x="173" y="17" width="164" height="26"/>
|
<rect key="frame" x="173" y="17" width="164" height="26"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" enabled="NO" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="XzK-h2-vIT" id="qzt-Ox-taI">
|
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" enabled="NO" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" altersStateOfSelectedItem="NO" selectedItem="XzK-h2-vIT" id="qzt-Ox-taI">
|
||||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="menu"/>
|
<font key="font" metaFont="menu"/>
|
||||||
<menu key="menu" id="q1g-E5-NwQ">
|
<menu key="menu" autoenablesItems="NO" id="q1g-E5-NwQ">
|
||||||
<items>
|
<items>
|
||||||
<menuItem title="Item 1" state="on" id="XzK-h2-vIT"/>
|
<menuItem title="Item 1" id="XzK-h2-vIT"/>
|
||||||
<menuItem title="Item 2" id="nzS-3F-jPX"/>
|
<menuItem title="Item 2" id="nzS-3F-jPX"/>
|
||||||
<menuItem title="Item 3" id="jLL-zc-kYf"/>
|
<menuItem title="Item 3" id="jLL-zc-kYf"/>
|
||||||
</items>
|
</items>
|
||||||
|
@ -562,6 +561,11 @@
|
||||||
<binding destination="KAn-H1-QH6" name="content" keyPath="arrangedObjects" id="Zvj-Wf-Bum"/>
|
<binding destination="KAn-H1-QH6" name="content" keyPath="arrangedObjects" id="Zvj-Wf-Bum"/>
|
||||||
<binding destination="KAn-H1-QH6" name="contentValues" keyPath="arrangedObjects.name" previousBinding="WGj-w1-erz" id="Rvq-46-YeR"/>
|
<binding destination="KAn-H1-QH6" name="contentValues" keyPath="arrangedObjects.name" previousBinding="WGj-w1-erz" id="Rvq-46-YeR"/>
|
||||||
<binding destination="KAn-H1-QH6" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="Zvj-Wf-Bum" id="WGj-w1-erz"/>
|
<binding destination="KAn-H1-QH6" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="Zvj-Wf-Bum" id="WGj-w1-erz"/>
|
||||||
|
<binding destination="52" name="enabled" keyPath="values.midi.plugin" id="GlZ-Ch-oua">
|
||||||
|
<dictionary key="options">
|
||||||
|
<string key="NSValueTransformerName">MIDIPluginFlavorTransformer</string>
|
||||||
|
</dictionary>
|
||||||
|
</binding>
|
||||||
<binding destination="52" name="selectedObject" keyPath="values.midi.flavor" previousBinding="Rvq-46-YeR" id="zC1-3J-frL"/>
|
<binding destination="52" name="selectedObject" keyPath="values.midi.flavor" previousBinding="Rvq-46-YeR" id="zC1-3J-frL"/>
|
||||||
</connections>
|
</connections>
|
||||||
</popUpButton>
|
</popUpButton>
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
83B0672B180D8B39008E3612 /* midi.png in Resources */ = {isa = PBXBuildFile; fileRef = 83B0672A180D8B39008E3612 /* midi.png */; };
|
83B0672B180D8B39008E3612 /* midi.png in Resources */ = {isa = PBXBuildFile; fileRef = 83B0672A180D8B39008E3612 /* midi.png */; };
|
||||||
83DFEA0B1CBC94DE00BCC565 /* MIDIFlavorBehaviorArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83DFEA0A1CBC94DE00BCC565 /* MIDIFlavorBehaviorArrayController.m */; };
|
83DFEA0B1CBC94DE00BCC565 /* MIDIFlavorBehaviorArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83DFEA0A1CBC94DE00BCC565 /* MIDIFlavorBehaviorArrayController.m */; };
|
||||||
83EF495F17FBC96A00642E3C /* VolumeBehaviorArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83EF495E17FBC96A00642E3C /* VolumeBehaviorArrayController.m */; };
|
83EF495F17FBC96A00642E3C /* VolumeBehaviorArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83EF495E17FBC96A00642E3C /* VolumeBehaviorArrayController.m */; };
|
||||||
|
83F127AA1DEE47E90010CB8F /* MIDIPluginFlavorTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 83F127A81DEE47E90010CB8F /* MIDIPluginFlavorTransformer.m */; };
|
||||||
83F27E6B1810DD3A00CEF538 /* appearance@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 83F27E651810DD3A00CEF538 /* appearance@2x.png */; };
|
83F27E6B1810DD3A00CEF538 /* appearance@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 83F27E651810DD3A00CEF538 /* appearance@2x.png */; };
|
||||||
83F27E6C1810DD3A00CEF538 /* growl@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 83F27E661810DD3A00CEF538 /* growl@2x.png */; };
|
83F27E6C1810DD3A00CEF538 /* growl@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 83F27E661810DD3A00CEF538 /* growl@2x.png */; };
|
||||||
83F27E6D1810DD3A00CEF538 /* lastfm@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 83F27E671810DD3A00CEF538 /* lastfm@2x.png */; };
|
83F27E6D1810DD3A00CEF538 /* lastfm@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 83F27E671810DD3A00CEF538 /* lastfm@2x.png */; };
|
||||||
|
@ -115,6 +116,8 @@
|
||||||
83DFEA0A1CBC94DE00BCC565 /* MIDIFlavorBehaviorArrayController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MIDIFlavorBehaviorArrayController.m; sourceTree = "<group>"; };
|
83DFEA0A1CBC94DE00BCC565 /* MIDIFlavorBehaviorArrayController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MIDIFlavorBehaviorArrayController.m; sourceTree = "<group>"; };
|
||||||
83EF495D17FBC96A00642E3C /* VolumeBehaviorArrayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VolumeBehaviorArrayController.h; sourceTree = "<group>"; };
|
83EF495D17FBC96A00642E3C /* VolumeBehaviorArrayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VolumeBehaviorArrayController.h; sourceTree = "<group>"; };
|
||||||
83EF495E17FBC96A00642E3C /* VolumeBehaviorArrayController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VolumeBehaviorArrayController.m; sourceTree = "<group>"; };
|
83EF495E17FBC96A00642E3C /* VolumeBehaviorArrayController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VolumeBehaviorArrayController.m; sourceTree = "<group>"; };
|
||||||
|
83F127A81DEE47E90010CB8F /* MIDIPluginFlavorTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MIDIPluginFlavorTransformer.m; sourceTree = "<group>"; };
|
||||||
|
83F127A91DEE47E90010CB8F /* MIDIPluginFlavorTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MIDIPluginFlavorTransformer.h; sourceTree = "<group>"; };
|
||||||
83F27E651810DD3A00CEF538 /* appearance@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "appearance@2x.png"; path = "Icons/appearance@2x.png"; sourceTree = "<group>"; };
|
83F27E651810DD3A00CEF538 /* appearance@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "appearance@2x.png"; path = "Icons/appearance@2x.png"; sourceTree = "<group>"; };
|
||||||
83F27E661810DD3A00CEF538 /* growl@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "growl@2x.png"; path = "Icons/growl@2x.png"; sourceTree = "<group>"; };
|
83F27E661810DD3A00CEF538 /* growl@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "growl@2x.png"; path = "Icons/growl@2x.png"; sourceTree = "<group>"; };
|
||||||
83F27E671810DD3A00CEF538 /* lastfm@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "lastfm@2x.png"; path = "Icons/lastfm@2x.png"; sourceTree = "<group>"; };
|
83F27E671810DD3A00CEF538 /* lastfm@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "lastfm@2x.png"; path = "Icons/lastfm@2x.png"; sourceTree = "<group>"; };
|
||||||
|
@ -286,6 +289,8 @@
|
||||||
83F27E711810E41A00CEF538 /* Transformers */ = {
|
83F27E711810E41A00CEF538 /* Transformers */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
83F127A81DEE47E90010CB8F /* MIDIPluginFlavorTransformer.m */,
|
||||||
|
83F127A91DEE47E90010CB8F /* MIDIPluginFlavorTransformer.h */,
|
||||||
83F27E721810E45D00CEF538 /* PathToFileTransformer.h */,
|
83F27E721810E45D00CEF538 /* PathToFileTransformer.h */,
|
||||||
83F27E731810E45D00CEF538 /* PathToFileTransformer.m */,
|
83F27E731810E45D00CEF538 /* PathToFileTransformer.m */,
|
||||||
);
|
);
|
||||||
|
@ -437,6 +442,7 @@
|
||||||
17C643380B8A77CC00C53518 /* OutputsArrayController.m in Sources */,
|
17C643380B8A77CC00C53518 /* OutputsArrayController.m in Sources */,
|
||||||
837C0D401C50954000CAE18F /* MIDIPluginBehaviorArrayController.m in Sources */,
|
837C0D401C50954000CAE18F /* MIDIPluginBehaviorArrayController.m in Sources */,
|
||||||
17C6433F0B8A783F00C53518 /* OutputPane.m in Sources */,
|
17C6433F0B8A783F00C53518 /* OutputPane.m in Sources */,
|
||||||
|
83F127AA1DEE47E90010CB8F /* MIDIPluginFlavorTransformer.m in Sources */,
|
||||||
170744AD0BFF3938002475C9 /* AppcastArrayController.m in Sources */,
|
170744AD0BFF3938002475C9 /* AppcastArrayController.m in Sources */,
|
||||||
99F1813F0DE01D7A00FD5FFB /* PlaylistBehaviorArrayController.m in Sources */,
|
99F1813F0DE01D7A00FD5FFB /* PlaylistBehaviorArrayController.m in Sources */,
|
||||||
8372053718E3DEAF007EFAD4 /* ResamplerBehaviorArrayController.m in Sources */,
|
8372053718E3DEAF007EFAD4 /* ResamplerBehaviorArrayController.m in Sources */,
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
#import "GeneralPreferencesPlugin.h"
|
#import "GeneralPreferencesPlugin.h"
|
||||||
#import "PathToFileTransformer.h"
|
#import "PathToFileTransformer.h"
|
||||||
|
#import "MIDIPluginFlavorTransformer.h"
|
||||||
|
|
||||||
@implementation GeneralPreferencesPlugin
|
@implementation GeneralPreferencesPlugin
|
||||||
|
|
||||||
|
@ -16,6 +17,9 @@
|
||||||
NSValueTransformer *pathToFileTransformer = [[PathToFileTransformer alloc] init];
|
NSValueTransformer *pathToFileTransformer = [[PathToFileTransformer alloc] init];
|
||||||
[NSValueTransformer setValueTransformer:pathToFileTransformer
|
[NSValueTransformer setValueTransformer:pathToFileTransformer
|
||||||
forName:@"PathToFileTransformer"];
|
forName:@"PathToFileTransformer"];
|
||||||
|
NSValueTransformer *midiPluginFlavorTransformer = [[MIDIPluginFlavorTransformer alloc] init];
|
||||||
|
[NSValueTransformer setValueTransformer:midiPluginFlavorTransformer
|
||||||
|
forName:@"MIDIPluginFlavorTransformer"];
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (NSArray *)preferencePanes
|
+ (NSArray *)preferencePanes
|
||||||
|
|
|
@ -13,6 +13,10 @@
|
||||||
{
|
{
|
||||||
[self removeObjects:[self arrangedObjects]];
|
[self removeObjects:[self arrangedObjects]];
|
||||||
|
|
||||||
|
[self addObject:
|
||||||
|
[NSDictionary dictionaryWithObjectsAndKeys:
|
||||||
|
@"Default (auto)", @"name", @"default", @"preference", nil]];
|
||||||
|
|
||||||
[self addObject:
|
[self addObject:
|
||||||
[NSDictionary dictionaryWithObjectsAndKeys:
|
[NSDictionary dictionaryWithObjectsAndKeys:
|
||||||
@"General MIDI", @"name", @"gm", @"preference", nil]];
|
@"General MIDI", @"name", @"gm", @"preference", nil]];
|
||||||
|
|
|
@ -14,6 +14,5 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)setSoundFont:(id)sender;
|
- (IBAction)setSoundFont:(id)sender;
|
||||||
- (IBAction)setMidiPlugin:(id)sender;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -10,12 +10,6 @@
|
||||||
|
|
||||||
@implementation MIDIPane
|
@implementation MIDIPane
|
||||||
|
|
||||||
- (void)awakeFromNib
|
|
||||||
{
|
|
||||||
if ([[[NSUserDefaults standardUserDefaults] stringForKey:@"midi.plugin"] isEqualToString:@"Sc55rolD"])
|
|
||||||
[midiFlavorControl setEnabled:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)title
|
- (NSString *)title
|
||||||
{
|
{
|
||||||
return NSLocalizedStringFromTableInBundle(@"Synthesis", nil, [NSBundle bundleForClass:[self class]], @"");
|
return NSLocalizedStringFromTableInBundle(@"Synthesis", nil, [NSBundle bundleForClass:[self class]], @"");
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
//
|
||||||
|
// PathToFileTransformer.h
|
||||||
|
// General
|
||||||
|
//
|
||||||
|
// Created by Christopher Snowhill on 11/29/16.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface MIDIPluginFlavorTransformer : NSValueTransformer
|
||||||
|
|
||||||
|
@end
|
|
@ -0,0 +1,22 @@
|
||||||
|
//
|
||||||
|
// PathToFileTransformer.m
|
||||||
|
// General
|
||||||
|
//
|
||||||
|
// Created by Christopher Snowhill on 11/29/16.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MIDIPluginFlavorTransformer.h"
|
||||||
|
|
||||||
|
@implementation MIDIPluginFlavorTransformer
|
||||||
|
|
||||||
|
+ (Class)transformedValueClass { return [NSNumber class]; }
|
||||||
|
+ (BOOL)allowsReverseTransformation { return NO; }
|
||||||
|
|
||||||
|
// Convert from string to NSURL
|
||||||
|
- (id)transformedValue:(id)value {
|
||||||
|
if (value == nil) return nil;
|
||||||
|
|
||||||
|
return [NSNumber numberWithBool:[value isEqualToString:@"Sc55rolD"]];
|
||||||
|
}
|
||||||
|
@end
|
|
@ -1,8 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11129.15" systemVersion="15F34" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11542" systemVersion="16B2657" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11129.15"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11542"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
<customObject id="-2" userLabel="File's Owner" customClass="GeneralPreferencesPlugin">
|
<customObject id="-2" userLabel="File's Owner" customClass="GeneralPreferencesPlugin">
|
||||||
|
@ -453,7 +454,7 @@
|
||||||
</button>
|
</button>
|
||||||
</subviews>
|
</subviews>
|
||||||
</customView>
|
</customView>
|
||||||
<customView id="JXu-ar-J3Y" userLabel="MIDIView">
|
<customView wantsLayer="YES" id="JXu-ar-J3Y" userLabel="MIDIView">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="500" height="137"/>
|
<rect key="frame" x="0.0" y="0.0" width="500" height="137"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
|
@ -527,7 +528,6 @@
|
||||||
</menu>
|
</menu>
|
||||||
</popUpButtonCell>
|
</popUpButtonCell>
|
||||||
<connections>
|
<connections>
|
||||||
<action selector="setMidiPlugin:" target="i5B-ga-Atm" id="8Nt-Z0-LvI"/>
|
|
||||||
<binding destination="czk-eG-6QG" name="content" keyPath="arrangedObjects" id="Mzg-yr-6mv"/>
|
<binding destination="czk-eG-6QG" name="content" keyPath="arrangedObjects" id="Mzg-yr-6mv"/>
|
||||||
<binding destination="czk-eG-6QG" name="contentValues" keyPath="arrangedObjects.name" previousBinding="NFp-di-hMf" id="6JE-ba-47Z"/>
|
<binding destination="czk-eG-6QG" name="contentValues" keyPath="arrangedObjects.name" previousBinding="NFp-di-hMf" id="6JE-ba-47Z"/>
|
||||||
<binding destination="czk-eG-6QG" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="Mzg-yr-6mv" id="NFp-di-hMf"/>
|
<binding destination="czk-eG-6QG" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="Mzg-yr-6mv" id="NFp-di-hMf"/>
|
||||||
|
@ -546,12 +546,12 @@
|
||||||
<popUpButton verticalHuggingPriority="750" id="1Yw-25-Gbs">
|
<popUpButton verticalHuggingPriority="750" id="1Yw-25-Gbs">
|
||||||
<rect key="frame" x="173" y="17" width="164" height="26"/>
|
<rect key="frame" x="173" y="17" width="164" height="26"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" enabled="NO" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="XzK-h2-vIT" id="qzt-Ox-taI">
|
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" enabled="NO" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" altersStateOfSelectedItem="NO" selectedItem="XzK-h2-vIT" id="qzt-Ox-taI">
|
||||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||||
<font key="font" metaFont="menu"/>
|
<font key="font" metaFont="menu"/>
|
||||||
<menu key="menu" id="q1g-E5-NwQ">
|
<menu key="menu" autoenablesItems="NO" id="q1g-E5-NwQ">
|
||||||
<items>
|
<items>
|
||||||
<menuItem title="Item 1" state="on" id="XzK-h2-vIT"/>
|
<menuItem title="Item 1" id="XzK-h2-vIT"/>
|
||||||
<menuItem title="Item 2" id="nzS-3F-jPX"/>
|
<menuItem title="Item 2" id="nzS-3F-jPX"/>
|
||||||
<menuItem title="Item 3" id="jLL-zc-kYf"/>
|
<menuItem title="Item 3" id="jLL-zc-kYf"/>
|
||||||
</items>
|
</items>
|
||||||
|
@ -561,6 +561,11 @@
|
||||||
<binding destination="KAn-H1-QH6" name="content" keyPath="arrangedObjects" id="Zvj-Wf-Bum"/>
|
<binding destination="KAn-H1-QH6" name="content" keyPath="arrangedObjects" id="Zvj-Wf-Bum"/>
|
||||||
<binding destination="KAn-H1-QH6" name="contentValues" keyPath="arrangedObjects.name" previousBinding="WGj-w1-erz" id="Rvq-46-YeR"/>
|
<binding destination="KAn-H1-QH6" name="contentValues" keyPath="arrangedObjects.name" previousBinding="WGj-w1-erz" id="Rvq-46-YeR"/>
|
||||||
<binding destination="KAn-H1-QH6" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="Zvj-Wf-Bum" id="WGj-w1-erz"/>
|
<binding destination="KAn-H1-QH6" name="contentObjects" keyPath="arrangedObjects.preference" previousBinding="Zvj-Wf-Bum" id="WGj-w1-erz"/>
|
||||||
|
<binding destination="52" name="enabled" keyPath="values.midi.plugin" id="GlZ-Ch-oua">
|
||||||
|
<dictionary key="options">
|
||||||
|
<string key="NSValueTransformerName">MIDIPluginFlavorTransformer</string>
|
||||||
|
</dictionary>
|
||||||
|
</binding>
|
||||||
<binding destination="52" name="selectedObject" keyPath="values.midi.flavor" previousBinding="Rvq-46-YeR" id="zC1-3J-frL"/>
|
<binding destination="52" name="selectedObject" keyPath="values.midi.flavor" previousBinding="Rvq-46-YeR" id="zC1-3J-frL"/>
|
||||||
</connections>
|
</connections>
|
||||||
</popUpButton>
|
</popUpButton>
|
||||||
|
|
Loading…
Reference in New Issue