aboutsummaryrefslogtreecommitdiff
path: root/macosx/plugins/DFSound/macsrc
diff options
context:
space:
mode:
authorPCSX* teams2010-11-16 14:15:22 +0200
committerGrazvydas Ignotas2010-11-16 14:15:22 +0200
commitef79bbde537d6b9c745a7d86cb9df1d04c35590d (patch)
treeef8d2520dbb9e1e345b41b12c9959f300ca8fd10 /macosx/plugins/DFSound/macsrc
downloadpcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.tar.gz
pcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.tar.bz2
pcsx_rearmed-ef79bbde537d6b9c745a7d86cb9df1d04c35590d.zip
pcsxr-1.9.92
Diffstat (limited to 'macosx/plugins/DFSound/macsrc')
-rw-r--r--macosx/plugins/DFSound/macsrc/NamedSlider.h13
-rw-r--r--macosx/plugins/DFSound/macsrc/NamedSlider.m33
-rw-r--r--macosx/plugins/DFSound/macsrc/PluginController.h29
-rw-r--r--macosx/plugins/DFSound/macsrc/PluginController.m160
4 files changed, 235 insertions, 0 deletions
diff --git a/macosx/plugins/DFSound/macsrc/NamedSlider.h b/macosx/plugins/DFSound/macsrc/NamedSlider.h
new file mode 100644
index 0000000..c5a40aa
--- /dev/null
+++ b/macosx/plugins/DFSound/macsrc/NamedSlider.h
@@ -0,0 +1,13 @@
+/* NetSfPeopsSPUPluginNamedSlider */
+
+#import <Cocoa/Cocoa.h>
+
+#define NamedSlider NetSfPeopsSPUPluginNamedSlider
+
+@interface NamedSlider : NSSlider
+{
+ NSArray *strings;
+}
+
+- (void)setStrings:(NSArray *)theStrings;
+@end
diff --git a/macosx/plugins/DFSound/macsrc/NamedSlider.m b/macosx/plugins/DFSound/macsrc/NamedSlider.m
new file mode 100644
index 0000000..fd07780
--- /dev/null
+++ b/macosx/plugins/DFSound/macsrc/NamedSlider.m
@@ -0,0 +1,33 @@
+#import "NamedSlider.h"
+
+@implementation NamedSlider
+
+- (void)dealloc
+{
+ [strings release];
+ [super dealloc];
+}
+
+- (void)setStrings:(NSArray *)theStrings
+{
+ [strings release];
+ strings = [theStrings retain];
+}
+
+- (NSString *)stringValue
+{
+ int index = [self intValue];
+
+ if (index >= 0 && index < [strings count])
+ return [strings objectAtIndex:index];
+
+ return @"(Unknown)";
+}
+
+- (void)setIntValue:(int)value
+{
+ [super setIntValue:value];
+ [self sendAction:[self action] to:[self target]];
+}
+
+@end
diff --git a/macosx/plugins/DFSound/macsrc/PluginController.h b/macosx/plugins/DFSound/macsrc/PluginController.h
new file mode 100644
index 0000000..36373b1
--- /dev/null
+++ b/macosx/plugins/DFSound/macsrc/PluginController.h
@@ -0,0 +1,29 @@
+/* NetSfPeopsSPUPluginController */
+
+#import <Cocoa/Cocoa.h>
+#import "NamedSlider.h"
+
+void DoAbout();
+long DoConfiguration();
+void LoadConfiguration();
+
+#define PluginController NetSfPeopsSPUPluginController
+
+@interface PluginController : NSWindowController
+{
+ IBOutlet NSControl *hiCompBox;
+ IBOutlet NetSfPeopsSPUPluginNamedSlider *interpolValue;
+ IBOutlet NSControl *irqWaitBox;
+ IBOutlet NSControl *monoSoundBox;
+ IBOutlet NetSfPeopsSPUPluginNamedSlider *reverbValue;
+ IBOutlet NSControl *xaEnableBox;
+ IBOutlet NSControl *xaSpeedBox;
+
+ NSMutableDictionary *keyValues;
+}
+- (IBAction)cancel:(id)sender;
+- (IBAction)ok:(id)sender;
+- (IBAction)reset:(id)sender;
+
+- (void)loadValues;
+@end
diff --git a/macosx/plugins/DFSound/macsrc/PluginController.m b/macosx/plugins/DFSound/macsrc/PluginController.m
new file mode 100644
index 0000000..1fa007f
--- /dev/null
+++ b/macosx/plugins/DFSound/macsrc/PluginController.m
@@ -0,0 +1,160 @@
+#import "PluginController.h"
+#include "stdafx.h"
+#include "externals.h"
+
+#define APP_ID @"net.sf.peops.SPUPlugin"
+#define PrefsKey APP_ID @" Settings"
+
+static PluginController *pluginController;
+char * pConfigFile=NULL;
+
+void DoAbout()
+{
+ // Get parent application instance
+ NSApplication *app = [NSApplication sharedApplication];
+ NSBundle *bundle = [NSBundle bundleWithIdentifier:APP_ID];
+
+ // Get Credits.rtf
+ NSString *path = [bundle pathForResource:@"Credits" ofType:@"rtf"];
+ NSAttributedString *credits;
+ if (path) {
+ credits = [[[NSAttributedString alloc] initWithPath: path
+ documentAttributes:NULL] autorelease];
+ } else {
+ credits = [[[NSAttributedString alloc] initWithString:@""] autorelease];
+ }
+
+ // Get Application Icon
+ NSImage *icon = [[NSWorkspace sharedWorkspace] iconForFile:[bundle bundlePath]];
+ NSSize size = NSMakeSize(64, 64);
+ [icon setSize:size];
+
+ [app orderFrontStandardAboutPanelWithOptions:[NSDictionary dictionaryWithObjectsAndKeys:
+ [bundle objectForInfoDictionaryKey:@"CFBundleName"], @"ApplicationName",
+ icon, @"ApplicationIcon",
+ [bundle objectForInfoDictionaryKey:@"CFBundleShortVersionString"], @"ApplicationVersion",
+ [bundle objectForInfoDictionaryKey:@"CFBundleVersion"], @"Version",
+ [bundle objectForInfoDictionaryKey:@"NSHumanReadableCopyright"], @"Copyright",
+ credits, @"Credits",
+ nil]];
+}
+
+
+long DoConfiguration()
+{
+ NSWindow *window;
+
+ if (pluginController == nil) {
+ pluginController = [[PluginController alloc] initWithWindowNibName:@"NetSfPeopsSpuPluginMain"];
+ }
+ window = [pluginController window];
+
+ /* load values */
+ [pluginController loadValues];
+
+ [window center];
+ [window makeKeyAndOrderFront:nil];
+
+ return 0;
+}
+
+void ReadConfig(void)
+{
+ NSDictionary *keyValues;
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ [defaults registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:
+ [[NSMutableDictionary alloc] initWithObjectsAndKeys:
+ [NSNumber numberWithBool:YES], @"High Compatibility Mode",
+ [NSNumber numberWithBool:YES], @"SPU IRQ Wait",
+ [NSNumber numberWithBool:NO], @"XA Pitch",
+ [NSNumber numberWithInt:0], @"Interpolation Quality",
+ [NSNumber numberWithInt:1], @"Reverb Quality",
+ nil], PrefsKey,
+ nil]];
+
+ keyValues = [defaults dictionaryForKey:PrefsKey];
+
+ iUseTimer = [[keyValues objectForKey:@"High Compatibility Mode"] boolValue] ? 2 : 0;
+ iSPUIRQWait = [[keyValues objectForKey:@"SPU IRQ Wait"] boolValue];
+ iDisStereo = [[keyValues objectForKey:@"Mono Sound Output"] boolValue];
+ iXAPitch = [[keyValues objectForKey:@"XA Pitch"] boolValue];
+
+ iUseInterpolation = [[keyValues objectForKey:@"Interpolation Quality"] intValue];
+ iUseReverb = [[keyValues objectForKey:@"Reverb Quality"] intValue];
+
+ iVolume=1;
+}
+
+@implementation PluginController
+
+- (IBAction)cancel:(id)sender
+{
+ [self close];
+}
+
+- (IBAction)ok:(id)sender
+{
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+
+ NSMutableDictionary *writeDic = [NSMutableDictionary dictionaryWithDictionary:keyValues];
+ [writeDic setObject:[NSNumber numberWithInt:[hiCompBox intValue]] forKey:@"High Compatibility Mode"];
+ [writeDic setObject:[NSNumber numberWithInt:[irqWaitBox intValue]] forKey:@"SPU IRQ Wait"];
+ [writeDic setObject:[NSNumber numberWithInt:[monoSoundBox intValue]] forKey:@"Mono Sound Output"];
+ [writeDic setObject:[NSNumber numberWithInt:[xaSpeedBox intValue]] forKey:@"XA Pitch"];
+
+ [writeDic setObject:[NSNumber numberWithInt:[interpolValue intValue]] forKey:@"Interpolation Quality"];
+ [writeDic setObject:[NSNumber numberWithInt:[reverbValue intValue]] forKey:@"Reverb Quality"];
+
+ // write to defaults
+ [defaults setObject:writeDic forKey:PrefsKey];
+ [defaults synchronize];
+
+ // and set global values accordingly
+ ReadConfig();
+
+ [self close];
+}
+
+- (IBAction)reset:(id)sender
+{
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+ [defaults removeObjectForKey:PrefsKey];
+ [self loadValues];
+}
+
+- (void)loadValues
+{
+ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+
+ ReadConfig();
+
+ /* load from preferences */
+ [keyValues release];
+ keyValues = [[defaults dictionaryForKey:PrefsKey] retain];
+
+ [hiCompBox setIntValue:[[keyValues objectForKey:@"High Compatibility Mode"] intValue]];
+ [irqWaitBox setIntValue:[[keyValues objectForKey:@"SPU IRQ Wait"] intValue]];
+ [monoSoundBox setIntValue:[[keyValues objectForKey:@"Mono Sound Output"] intValue]];
+ [xaSpeedBox setIntValue:[[keyValues objectForKey:@"XA Pitch"] intValue]];
+
+ [interpolValue setIntValue:[[keyValues objectForKey:@"Interpolation Quality"] intValue]];
+ [reverbValue setIntValue:[[keyValues objectForKey:@"Reverb Quality"] intValue]];
+}
+
+- (void)awakeFromNib
+{
+ [interpolValue setStrings:[NSArray arrayWithObjects:
+ @"(No Interpolation)",
+ @"(Simple Interpolation)",
+ @"(Gaussian Interpolation)",
+ @"(Cubic Interpolation)",
+ nil]];
+
+ [reverbValue setStrings:[NSArray arrayWithObjects:
+ @"(No Reverb)",
+ @"(Simple Reverb)",
+ @"(PSX Reverb)",
+ nil]];
+}
+
+@end