git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@34480 e17a0e51-4ae3-4d35-97c3-1a29b211df97

This commit is contained in:
SND\weimingzhi_cp 2009-11-01 05:53:44 +00:00
parent 8549d0c543
commit 161fa8af66
15 changed files with 892 additions and 2 deletions

View File

@ -1,3 +1,11 @@
November 1, 2009 Wei Mingzhi <weimingzhi@gmail.com>
* macosx/plugins/PeopsSpu109: Removed.
* macosx/plugins/DFSound: Added project file and necessary platform-dependant
files for building existing dfsound sources for Mac OS X.
* plugins/dfsound/stdafx.h: Made necessary changes for Mac OS X build.
* plugins/dfsound/spu.c: Likewise.
October 31, 2009 Wei Mingzhi <weimingzhi@gmail.com>
* libpcsxcore/cdriso.c: Declare thread controlling variable as volatile.

View File

@ -0,0 +1,14 @@
{\rtf1\mac\ansicpg10000\cocoartf102
{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\vieww9000\viewh9000\viewkind0
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\f0\b\fs24 \cf0 Macintosh Port:
\f1\b0 \
Gil Pedersen\
\
\f0\b Original coders:
\f1\b0 \
Pete Bernert and the P.E.Op.S. team}

Binary file not shown.

View File

@ -0,0 +1,26 @@
{
IBClasses = (
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
{
ACTIONS = {cancel = id; ok = id; reset = id; };
CLASS = NetSfPeopsSPUPluginController;
LANGUAGE = ObjC;
OUTLETS = {
hiCompBox = NSControl;
interpolValue = NetSfPeopsSPUPluginNamedSlider;
irqWaitBox = NetSfPeopsSPUPluginNamedSlider;
monoSoundBox = NSControl;
reverbValue = NSControl;
xaEnableBox = NSControl;
xaSpeedBox = NSControl;
};
SUPERCLASS = NSWindowController;
},
{
CLASS = NetSfPeopsSPUPluginNamedSlider;
LANGUAGE = ObjC;
SUPERCLASS = NSSlider;
}
);
IBVersion = 1;
}

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IBDocumentLocation</key>
<string>42 12 546 240 0 0 1024 746 </string>
<key>IBFramework Version</key>
<string>446.1</string>
<key>IBOpenObjects</key>
<array>
<integer>6</integer>
</array>
<key>IBSystem Version</key>
<string>8P2137</string>
</dict>
</plist>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>PeopsSPU</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>net.sf.peops.SPUPlugin</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>PsxP</string>
<key>CFBundleSignature</key>
<string>PSPU</string>
<key>CFBundleVersion</key>
<string>1.19</string>
</dict>
</plist>

View File

@ -0,0 +1,345 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 42;
objects = {
/* Begin PBXBuildFile section */
2B4F9962077B042E004E36BA /* NetSfPeopsSpuPluginMain.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2B4F9961077B042E004E36BA /* NetSfPeopsSpuPluginMain.nib */; };
2B4F99F9077B0CE4004E36BA /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2B4F99F7077B0CE4004E36BA /* Credits.rtf */; };
2B7B2B94072D9BE6007F0C35 /* PluginController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B7B2B92072D9BE6007F0C35 /* PluginController.m */; };
2B7B2BD1072DAE5D007F0C35 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B7B2BD0072DAE5D007F0C35 /* AppKit.framework */; };
2B7B2BE9072DB1B6007F0C35 /* NamedSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B7B2BE7072DB1B6007F0C35 /* NamedSlider.m */; };
2BE18A00077EED7F008688C9 /* macosx.c in Sources */ = {isa = PBXBuildFile; fileRef = 2BFF7EFC0715D16A0061278A /* macosx.c */; };
2BFF7F3E0715D2E00061278A /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BFF7F3D0715D2E00061278A /* Carbon.framework */; };
71E4E7AB109DC529003BB7AC /* dma.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E4E797109DC529003BB7AC /* dma.c */; };
71E4E7AC109DC529003BB7AC /* freeze.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E4E79B109DC529003BB7AC /* freeze.c */; };
71E4E7AD109DC529003BB7AC /* psemu.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E4E79D109DC529003BB7AC /* psemu.c */; };
71E4E7AE109DC529003BB7AC /* registers.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E4E79F109DC529003BB7AC /* registers.c */; };
71E4E7B0109DC529003BB7AC /* spu.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E4E7A4109DC529003BB7AC /* spu.c */; };
71E4E7B1109DC529003BB7AC /* xa.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E4E7A7109DC529003BB7AC /* xa.c */; };
8D576314048677EA00EA77CD /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */; };
8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B49A704867FD3000E48DA /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
2B4F99F8077B0CE4004E36BA /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; };
2B6DA89307200A9A009F6FED /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/NetSfPeopsSpuPluginMain.nib; sourceTree = "<group>"; };
2B7B2B91072D9BE6007F0C35 /* PluginController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PluginController.h; path = macsrc/PluginController.h; sourceTree = "<group>"; };
2B7B2B92072D9BE6007F0C35 /* PluginController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = PluginController.m; path = macsrc/PluginController.m; sourceTree = "<group>"; };
2B7B2BD0072DAE5D007F0C35 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
2B7B2BE6072DB1B6007F0C35 /* NamedSlider.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = NamedSlider.h; path = macsrc/NamedSlider.h; sourceTree = "<group>"; };
2B7B2BE7072DB1B6007F0C35 /* NamedSlider.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = NamedSlider.m; path = macsrc/NamedSlider.m; sourceTree = "<group>"; };
2BFF7EFC0715D16A0061278A /* macosx.c */ = {isa = PBXFileReference; fileEncoding = 12; lastKnownFileType = sourcecode.c.c; name = macosx.c; path = src/macosx.c; sourceTree = "<group>"; };
2BFF7F3D0715D2E00061278A /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
71E4E793109DC529003BB7AC /* adsr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = adsr.c; path = ../../../plugins/dfsound/adsr.c; sourceTree = SOURCE_ROOT; };
71E4E794109DC529003BB7AC /* adsr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = adsr.h; path = ../../../plugins/dfsound/adsr.h; sourceTree = SOURCE_ROOT; };
71E4E796109DC529003BB7AC /* cfg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cfg.h; path = ../../../plugins/dfsound/cfg.h; sourceTree = SOURCE_ROOT; };
71E4E797109DC529003BB7AC /* dma.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dma.c; path = ../../../plugins/dfsound/dma.c; sourceTree = SOURCE_ROOT; };
71E4E798109DC529003BB7AC /* dma.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dma.h; path = ../../../plugins/dfsound/dma.h; sourceTree = SOURCE_ROOT; };
71E4E799109DC529003BB7AC /* dsoundoss.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dsoundoss.h; path = ../../../plugins/dfsound/dsoundoss.h; sourceTree = SOURCE_ROOT; };
71E4E79A109DC529003BB7AC /* externals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = externals.h; path = ../../../plugins/dfsound/externals.h; sourceTree = SOURCE_ROOT; };
71E4E79B109DC529003BB7AC /* freeze.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = freeze.c; path = ../../../plugins/dfsound/freeze.c; sourceTree = SOURCE_ROOT; };
71E4E79C109DC529003BB7AC /* gauss_i.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gauss_i.h; path = ../../../plugins/dfsound/gauss_i.h; sourceTree = SOURCE_ROOT; };
71E4E79D109DC529003BB7AC /* psemu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psemu.c; path = ../../../plugins/dfsound/psemu.c; sourceTree = SOURCE_ROOT; };
71E4E79E109DC529003BB7AC /* psemuxa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = psemuxa.h; path = ../../../plugins/dfsound/psemuxa.h; sourceTree = SOURCE_ROOT; };
71E4E79F109DC529003BB7AC /* registers.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = registers.c; path = ../../../plugins/dfsound/registers.c; sourceTree = SOURCE_ROOT; };
71E4E7A0109DC529003BB7AC /* registers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = registers.h; path = ../../../plugins/dfsound/registers.h; sourceTree = SOURCE_ROOT; };
71E4E7A1109DC529003BB7AC /* regs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = regs.h; path = ../../../plugins/dfsound/regs.h; sourceTree = SOURCE_ROOT; };
71E4E7A2109DC529003BB7AC /* reverb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = reverb.c; path = ../../../plugins/dfsound/reverb.c; sourceTree = SOURCE_ROOT; };
71E4E7A3109DC529003BB7AC /* reverb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = reverb.h; path = ../../../plugins/dfsound/reverb.h; sourceTree = SOURCE_ROOT; };
71E4E7A4109DC529003BB7AC /* spu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = spu.c; path = ../../../plugins/dfsound/spu.c; sourceTree = SOURCE_ROOT; };
71E4E7A5109DC529003BB7AC /* spu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = spu.h; path = ../../../plugins/dfsound/spu.h; sourceTree = SOURCE_ROOT; };
71E4E7A6109DC529003BB7AC /* stdafx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = stdafx.h; path = ../../../plugins/dfsound/stdafx.h; sourceTree = SOURCE_ROOT; };
71E4E7A7109DC529003BB7AC /* xa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = xa.c; path = ../../../plugins/dfsound/xa.c; sourceTree = SOURCE_ROOT; };
71E4E7A8109DC529003BB7AC /* xa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xa.h; path = ../../../plugins/dfsound/xa.h; sourceTree = SOURCE_ROOT; };
8D576316048677EA00EA77CD /* PeopsSPU.psxplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PeopsSPU.psxplugin; sourceTree = BUILT_PRODUCTS_DIR; };
8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8D576313048677EA00EA77CD /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
8D576314048677EA00EA77CD /* CoreFoundation.framework in Frameworks */,
2BFF7F3E0715D2E00061278A /* Carbon.framework in Frameworks */,
2B7B2BD1072DAE5D007F0C35 /* AppKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
089C166AFE841209C02AAC07 /* PSX Plugin */ = {
isa = PBXGroup;
children = (
08FB77AFFE84173DC02AAC07 /* Source */,
2B7B2B8E072D9BD6007F0C35 /* Classes */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB6FE9D52B211CA2CBB /* Products */,
);
name = "PSX Plugin";
sourceTree = "<group>";
};
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
isa = PBXGroup;
children = (
2B7B2BD0072DAE5D007F0C35 /* AppKit.framework */,
2BFF7F3D0715D2E00061278A /* Carbon.framework */,
0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */,
);
name = "External Frameworks and Libraries";
sourceTree = "<group>";
};
089C167CFE841241C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
8D576317048677EA00EA77CD /* Info.plist */,
2B4F99F7077B0CE4004E36BA /* Credits.rtf */,
8D5B49A704867FD3000E48DA /* InfoPlist.strings */,
2B4F9961077B042E004E36BA /* NetSfPeopsSpuPluginMain.nib */,
);
name = Resources;
sourceTree = "<group>";
};
08FB77AFFE84173DC02AAC07 /* Source */ = {
isa = PBXGroup;
children = (
71E4E793109DC529003BB7AC /* adsr.c */,
71E4E794109DC529003BB7AC /* adsr.h */,
71E4E796109DC529003BB7AC /* cfg.h */,
71E4E797109DC529003BB7AC /* dma.c */,
71E4E798109DC529003BB7AC /* dma.h */,
71E4E799109DC529003BB7AC /* dsoundoss.h */,
71E4E79A109DC529003BB7AC /* externals.h */,
71E4E79B109DC529003BB7AC /* freeze.c */,
71E4E79C109DC529003BB7AC /* gauss_i.h */,
71E4E79D109DC529003BB7AC /* psemu.c */,
71E4E79E109DC529003BB7AC /* psemuxa.h */,
71E4E79F109DC529003BB7AC /* registers.c */,
71E4E7A0109DC529003BB7AC /* registers.h */,
71E4E7A1109DC529003BB7AC /* regs.h */,
71E4E7A2109DC529003BB7AC /* reverb.c */,
71E4E7A3109DC529003BB7AC /* reverb.h */,
71E4E7A4109DC529003BB7AC /* spu.c */,
71E4E7A5109DC529003BB7AC /* spu.h */,
71E4E7A6109DC529003BB7AC /* stdafx.h */,
71E4E7A7109DC529003BB7AC /* xa.c */,
71E4E7A8109DC529003BB7AC /* xa.h */,
2BFF7EFC0715D16A0061278A /* macosx.c */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB6FE9D52B211CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D576316048677EA00EA77CD /* PeopsSPU.psxplugin */,
);
name = Products;
sourceTree = "<group>";
};
2B7B2B8E072D9BD6007F0C35 /* Classes */ = {
isa = PBXGroup;
children = (
2B7B2B91072D9BE6007F0C35 /* PluginController.h */,
2B7B2B92072D9BE6007F0C35 /* PluginController.m */,
2B7B2BE6072DB1B6007F0C35 /* NamedSlider.h */,
2B7B2BE7072DB1B6007F0C35 /* NamedSlider.m */,
);
name = Classes;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
8D57630D048677EA00EA77CD /* PeopsSPU */ = {
isa = PBXNativeTarget;
buildConfigurationList = 71155B260FDFA2EB00EC0BC5 /* Build configuration list for PBXNativeTarget "PeopsSPU" */;
buildPhases = (
8D57630F048677EA00EA77CD /* Resources */,
8D576311048677EA00EA77CD /* Sources */,
8D576313048677EA00EA77CD /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = PeopsSPU;
productInstallPath = "$(HOME)/Library/Bundles";
productName = "PSX Plugin";
productReference = 8D576316048677EA00EA77CD /* PeopsSPU.psxplugin */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
buildConfigurationList = 71155B2B0FDFA2EB00EC0BC5 /* Build configuration list for PBXProject "PeopsSPU" */;
hasScannedForEncodings = 1;
mainGroup = 089C166AFE841209C02AAC07 /* PSX Plugin */;
projectDirPath = "";
targets = (
8D57630D048677EA00EA77CD /* PeopsSPU */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D57630F048677EA00EA77CD /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */,
2B4F9962077B042E004E36BA /* NetSfPeopsSpuPluginMain.nib in Resources */,
2B4F99F9077B0CE4004E36BA /* Credits.rtf in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D576311048677EA00EA77CD /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
2B7B2B94072D9BE6007F0C35 /* PluginController.m in Sources */,
2B7B2BE9072DB1B6007F0C35 /* NamedSlider.m in Sources */,
2BE18A00077EED7F008688C9 /* macosx.c in Sources */,
71E4E7AB109DC529003BB7AC /* dma.c in Sources */,
71E4E7AC109DC529003BB7AC /* freeze.c in Sources */,
71E4E7AD109DC529003BB7AC /* psemu.c in Sources */,
71E4E7AE109DC529003BB7AC /* registers.c in Sources */,
71E4E7B0109DC529003BB7AC /* spu.c in Sources */,
71E4E7B1109DC529003BB7AC /* xa.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
2B4F9961077B042E004E36BA /* NetSfPeopsSpuPluginMain.nib */ = {
isa = PBXVariantGroup;
children = (
2B6DA89307200A9A009F6FED /* English */,
);
name = NetSfPeopsSpuPluginMain.nib;
sourceTree = "<group>";
};
2B4F99F7077B0CE4004E36BA /* Credits.rtf */ = {
isa = PBXVariantGroup;
children = (
2B4F99F8077B0CE4004E36BA /* English */,
);
name = Credits.rtf;
sourceTree = "<group>";
};
8D5B49A704867FD3000E48DA /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
089C167EFE841241C02AAC07 /* English */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
71155B270FDFA2EB00EC0BC5 /* Development */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_MODEL_TUNING = "";
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
_MACOSX,
USEMACOSX,
);
HEADER_SEARCH_PATHS = (
src/,
../../plugins/dfsound,
);
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
LIBRARY_STYLE = BUNDLE;
OTHER_CFLAGS = "-DUSEMACOSX=1";
PRODUCT_NAME = PeopsSPU;
WRAPPER_EXTENSION = psxplugin;
ZERO_LINK = NO;
};
name = Development;
};
71155B290FDFA2EB00EC0BC5 /* Deployment */ = {
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
DEBUGGING_SYMBOLS = NO;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = "";
GCC_OPTIMIZATION_LEVEL = 2;
GCC_PREPROCESSOR_DEFINITIONS = (
_MACOSX,
USEMACOSX,
);
HEADER_SEARCH_PATHS = (
src/,
../../plugins/dfsound,
);
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins";
LIBRARY_STYLE = BUNDLE;
OTHER_CFLAGS = "";
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
PRODUCT_NAME = PeopsSPU;
WRAPPER_EXTENSION = psxplugin;
ZERO_LINK = NO;
};
name = Deployment;
};
71155B2C0FDFA2EB00EC0BC5 /* Development */ = {
isa = XCBuildConfiguration;
buildSettings = {
};
name = Development;
};
71155B2E0FDFA2EB00EC0BC5 /* Deployment */ = {
isa = XCBuildConfiguration;
buildSettings = {
};
name = Deployment;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
71155B260FDFA2EB00EC0BC5 /* Build configuration list for PBXNativeTarget "PeopsSPU" */ = {
isa = XCConfigurationList;
buildConfigurations = (
71155B270FDFA2EB00EC0BC5 /* Development */,
71155B290FDFA2EB00EC0BC5 /* Deployment */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Development;
};
71155B2B0FDFA2EB00EC0BC5 /* Build configuration list for PBXProject "PeopsSPU" */ = {
isa = XCConfigurationList;
buildConfigurations = (
71155B2C0FDFA2EB00EC0BC5 /* Development */,
71155B2E0FDFA2EB00EC0BC5 /* Deployment */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Development;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View File

@ -0,0 +1,13 @@
/* NetSfPeopsSPUPluginNamedSlider */
#import <Cocoa/Cocoa.h>
#define NamedSlider NetSfPeopsSPUPluginNamedSlider
@interface NamedSlider : NSSlider
{
NSArray *strings;
}
- (void)setStrings:(NSArray *)theStrings;
@end

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,162 @@
#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:YES], @"Enable XA",
[NSNumber numberWithBool:NO], @"XA Pitch",
//[NSNumber numberWithBool:YES], @"Decoded Buffer IRQ",
[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

View File

@ -0,0 +1,203 @@
/***************************************************************************
macosx.c - description
-------------------
begin : Wed May 15 2002
copyright : (C) 2002 by Pete Bernert
email : BlackDove@addcom.de
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. See also the license.txt file for *
* additional informations. *
* *
***************************************************************************/
#include "stdafx.h"
#define _IN_MACOSX
#ifdef _MACOSX
#include <Carbon/Carbon.h>
#include "externals.h"
#define kMaxSoundBuffers 20
//static int macBufferSize = 2, macBufferCount = 36;
//static float macSoundPitch = 1.0;
static long macSoundVolume = 100;
volatile int soundBufferAt = -1, soundPlayAt = -1, soundQueued = 0;
char *soundBuffer[kMaxSoundBuffers+1], *emptyBuffer;
SndChannelPtr sndChannel;
//ExtSoundHeader sndHeader;
CmpSoundHeader sndHeader;
SndCallBackUPP callBackUPP;
static int bufferIndex;
////////////////////////////////////////////////////////////////////////
// small linux time helper... only used for watchdog
////////////////////////////////////////////////////////////////////////
unsigned long timeGetTime()
{
struct timeval tv;
gettimeofday(&tv, 0); // well, maybe there are better ways
return tv.tv_sec * 1000 + tv.tv_usec/1000; // to do that, but at least it works
}
pascal void MacProcessSound(SndChannelPtr chan, SndCommand *cmd)
{
#pragma unused (chan, cmd)
if (soundQueued <= 0)
sndHeader.samplePtr = emptyBuffer;
else
{
sndHeader.samplePtr = soundBuffer[soundPlayAt];
soundPlayAt++;
if (soundPlayAt >= kMaxSoundBuffers/*macBufferCount*/)
soundPlayAt = 0;
soundQueued--;
}
SndCommand buffer = { bufferCmd, 0, (long) &sndHeader };
SndDoImmediate(sndChannel, &buffer);
SndCommand callback = { callBackCmd, 0, 0 };
SndDoCommand(sndChannel, &callback, true);
}
////////////////////////////////////////////////////////////////////////
// SETUP SOUND
////////////////////////////////////////////////////////////////////////
static int buffer_size;
void SetupSound(void)
{
int count;
callBackUPP = NewSndCallBackUPP(MacProcessSound);
if (sndChannel)
{
SndDisposeChannel(sndChannel, true);
sndChannel = nil;
}
buffer_size = 1;
while (buffer_size < (44100 / 60))
buffer_size <<= 1;
memset(&sndHeader, 0, sizeof(sndHeader));
sndHeader.numChannels = (iDisStereo ? 1 : 2);
sndHeader.sampleRate = 44100 << 16;
sndHeader.encode = cmpSH;
sndHeader.baseFrequency = kMiddleC;
sndHeader.numFrames = buffer_size;
sndHeader.sampleSize = 16;
#ifdef __POWERPC__
sndHeader.format = k16BitBigEndianFormat;
#else
sndHeader.format = k16BitLittleEndianFormat;
#endif
sndHeader.compressionID = fixedCompression;
if (soundBufferAt != -1)
{
free(soundBuffer[0]);
free(emptyBuffer);
}
soundBuffer[0] = (char *) calloc(buffer_size << 2, kMaxSoundBuffers);
for (count = 1; count <= kMaxSoundBuffers; count++)
soundBuffer[count] = soundBuffer[count-1] + (buffer_size << 2);
emptyBuffer = (char *) calloc(buffer_size << 2, 1);
soundBufferAt = soundPlayAt = soundQueued = 0;
bufferIndex = 0;
SndNewChannel(&sndChannel, sampledSynth, initStereo, callBackUPP);
SndCommand sndcmd;
UInt32 volume;
volume = (UInt32) (256.0 * (float) macSoundVolume / 100.0);
sndcmd.cmd = volumeCmd;
sndcmd.param1 = 0;
sndcmd.param2 = (volume << 16) | volume;
SndDoCommand(sndChannel, &sndcmd, true);
sndcmd.cmd = callBackCmd;
sndcmd.param1 = 0;
sndcmd.param2 = 0;
SndDoCommand(sndChannel, &sndcmd, true);
}
////////////////////////////////////////////////////////////////////////
// REMOVE SOUND
////////////////////////////////////////////////////////////////////////
void RemoveSound(void)
{
DisposeSndCallBackUPP(callBackUPP);
}
////////////////////////////////////////////////////////////////////////
// GET BYTES BUFFERED
////////////////////////////////////////////////////////////////////////
unsigned long SoundGetBytesBuffered(void)
{
int bytes;
int playAt = soundPlayAt;
if (soundBufferAt < playAt) {
bytes = (soundBuffer[kMaxSoundBuffers]-soundBuffer[playAt])+
(soundBuffer[soundBufferAt]-soundBuffer[0]);
} else {
bytes = soundBuffer[soundBufferAt]-soundBuffer[playAt];
}
//printf("sb=%i\n", bytes);
// if (bytes < SOUNDSIZE/2)
// return 0;
return bytes;
}
////////////////////////////////////////////////////////////////////////
// FEED SOUND DATA
////////////////////////////////////////////////////////////////////////
void SoundFeedStreamData(unsigned char* pSound,long lBytes)
{
int rem;
if (lBytes > (buffer_size<<2)*kMaxSoundBuffers) {
printf("sound feed overflow!\n");
return;
}
rem = soundBuffer[kMaxSoundBuffers]-(soundBuffer[soundBufferAt]+bufferIndex);
if (lBytes > rem) {
memcpy(soundBuffer[soundBufferAt]+bufferIndex, pSound, rem);
lBytes -= rem; pSound += rem;
soundQueued += kMaxSoundBuffers-soundBufferAt;
soundBufferAt = 0; bufferIndex = 0;
}
memcpy(soundBuffer[soundBufferAt]+bufferIndex, pSound, lBytes);
soundBufferAt += (lBytes+bufferIndex)/(buffer_size<<2);
soundQueued += (lBytes+bufferIndex)/(buffer_size<<2);
bufferIndex = (lBytes+bufferIndex)%(buffer_size<<2);
if (soundQueued >= kMaxSoundBuffers) {
printf("sound buffer overflow!\n");
}
}
#endif

View File

@ -16,7 +16,6 @@
***************************************************************************/
#include "stdafx.h"
#include "config.h"
#define _IN_SPU
@ -37,6 +36,8 @@
#if defined(USEALSA)
static char * libraryName = N_("ALSA Sound");
#elif defined (USEMACOSX)
static char * libraryName = N_("Mac OS X Sound");
#elif defined (USEOSS)
static char * libraryName = N_("OSS Sound");
#else
@ -435,7 +436,12 @@ INLINE int iGetInterpolationVal(int ch)
static void *MAINThread(void *arg)
{
int s_1,s_2,fa,ns,voldiv=iVolume;
int s_1,s_2,fa,ns;
#ifndef _MACOSX
int voldiv=iVolume;
#else
const int voldiv=1;
#endif
unsigned char * start;unsigned int nSample;
int ch,predict_nr,shift_factor,flags,d,s;
int bIRQReturn=0;
@ -967,14 +973,22 @@ long CALLBACK SPUtest(void)
// SPUCONFIGURE: call config dialog
long CALLBACK SPUconfigure(void)
{
#ifdef _MACOSX
DoConfiguration();
#else
StartCfgTool("CFG");
#endif
return 0;
}
// SPUABOUT: show about window
void CALLBACK SPUabout(void)
{
#ifdef _MACOSX
DoAbout();
#else
StartCfgTool("ABOUT");
#endif
}
// SETUP CALLBACKS

View File

@ -15,6 +15,9 @@
* *
***************************************************************************/
#ifndef _MACOSX
#include "config.h"
#endif
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
@ -36,6 +39,8 @@
#define LOWORD(l) ((unsigned short)(l))
#define HIWORD(l) ((unsigned short)(((unsigned long)(l) >> 16) & 0xFFFF))
#ifndef INLINE
#define INLINE inline
#endif
#include "psemuxa.h"