diff options
Diffstat (limited to 'macosx/plugins')
85 files changed, 0 insertions, 13600 deletions
diff --git a/macosx/plugins/DFCdrom/DFCdrom.xcodeproj/project.pbxproj b/macosx/plugins/DFCdrom/DFCdrom.xcodeproj/project.pbxproj deleted file mode 100644 index e5767cb..0000000 --- a/macosx/plugins/DFCdrom/DFCdrom.xcodeproj/project.pbxproj +++ /dev/null @@ -1,360 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 2BD707180555997500CB5D9B /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BD707170555997500CB5D9B /* IOKit.framework */; }; - 713DB2E811F113C30001BDD4 /* cdr.c in Sources */ = {isa = PBXBuildFile; fileRef = 713DB2E311F113C30001BDD4 /* cdr.c */; }; - 713DB2E911F113C30001BDD4 /* cdr.h in Headers */ = {isa = PBXBuildFile; fileRef = 713DB2E411F113C30001BDD4 /* cdr.h */; }; - 713DB2EB11F113C30001BDD4 /* util.c in Sources */ = {isa = PBXBuildFile; fileRef = 713DB2E611F113C30001BDD4 /* util.c */; }; - 71F3C32811F3CD0B007B9F12 /* cdr-macosx.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F3C32411F3CD0B007B9F12 /* cdr-macosx.c */; }; - 71F3C32911F3CD0B007B9F12 /* cfg.c in Sources */ = {isa = PBXBuildFile; fileRef = 71F3C32511F3CD0B007B9F12 /* cfg.c */; }; - 71F3C32A11F3CD0B007B9F12 /* PluginConfigController.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F3C32611F3CD0B007B9F12 /* PluginConfigController.h */; }; - 71F3C32B11F3CD0B007B9F12 /* PluginConfigController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71F3C32711F3CD0B007B9F12 /* PluginConfigController.m */; }; - 71F3C38611F3CFED007B9F12 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71F3C38511F3CFED007B9F12 /* AppKit.framework */; }; - 71F3C38811F3CFF7007B9F12 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71F3C38711F3CFF7007B9F12 /* Carbon.framework */; }; - 71F3C47A11F3D108007B9F12 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 71F3C47811F3D108007B9F12 /* Credits.rtf */; }; - 71F3C49D11F3D2B3007B9F12 /* DFCdromPluginConfig.nib in Resources */ = {isa = PBXBuildFile; fileRef = 71F3C49B11F3D2B3007B9F12 /* DFCdromPluginConfig.nib */; }; - 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>"; }; - 2BD707170555997500CB5D9B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; - 713DB2E311F113C30001BDD4 /* cdr.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; name = cdr.c; path = ../../../plugins/dfcdrom/cdr.c; sourceTree = SOURCE_ROOT; }; - 713DB2E411F113C30001BDD4 /* cdr.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; name = cdr.h; path = ../../../plugins/dfcdrom/cdr.h; sourceTree = SOURCE_ROOT; }; - 713DB2E611F113C30001BDD4 /* util.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; name = util.c; path = ../../../plugins/dfcdrom/util.c; sourceTree = SOURCE_ROOT; }; - 71F3C32411F3CD0B007B9F12 /* cdr-macosx.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; name = "cdr-macosx.c"; path = "macsrc/cdr-macosx.c"; sourceTree = "<group>"; }; - 71F3C32511F3CD0B007B9F12 /* cfg.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; name = cfg.c; path = macsrc/cfg.c; sourceTree = "<group>"; }; - 71F3C32611F3CD0B007B9F12 /* PluginConfigController.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; name = PluginConfigController.h; path = macsrc/PluginConfigController.h; sourceTree = "<group>"; }; - 71F3C32711F3CD0B007B9F12 /* PluginConfigController.m */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.objc; name = PluginConfigController.m; path = macsrc/PluginConfigController.m; sourceTree = "<group>"; }; - 71F3C38511F3CFED007B9F12 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; }; - 71F3C38711F3CFF7007B9F12 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; }; - 71F3C47911F3D108007B9F12 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; }; - 71F3C49C11F3D2B3007B9F12 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/DFCdromPluginConfig.nib; sourceTree = "<group>"; }; - 8D576316048677EA00EA77CD /* DFCdrom.psxplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DFCdrom.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 */, - 2BD707180555997500CB5D9B /* IOKit.framework in Frameworks */, - 71F3C38611F3CFED007B9F12 /* AppKit.framework in Frameworks */, - 71F3C38811F3CFF7007B9F12 /* Carbon.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 089C166AFE841209C02AAC07 /* CdrDevMac */ = { - isa = PBXGroup; - children = ( - 08FB77AFFE84173DC02AAC07 /* Source Files */, - 089C167CFE841241C02AAC07 /* Resources */, - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, - 19C28FB6FE9D52B211CA2CBB /* Products */, - ); - name = CdrDevMac; - sourceTree = "<group>"; - }; - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 71F3C38511F3CFED007B9F12 /* AppKit.framework */, - 71F3C38711F3CFF7007B9F12 /* Carbon.framework */, - 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */, - 2BD707170555997500CB5D9B /* IOKit.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = "<group>"; - }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 71F3C49B11F3D2B3007B9F12 /* DFCdromPluginConfig.nib */, - 71F3C47811F3D108007B9F12 /* Credits.rtf */, - 8D576317048677EA00EA77CD /* Info.plist */, - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = "<group>"; - }; - 08FB77AFFE84173DC02AAC07 /* Source Files */ = { - isa = PBXGroup; - children = ( - 71F3C32111F3CCEF007B9F12 /* macsrc */, - 71F3C30911F3CC22007B9F12 /* src */, - ); - name = "Source Files"; - sourceTree = "<group>"; - }; - 19C28FB6FE9D52B211CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D576316048677EA00EA77CD /* DFCdrom.psxplugin */, - ); - name = Products; - sourceTree = "<group>"; - }; - 71F3C30911F3CC22007B9F12 /* src */ = { - isa = PBXGroup; - children = ( - 713DB2E311F113C30001BDD4 /* cdr.c */, - 713DB2E411F113C30001BDD4 /* cdr.h */, - 713DB2E611F113C30001BDD4 /* util.c */, - ); - name = src; - sourceTree = "<group>"; - }; - 71F3C32111F3CCEF007B9F12 /* macsrc */ = { - isa = PBXGroup; - children = ( - 71F3C32411F3CD0B007B9F12 /* cdr-macosx.c */, - 71F3C32511F3CD0B007B9F12 /* cfg.c */, - 71F3C32611F3CD0B007B9F12 /* PluginConfigController.h */, - 71F3C32711F3CD0B007B9F12 /* PluginConfigController.m */, - ); - name = macsrc; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8D57630E048677EA00EA77CD /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 713DB2E911F113C30001BDD4 /* cdr.h in Headers */, - 71F3C32A11F3CD0B007B9F12 /* PluginConfigController.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8D57630D048677EA00EA77CD /* DFCdrom */ = { - isa = PBXNativeTarget; - buildConfigurationList = 710735990FDEED75004AD098 /* Build configuration list for PBXNativeTarget "DFCdrom" */; - buildPhases = ( - 8D57630E048677EA00EA77CD /* Headers */, - 8D57630F048677EA00EA77CD /* Resources */, - 8D576311048677EA00EA77CD /* Sources */, - 8D576313048677EA00EA77CD /* Frameworks */, - 8D576315048677EA00EA77CD /* Rez */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DFCdrom; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = CdrDevMac; - productReference = 8D576316048677EA00EA77CD /* DFCdrom.psxplugin */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 089C1669FE841209C02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 7107359E0FDEED75004AD098 /* Build configuration list for PBXProject "DFCdrom" */; - hasScannedForEncodings = 1; - mainGroup = 089C166AFE841209C02AAC07 /* CdrDevMac */; - projectDirPath = ""; - targets = ( - 8D57630D048677EA00EA77CD /* DFCdrom */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D57630F048677EA00EA77CD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */, - 71F3C47A11F3D108007B9F12 /* Credits.rtf in Resources */, - 71F3C49D11F3D2B3007B9F12 /* DFCdromPluginConfig.nib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXRezBuildPhase section */ - 8D576315048677EA00EA77CD /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXRezBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D576311048677EA00EA77CD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 713DB2E811F113C30001BDD4 /* cdr.c in Sources */, - 713DB2EB11F113C30001BDD4 /* util.c in Sources */, - 71F3C32811F3CD0B007B9F12 /* cdr-macosx.c in Sources */, - 71F3C32911F3CD0B007B9F12 /* cfg.c in Sources */, - 71F3C32B11F3CD0B007B9F12 /* PluginConfigController.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 71F3C47811F3D108007B9F12 /* Credits.rtf */ = { - isa = PBXVariantGroup; - children = ( - 71F3C47911F3D108007B9F12 /* English */, - ); - name = Credits.rtf; - sourceTree = "<group>"; - }; - 71F3C49B11F3D2B3007B9F12 /* DFCdromPluginConfig.nib */ = { - isa = PBXVariantGroup; - children = ( - 71F3C49C11F3D2B3007B9F12 /* English */, - ); - name = DFCdromPluginConfig.nib; - sourceTree = "<group>"; - }; - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C167EFE841241C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = "<group>"; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 7107359A0FDEED75004AD098 /* 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_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins"; - LIBRARY_STYLE = BUNDLE; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - OTHER_REZFLAGS = ""; - PRODUCT_NAME = DFCdrom; - SECTORDER_FLAGS = ""; - SYMROOT = ../../build; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = psxplugin; - }; - name = Development; - }; - 7107359B0FDEED75004AD098 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUGGING_SYMBOLS = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins"; - LIBRARY_STYLE = BUNDLE; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - OTHER_REZFLAGS = ""; - PRODUCT_NAME = DFCdrom; - SECTORDER_FLAGS = ""; - SYMROOT = ../../build; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = psxplugin; - ZERO_LINK = NO; - }; - name = Deployment; - }; - 7107359F0FDEED75004AD098 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = "_MACOSX=1"; - HEADER_SEARCH_PATHS = ( - ../../../libpcsxcore, - ../.., - ../../../plugins/dfcdrom, - ); - STRIP_INSTALLED_PRODUCT = NO; - }; - name = Development; - }; - 710735A00FDEED75004AD098 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_MODEL_TUNING = ""; - GCC_PREPROCESSOR_DEFINITIONS = "_MACOSX=1"; - HEADER_SEARCH_PATHS = ( - ../../../libpcsxcore, - ../.., - ../../../plugins/dfcdrom, - ); - }; - name = Deployment; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 710735990FDEED75004AD098 /* Build configuration list for PBXNativeTarget "DFCdrom" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7107359A0FDEED75004AD098 /* Development */, - 7107359B0FDEED75004AD098 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Development; - }; - 7107359E0FDEED75004AD098 /* Build configuration list for PBXProject "DFCdrom" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7107359F0FDEED75004AD098 /* Development */, - 710735A00FDEED75004AD098 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Development; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/macosx/plugins/DFCdrom/English.lproj/Credits.rtf b/macosx/plugins/DFCdrom/English.lproj/Credits.rtf deleted file mode 100644 index 76fa644..0000000 --- a/macosx/plugins/DFCdrom/English.lproj/Credits.rtf +++ /dev/null @@ -1,13 +0,0 @@ -{\rtf1\mac\ansicpg10025\cocoartf824\cocoasubrtf420 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural - -\f0\b\fs24 \cf0 Original coder: -\f1\b0 \ - linuzappz\ -\ - -\f0\b Macintosh Port: -\f1\b0 \ - Wei Mingzhi}
\ No newline at end of file diff --git a/macosx/plugins/DFCdrom/English.lproj/DFCdromPluginConfig.nib/classes.nib b/macosx/plugins/DFCdrom/English.lproj/DFCdromPluginConfig.nib/classes.nib deleted file mode 100644 index b1e8f6c..0000000 --- a/macosx/plugins/DFCdrom/English.lproj/DFCdromPluginConfig.nib/classes.nib +++ /dev/null @@ -1,18 +0,0 @@ -{ - IBClasses = ( - { - ACTIONS = {cancel = id; ok = id; }; - CLASS = DFCdromPluginConfigController; - LANGUAGE = ObjC; - OUTLETS = {CacheSize = NSSlider; Cached = NSControl; CdSpeed = NSPopUpButton; }; - SUPERCLASS = NSWindowController; - }, - { - ACTIONS = {"" = id; }; - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - } - ); - IBVersion = 1; -}
\ No newline at end of file diff --git a/macosx/plugins/DFCdrom/English.lproj/DFCdromPluginConfig.nib/info.nib b/macosx/plugins/DFCdrom/English.lproj/DFCdromPluginConfig.nib/info.nib deleted file mode 100644 index f90f50b..0000000 --- a/macosx/plugins/DFCdrom/English.lproj/DFCdromPluginConfig.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ -<?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>117 49 561 249 0 0 1024 746 </string> - <key>IBFramework Version</key> - <string>446.1</string> - <key>IBOpenObjects</key> - <array> - <integer>5</integer> - </array> - <key>IBSystem Version</key> - <string>8P2137</string> -</dict> -</plist> diff --git a/macosx/plugins/DFCdrom/English.lproj/DFCdromPluginConfig.nib/keyedobjects.nib b/macosx/plugins/DFCdrom/English.lproj/DFCdromPluginConfig.nib/keyedobjects.nib Binary files differdeleted file mode 100644 index 64a5021..0000000 --- a/macosx/plugins/DFCdrom/English.lproj/DFCdromPluginConfig.nib/keyedobjects.nib +++ /dev/null diff --git a/macosx/plugins/DFCdrom/English.lproj/InfoPlist.strings b/macosx/plugins/DFCdrom/English.lproj/InfoPlist.strings Binary files differdeleted file mode 100755 index ea885a5..0000000 --- a/macosx/plugins/DFCdrom/English.lproj/InfoPlist.strings +++ /dev/null diff --git a/macosx/plugins/DFCdrom/Info.plist b/macosx/plugins/DFCdrom/Info.plist deleted file mode 100644 index ee25402..0000000 --- a/macosx/plugins/DFCdrom/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ -<?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>DFCdrom</string> - <key>CFBundleIconFile</key> - <string></string> - <key>CFBundleIdentifier</key> - <string>net.pcsx.DFCdrom</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundlePackageType</key> - <string>PsxP</string> - <key>CFBundleSignature</key> - <string>CdDI</string> - <key>CFBundleVersion</key> - <string>1.0</string> -</dict> -</plist> diff --git a/macosx/plugins/DFCdrom/macsrc/PluginConfigController.h b/macosx/plugins/DFCdrom/macsrc/PluginConfigController.h deleted file mode 100644 index b7f6faf..0000000 --- a/macosx/plugins/DFCdrom/macsrc/PluginConfigController.h +++ /dev/null @@ -1,18 +0,0 @@ -#define PluginConfigController DFCdromPluginConfigController - -#import <Cocoa/Cocoa.h> - -@interface PluginConfigController : NSWindowController -{ - IBOutlet NSControl *Cached; - IBOutlet NSSlider *CacheSize; - IBOutlet NSPopUpButton *CdSpeed; - - NSMutableDictionary *keyValues; -} -- (IBAction)cancel:(id)sender; -- (IBAction)ok:(id)sender; - -- (void)loadValues; - -@end diff --git a/macosx/plugins/DFCdrom/macsrc/PluginConfigController.m b/macosx/plugins/DFCdrom/macsrc/PluginConfigController.m deleted file mode 100644 index 02b3a76..0000000 --- a/macosx/plugins/DFCdrom/macsrc/PluginConfigController.m +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on: Cdrom for Psemu Pro like Emulators - * By: linuzappz <linuzappz@hotmail.com> - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#import "PluginConfigController.h" -#include "cdr.h" - -#define APP_ID @"net.pcsx.DFCdrom" -#define PrefsKey APP_ID @" Settings" - -static PluginConfigController *windowController; - -void AboutDlgProc() -{ - // 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]]; -} - -void ConfDlgProc() -{ - NSWindow *window; - - if (windowController == nil) { - windowController = [[PluginConfigController alloc] initWithWindowNibName:@"DFCdromPluginConfig"]; - } - window = [windowController window]; - - [windowController loadValues]; - - [window center]; - [window makeKeyAndOrderFront:nil]; -} - -void ReadConfig() -{ - NSDictionary *keyValues; - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys: - [[NSMutableDictionary alloc] initWithObjectsAndKeys: - [NSNumber numberWithBool:YES], @"Threaded", - [NSNumber numberWithInt:64], @"Cache Size", - [NSNumber numberWithInt:0], @"Speed", - nil], PrefsKey, nil]]; - - keyValues = [defaults dictionaryForKey:PrefsKey]; - - ReadMode = ([[keyValues objectForKey:@"Threaded"] boolValue] ? THREADED : NORMAL); - CacheSize = [[keyValues objectForKey:@"Cache Size"] intValue]; - CdrSpeed = [[keyValues objectForKey:@"Speed"] intValue]; -} - -@implementation PluginConfigController - -- (IBAction)cancel:(id)sender -{ - [self close]; -} - -- (IBAction)ok:(id)sender -{ - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - NSMutableDictionary *writeDic = [NSMutableDictionary dictionaryWithDictionary:keyValues]; - - [writeDic setObject:[NSNumber numberWithInt:[Cached intValue]] forKey:@"Threaded"]; - [writeDic setObject:[NSNumber numberWithInt:[CacheSize intValue]] forKey:@"Cache Size"]; - - switch ([CdSpeed indexOfSelectedItem]) { - case 1: [writeDic setObject:[NSNumber numberWithInt:1] forKey:@"Speed"]; break; - case 2: [writeDic setObject:[NSNumber numberWithInt:2] forKey:@"Speed"]; break; - case 3: [writeDic setObject:[NSNumber numberWithInt:4] forKey:@"Speed"]; break; - case 4: [writeDic setObject:[NSNumber numberWithInt:8] forKey:@"Speed"]; break; - case 5: [writeDic setObject:[NSNumber numberWithInt:16] forKey:@"Speed"]; break; - case 6: [writeDic setObject:[NSNumber numberWithInt:32] forKey:@"Speed"]; break; - default: [writeDic setObject:[NSNumber numberWithInt:0] forKey:@"Speed"]; break; - } - - // write to defaults - [defaults setObject:writeDic forKey:PrefsKey]; - [defaults synchronize]; - - // and set global values accordingly - ReadConfig(); - - [self close]; -} - -- (void)loadValues -{ - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - ReadConfig(); - - // load from preferences - [keyValues release]; - keyValues = [[defaults dictionaryForKey:PrefsKey] retain]; - - [Cached setIntValue:[[keyValues objectForKey:@"Threaded"] intValue]]; - [CacheSize setIntValue:[[keyValues objectForKey:@"Cache Size"] intValue]]; - - switch ([[keyValues objectForKey:@"Speed"] intValue]) { - case 1: [CdSpeed selectItemAtIndex:1]; break; - case 2: [CdSpeed selectItemAtIndex:2]; break; - case 4: [CdSpeed selectItemAtIndex:3]; break; - case 8: [CdSpeed selectItemAtIndex:4]; break; - case 16: [CdSpeed selectItemAtIndex:5]; break; - case 32: [CdSpeed selectItemAtIndex:6]; break; - default: [CdSpeed selectItemAtIndex:0]; break; - } -} - -- (void)awakeFromNib -{ -} - -@end diff --git a/macosx/plugins/DFCdrom/macsrc/cdr-macosx.c b/macosx/plugins/DFCdrom/macsrc/cdr-macosx.c deleted file mode 100644 index 806b659..0000000 --- a/macosx/plugins/DFCdrom/macsrc/cdr-macosx.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on: Cdrom for Psemu Pro like Emulators - * By: linuzappz <linuzappz@hotmail.com> - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#include "cdr.h" - -#ifdef _MACOSX - -#include <IOKit/IOKitLib.h> -#include <IOKit/IOBSD.h> -#include <IOKit/storage/IOCDMedia.h> -#include <IOKit/storage/IODVDMedia.h> -#include <IOKit/storage/IOMedia.h> -#include <IOKit/storage/IOCDMediaBSDClient.h> -#include <CoreFoundation/CoreFoundation.h> - -int cdHandle = -1; -char cdDevice[4096] = ""; - -static int IsPsxDisc(const char *dev) { - int fd; - char buf[CD_FRAMESIZE_RAW]; - dk_cd_read_t r; - - fd = open(dev, O_RDONLY, 0); - if (fd < 0) return 0; - - memset(&r, 0, sizeof(r)); - - r.offset = msf_to_lba(0, 2, 4) * CD_FRAMESIZE_RAW; - r.sectorArea = 0xF8; - r.sectorType = kCDSectorTypeUnknown; - r.bufferLength = CD_FRAMESIZE_RAW; - r.buffer = buf; - - if (ioctl(fd, DKIOCCDREAD, &r) != kIOReturnSuccess) { - close(fd); - return 0; - } - - close(fd); - - if (strncmp(buf + 56, "Sony Computer Entertainment", 27) == 0) { - return 1; - } - - return 0; -} - -static void FindCdDevice(char *dev) { - io_object_t next_media; - kern_return_t kern_result; - io_iterator_t media_iterator; - CFMutableDictionaryRef classes_to_match; - const char *name, *cd = kIOCDMediaClass, *dvd = kIODVDMediaClass; - - dev[0] = '\0'; - name = cd; - -start: - classes_to_match = IOServiceMatching(name); - if (classes_to_match == NULL) goto end; - - CFDictionarySetValue(classes_to_match, CFSTR(kIOMediaEjectableKey), - kCFBooleanTrue); - - kern_result = IOServiceGetMatchingServices(kIOMasterPortDefault, - classes_to_match, &media_iterator); - - if (kern_result != KERN_SUCCESS) goto end; - - next_media = IOIteratorNext(media_iterator); - if (next_media != 0) { - char psz_buf[0x32]; - size_t dev_path_length; - CFTypeRef str_bsd_path; - - do { - str_bsd_path = IORegistryEntryCreateCFProperty(next_media, - CFSTR(kIOBSDNameKey), kCFAllocatorDefault, 0); - - if (str_bsd_path == NULL) { - IOObjectRelease(next_media); - continue; - } - - strcpy(psz_buf, "/dev/r"); - dev_path_length = strlen(psz_buf); - - if (CFStringGetCString(str_bsd_path, (char *)&psz_buf + dev_path_length, - sizeof(psz_buf) - dev_path_length, kCFStringEncodingASCII)) - { - strcpy(dev, psz_buf); - - if (IsPsxDisc(dev)) { - CFRelease(str_bsd_path); - IOObjectRelease(next_media); - IOObjectRelease(media_iterator); - return; - } - } - - CFRelease(str_bsd_path); - IOObjectRelease(next_media); - } while ((next_media = IOIteratorNext(media_iterator)) != 0); - } - - IOObjectRelease(media_iterator); - -end: - if (dev[0] == '\0') { - if (name == cd) { - name = dvd; // Is this really necessary or correct? Dunno... - goto start; - } - } -} - -int OpenCdHandle(const char *dev) { - if (dev != NULL && dev[0] != '\0') strcpy(cdDevice, dev); - else if (cdDevice[0] == '\0') FindCdDevice(cdDevice); - - cdHandle = open(cdDevice, O_RDONLY, 0); - if (cdHandle < 0) return -1; - - if (CdrSpeed > 0) { - u_int16_t speed = kCDSpeedMin * CdrSpeed; - ioctl(cdHandle, DKIOCCDSETSPEED, &speed); - } - - return 0; -} - -void CloseCdHandle() { - if (cdHandle != -1) close(cdHandle); - cdHandle = -1; -} - -int IsCdHandleOpen() { - return 1; -} - -long GetTN(unsigned char *buffer) { - if (cdHandle < 0) return -1; - - // TODO - buffer[0] = 1; - buffer[1] = 1; - - return 0; -} - -long GetTD(unsigned char track, unsigned char *buffer) { - if (cdHandle < 0) return -1; - - // TODO - memset(buffer + 1, 0, 3); - return 0; -} - -long GetTE(unsigned char track, unsigned char *m, unsigned char *s, unsigned char *f) { - return -1; // TODO -} - -long ReadSector(crdata *cr) { - int lba; - dk_cd_read_t r; - - if (cdHandle < 0) return -1; - - lba = msf_to_lba(cr->msf.cdmsf_min0, cr->msf.cdmsf_sec0, cr->msf.cdmsf_frame0); - - memset(&r, 0, sizeof(r)); - - r.offset = lba * CD_FRAMESIZE_RAW; - r.sectorArea = 0xF8; - r.sectorType = kCDSectorTypeUnknown; - r.bufferLength = CD_FRAMESIZE_RAW; - r.buffer = cr->buf; - - if (ioctl(cdHandle, DKIOCCDREAD, &r) != kIOReturnSuccess) { - return -1; - } - - return 0; -} - -long PlayCDDA(unsigned char *sector) { - return 0; // TODO -} - -long StopCDDA() { - return 0; // TODO -} - -long GetStatus(int playing, struct CdrStat *stat) { - memset(stat, 0, sizeof(struct CdrStat)); - stat->Type = 0x01; - - // Close and reopen the CD handle. If opening failed, - // then there is no CD in drive. - // Note that this WILL be screwed if user inserted another - // removable device such as USB stick when tray is open. - // There may be a better way, but this should do the job. - if (cdHandle >= 0) { - close(cdHandle); - cdHandle = -1; - } - - cdHandle = open(cdDevice, O_RDONLY, 0); - if (cdHandle < 0) { - // No CD in drive - stat->Type = 0xff; - stat->Status |= 0x10; - } else { - if (CdrSpeed > 0) { - u_int16_t speed = kCDSpeedMin * CdrSpeed; - ioctl(cdHandle, DKIOCCDSETSPEED, &speed); - } - } - - return 0; -} - -unsigned char *ReadSub(const unsigned char *time) { - return NULL; // TODO -} - -char *CDRgetDriveLetter(void) { - return cdDevice; -} - -#endif diff --git a/macosx/plugins/DFCdrom/macsrc/cfg.c b/macosx/plugins/DFCdrom/macsrc/cfg.c deleted file mode 100644 index 6b5c151..0000000 --- a/macosx/plugins/DFCdrom/macsrc/cfg.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on: Cdrom for Psemu Pro like Emulators - * By: linuzappz <linuzappz@hotmail.com> - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#include "cdr.h" - -void AboutDlgProc(); -void ConfDlgProc(); -void ReadConfig(); - -char CdromDev[256]; -long ReadMode; -long UseSubQ; -long CacheSize; -long CdrSpeed; -long SpinDown; - -void LoadConf() { - strcpy(CdromDev, ""); - ReadMode = THREADED; - UseSubQ = 0; - CacheSize = 64; - CdrSpeed = 0; - SpinDown = SPINDOWN_VENDOR_SPECIFIC; - - ReadConfig(); -} - -long CDRconfigure() { - ConfDlgProc(); - return 0; -} - -void CDRabout() { - AboutDlgProc(); -}
\ No newline at end of file diff --git a/macosx/plugins/DFCdrom/version.plist b/macosx/plugins/DFCdrom/version.plist deleted file mode 100644 index a9c51a6..0000000 --- a/macosx/plugins/DFCdrom/version.plist +++ /dev/null @@ -1,16 +0,0 @@ -<?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>BuildVersion</key> - <string>38</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleVersion</key> - <string>1.0</string> - <key>ProjectName</key> - <string>DFCdrom</string> - <key>SourceVersion</key> - <string>2350000</string> -</dict> -</plist> diff --git a/macosx/plugins/DFInput/DFInput.xcodeproj/project.pbxproj b/macosx/plugins/DFInput/DFInput.xcodeproj/project.pbxproj deleted file mode 100644 index 35a8d87..0000000 --- a/macosx/plugins/DFInput/DFInput.xcodeproj/project.pbxproj +++ /dev/null @@ -1,569 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 2B679862069193F300E2BD4F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B679860069193F300E2BD4F /* Cocoa.framework */; }; - 2B679863069193F300E2BD4F /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B679861069193F300E2BD4F /* IOKit.framework */; }; - 71054DC51204A20900AC2CCB /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DA11204A20900AC2CCB /* begin_code.h */; }; - 71054DC61204A20900AC2CCB /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DA21204A20900AC2CCB /* close_code.h */; }; - 71054DC71204A20900AC2CCB /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DA31204A20900AC2CCB /* SDL.h */; }; - 71054DC81204A20900AC2CCB /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DA41204A20900AC2CCB /* SDL_assert.h */; }; - 71054DC91204A20900AC2CCB /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DA51204A20900AC2CCB /* SDL_config.h */; }; - 71054DCA1204A20900AC2CCB /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DA61204A20900AC2CCB /* SDL_endian.h */; }; - 71054DCB1204A20900AC2CCB /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DA71204A20900AC2CCB /* SDL_error.h */; }; - 71054DCC1204A20900AC2CCB /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DA81204A20900AC2CCB /* SDL_haptic.h */; }; - 71054DCD1204A20900AC2CCB /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DA91204A20900AC2CCB /* SDL_joystick.h */; }; - 71054DCE1204A20900AC2CCB /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DAA1204A20900AC2CCB /* SDL_main.h */; }; - 71054DD01204A20900AC2CCB /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DAC1204A20900AC2CCB /* SDL_platform.h */; }; - 71054DD31204A20900AC2CCB /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DAF1204A20900AC2CCB /* SDL_stdinc.h */; }; - 71054DD61204A20900AC2CCB /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 71054DB51204A20900AC2CCB /* SDL_syshaptic.c */; }; - 71054DD71204A20900AC2CCB /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 71054DB61204A20900AC2CCB /* SDL_haptic.c */; }; - 71054DD81204A20900AC2CCB /* SDL_haptic_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DB71204A20900AC2CCB /* SDL_haptic_c.h */; }; - 71054DD91204A20900AC2CCB /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DB81204A20900AC2CCB /* SDL_syshaptic.h */; }; - 71054DDA1204A20900AC2CCB /* SDL_sysjoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 71054DBB1204A20900AC2CCB /* SDL_sysjoystick.c */; }; - 71054DDB1204A20900AC2CCB /* SDL_sysjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DBC1204A20900AC2CCB /* SDL_sysjoystick_c.h */; }; - 71054DDC1204A20900AC2CCB /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 71054DBD1204A20900AC2CCB /* SDL_joystick.c */; }; - 71054DDD1204A20900AC2CCB /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DBE1204A20900AC2CCB /* SDL_joystick_c.h */; }; - 71054DDE1204A20900AC2CCB /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DBF1204A20900AC2CCB /* SDL_sysjoystick.h */; }; - 71054DDF1204A20900AC2CCB /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = 71054DC01204A20900AC2CCB /* SDL.c */; }; - 71054DE21204A20900AC2CCB /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = 71054DC31204A20900AC2CCB /* SDL_error.c */; }; - 71054DE31204A20900AC2CCB /* SDL_error_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 71054DC41204A20900AC2CCB /* SDL_error_c.h */; }; - 71054E211204A49F00AC2CCB /* ForceFeedback.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71054E201204A49F00AC2CCB /* ForceFeedback.framework */; }; - 7136F1DA1200E163001973D9 /* ControllerList.h in Headers */ = {isa = PBXBuildFile; fileRef = 71E861A411FF75AC001C1826 /* ControllerList.h */; }; - 7136F1DB1200E163001973D9 /* ControllerList.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E861A511FF75AC001C1826 /* ControllerList.m */; }; - 7136F1DC1200E164001973D9 /* MappingCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 71E861A811FF75AC001C1826 /* MappingCell.h */; }; - 7136F1DD1200E164001973D9 /* MappingCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E861A911FF75AC001C1826 /* MappingCell.m */; }; - 7136F1DE1200E165001973D9 /* PadController.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E861AB11FF75AC001C1826 /* PadController.m */; }; - 7136F1DF1200E165001973D9 /* PadController.h in Headers */ = {isa = PBXBuildFile; fileRef = 71E861AA11FF75AC001C1826 /* PadController.h */; }; - 7136F51A12011BB4001973D9 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 7136F51812011BB4001973D9 /* Credits.rtf */; }; - 714FA82E11FC822A00517F47 /* analog.c in Sources */ = {isa = PBXBuildFile; fileRef = 714FA82A11FC822A00517F47 /* analog.c */; }; - 714FA82F11FC822A00517F47 /* pad.c in Sources */ = {isa = PBXBuildFile; fileRef = 714FA82B11FC822A00517F47 /* pad.c */; }; - 714FA83011FC822A00517F47 /* pad.h in Headers */ = {isa = PBXBuildFile; fileRef = 714FA82C11FC822A00517F47 /* pad.h */; }; - 714FA83111FC822A00517F47 /* sdljoy.c in Sources */ = {isa = PBXBuildFile; fileRef = 714FA82D11FC822A00517F47 /* sdljoy.c */; }; - 714FA8A011FC846800517F47 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 714FA89F11FC846800517F47 /* Carbon.framework */; }; - 714FA8FA11FC863500517F47 /* cfg.c in Sources */ = {isa = PBXBuildFile; fileRef = 714FA8F811FC863500517F47 /* cfg.c */; }; - 714FA8FB11FC863500517F47 /* xkb.c in Sources */ = {isa = PBXBuildFile; fileRef = 714FA8F911FC863500517F47 /* xkb.c */; }; - 7192EAAE1200D54500038B92 /* cfg.h in Headers */ = {isa = PBXBuildFile; fileRef = 7192EAAB1200D54500038B92 /* cfg.h */; }; - 71E861B611FF75AC001C1826 /* PadView.h in Headers */ = {isa = PBXBuildFile; fileRef = 71E861AC11FF75AC001C1826 /* PadView.h */; }; - 71E861B711FF75AC001C1826 /* PadView.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E861AD11FF75AC001C1826 /* PadView.m */; }; - 71E861BC11FF75BA001C1826 /* NetPcsxHIDInputPluginMain.nib in Resources */ = {isa = PBXBuildFile; fileRef = 71E861BA11FF75BA001C1826 /* NetPcsxHIDInputPluginMain.nib */; }; - 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>"; }; - 2B679860069193F300E2BD4F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; - 2B679861069193F300E2BD4F /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; - 71054DA11204A20900AC2CCB /* begin_code.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = begin_code.h; sourceTree = "<group>"; }; - 71054DA21204A20900AC2CCB /* close_code.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = close_code.h; sourceTree = "<group>"; }; - 71054DA31204A20900AC2CCB /* SDL.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL.h; sourceTree = "<group>"; }; - 71054DA41204A20900AC2CCB /* SDL_assert.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_assert.h; sourceTree = "<group>"; }; - 71054DA51204A20900AC2CCB /* SDL_config.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_config.h; sourceTree = "<group>"; }; - 71054DA61204A20900AC2CCB /* SDL_endian.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_endian.h; sourceTree = "<group>"; }; - 71054DA71204A20900AC2CCB /* SDL_error.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_error.h; sourceTree = "<group>"; }; - 71054DA81204A20900AC2CCB /* SDL_haptic.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_haptic.h; sourceTree = "<group>"; }; - 71054DA91204A20900AC2CCB /* SDL_joystick.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_joystick.h; sourceTree = "<group>"; }; - 71054DAA1204A20900AC2CCB /* SDL_main.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_main.h; sourceTree = "<group>"; }; - 71054DAC1204A20900AC2CCB /* SDL_platform.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_platform.h; sourceTree = "<group>"; }; - 71054DAF1204A20900AC2CCB /* SDL_stdinc.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_stdinc.h; sourceTree = "<group>"; }; - 71054DB51204A20900AC2CCB /* SDL_syshaptic.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; path = SDL_syshaptic.c; sourceTree = "<group>"; }; - 71054DB61204A20900AC2CCB /* SDL_haptic.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; path = SDL_haptic.c; sourceTree = "<group>"; }; - 71054DB71204A20900AC2CCB /* SDL_haptic_c.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_haptic_c.h; sourceTree = "<group>"; }; - 71054DB81204A20900AC2CCB /* SDL_syshaptic.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_syshaptic.h; sourceTree = "<group>"; }; - 71054DBB1204A20900AC2CCB /* SDL_sysjoystick.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; path = SDL_sysjoystick.c; sourceTree = "<group>"; }; - 71054DBC1204A20900AC2CCB /* SDL_sysjoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_sysjoystick_c.h; sourceTree = "<group>"; }; - 71054DBD1204A20900AC2CCB /* SDL_joystick.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; path = SDL_joystick.c; sourceTree = "<group>"; }; - 71054DBE1204A20900AC2CCB /* SDL_joystick_c.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_joystick_c.h; sourceTree = "<group>"; }; - 71054DBF1204A20900AC2CCB /* SDL_sysjoystick.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_sysjoystick.h; sourceTree = "<group>"; }; - 71054DC01204A20900AC2CCB /* SDL.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; path = SDL.c; sourceTree = "<group>"; }; - 71054DC31204A20900AC2CCB /* SDL_error.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; path = SDL_error.c; sourceTree = "<group>"; }; - 71054DC41204A20900AC2CCB /* SDL_error_c.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; path = SDL_error_c.h; sourceTree = "<group>"; }; - 71054E201204A49F00AC2CCB /* ForceFeedback.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ForceFeedback.framework; path = /System/Library/Frameworks/ForceFeedback.framework; sourceTree = "<absolute>"; }; - 7136F51912011BB4001973D9 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; }; - 714FA82A11FC822A00517F47 /* analog.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; name = analog.c; path = ../../../plugins/dfinput/analog.c; sourceTree = SOURCE_ROOT; }; - 714FA82B11FC822A00517F47 /* pad.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; name = pad.c; path = ../../../plugins/dfinput/pad.c; sourceTree = SOURCE_ROOT; }; - 714FA82C11FC822A00517F47 /* pad.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; name = pad.h; path = ../../../plugins/dfinput/pad.h; sourceTree = SOURCE_ROOT; }; - 714FA82D11FC822A00517F47 /* sdljoy.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; name = sdljoy.c; path = ../../../plugins/dfinput/sdljoy.c; sourceTree = SOURCE_ROOT; }; - 714FA89F11FC846800517F47 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; }; - 714FA8F811FC863500517F47 /* cfg.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; name = cfg.c; path = macsrc/cfg.c; sourceTree = "<group>"; }; - 714FA8F911FC863500517F47 /* xkb.c */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.c; name = xkb.c; path = macsrc/xkb.c; sourceTree = "<group>"; }; - 7192EAAB1200D54500038B92 /* cfg.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; name = cfg.h; path = macsrc/cfg.h; sourceTree = "<group>"; }; - 71E861A411FF75AC001C1826 /* ControllerList.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; name = ControllerList.h; path = macsrc/ControllerList.h; sourceTree = "<group>"; }; - 71E861A511FF75AC001C1826 /* ControllerList.m */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.objc; name = ControllerList.m; path = macsrc/ControllerList.m; sourceTree = "<group>"; }; - 71E861A811FF75AC001C1826 /* MappingCell.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; name = MappingCell.h; path = macsrc/MappingCell.h; sourceTree = "<group>"; }; - 71E861A911FF75AC001C1826 /* MappingCell.m */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.objc; name = MappingCell.m; path = macsrc/MappingCell.m; sourceTree = "<group>"; }; - 71E861AA11FF75AC001C1826 /* PadController.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; name = PadController.h; path = macsrc/PadController.h; sourceTree = "<group>"; }; - 71E861AB11FF75AC001C1826 /* PadController.m */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.objc; name = PadController.m; path = macsrc/PadController.m; sourceTree = "<group>"; }; - 71E861AC11FF75AC001C1826 /* PadView.h */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.h; name = PadView.h; path = macsrc/PadView.h; sourceTree = "<group>"; }; - 71E861AD11FF75AC001C1826 /* PadView.m */ = {isa = PBXFileReference; fileEncoding = 0; lastKnownFileType = sourcecode.c.objc; name = PadView.m; path = macsrc/PadView.m; sourceTree = "<group>"; }; - 71E861BB11FF75BA001C1826 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/NetPcsxHIDInputPluginMain.nib; sourceTree = "<group>"; }; - 8D576316048677EA00EA77CD /* DFInput.psxplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DFInput.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 */, - 2B679862069193F300E2BD4F /* Cocoa.framework in Frameworks */, - 2B679863069193F300E2BD4F /* IOKit.framework in Frameworks */, - 714FA8A011FC846800517F47 /* Carbon.framework in Frameworks */, - 71054E211204A49F00AC2CCB /* ForceFeedback.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 089C166AFE841209C02AAC07 /* DFInput */ = { - isa = PBXGroup; - children = ( - 714FA82911FC820D00517F47 /* macsrc */, - 714FA82811FC820900517F47 /* src */, - 71054D9F1204A20900AC2CCB /* SDL */, - 089C167CFE841241C02AAC07 /* Resources */, - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */, - 19C28FB6FE9D52B211CA2CBB /* Products */, - ); - name = DFInput; - sourceTree = "<group>"; - }; - 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = { - isa = PBXGroup; - children = ( - 71054E201204A49F00AC2CCB /* ForceFeedback.framework */, - 714FA89F11FC846800517F47 /* Carbon.framework */, - 2B679860069193F300E2BD4F /* Cocoa.framework */, - 2B679861069193F300E2BD4F /* IOKit.framework */, - 0AA1909FFE8422F4C02AAC07 /* CoreFoundation.framework */, - ); - name = "External Frameworks and Libraries"; - sourceTree = "<group>"; - }; - 089C167CFE841241C02AAC07 /* Resources */ = { - isa = PBXGroup; - children = ( - 7136F51812011BB4001973D9 /* Credits.rtf */, - 71E861BA11FF75BA001C1826 /* NetPcsxHIDInputPluginMain.nib */, - 8D576317048677EA00EA77CD /* Info.plist */, - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = "<group>"; - }; - 19C28FB6FE9D52B211CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D576316048677EA00EA77CD /* DFInput.psxplugin */, - ); - name = Products; - sourceTree = "<group>"; - }; - 71054D9F1204A20900AC2CCB /* SDL */ = { - isa = PBXGroup; - children = ( - 71054DA01204A20900AC2CCB /* include */, - 71054DB21204A20900AC2CCB /* src */, - ); - path = SDL; - sourceTree = "<group>"; - }; - 71054DA01204A20900AC2CCB /* include */ = { - isa = PBXGroup; - children = ( - 71054DA11204A20900AC2CCB /* begin_code.h */, - 71054DA21204A20900AC2CCB /* close_code.h */, - 71054DA31204A20900AC2CCB /* SDL.h */, - 71054DA41204A20900AC2CCB /* SDL_assert.h */, - 71054DA51204A20900AC2CCB /* SDL_config.h */, - 71054DA61204A20900AC2CCB /* SDL_endian.h */, - 71054DA71204A20900AC2CCB /* SDL_error.h */, - 71054DA81204A20900AC2CCB /* SDL_haptic.h */, - 71054DA91204A20900AC2CCB /* SDL_joystick.h */, - 71054DAA1204A20900AC2CCB /* SDL_main.h */, - 71054DAC1204A20900AC2CCB /* SDL_platform.h */, - 71054DAF1204A20900AC2CCB /* SDL_stdinc.h */, - ); - path = include; - sourceTree = "<group>"; - }; - 71054DB21204A20900AC2CCB /* src */ = { - isa = PBXGroup; - children = ( - 71054DB31204A20900AC2CCB /* haptic */, - 71054DB91204A20900AC2CCB /* joystick */, - 71054DC01204A20900AC2CCB /* SDL.c */, - 71054DC31204A20900AC2CCB /* SDL_error.c */, - 71054DC41204A20900AC2CCB /* SDL_error_c.h */, - ); - path = src; - sourceTree = "<group>"; - }; - 71054DB31204A20900AC2CCB /* haptic */ = { - isa = PBXGroup; - children = ( - 71054DB41204A20900AC2CCB /* darwin */, - 71054DB61204A20900AC2CCB /* SDL_haptic.c */, - 71054DB71204A20900AC2CCB /* SDL_haptic_c.h */, - 71054DB81204A20900AC2CCB /* SDL_syshaptic.h */, - ); - path = haptic; - sourceTree = "<group>"; - }; - 71054DB41204A20900AC2CCB /* darwin */ = { - isa = PBXGroup; - children = ( - 71054DB51204A20900AC2CCB /* SDL_syshaptic.c */, - ); - path = darwin; - sourceTree = "<group>"; - }; - 71054DB91204A20900AC2CCB /* joystick */ = { - isa = PBXGroup; - children = ( - 71054DBA1204A20900AC2CCB /* darwin */, - 71054DBD1204A20900AC2CCB /* SDL_joystick.c */, - 71054DBE1204A20900AC2CCB /* SDL_joystick_c.h */, - 71054DBF1204A20900AC2CCB /* SDL_sysjoystick.h */, - ); - path = joystick; - sourceTree = "<group>"; - }; - 71054DBA1204A20900AC2CCB /* darwin */ = { - isa = PBXGroup; - children = ( - 71054DBB1204A20900AC2CCB /* SDL_sysjoystick.c */, - 71054DBC1204A20900AC2CCB /* SDL_sysjoystick_c.h */, - ); - path = darwin; - sourceTree = "<group>"; - }; - 714FA82811FC820900517F47 /* src */ = { - isa = PBXGroup; - children = ( - 714FA82A11FC822A00517F47 /* analog.c */, - 714FA82B11FC822A00517F47 /* pad.c */, - 714FA82C11FC822A00517F47 /* pad.h */, - 714FA82D11FC822A00517F47 /* sdljoy.c */, - ); - name = src; - sourceTree = "<group>"; - }; - 714FA82911FC820D00517F47 /* macsrc */ = { - isa = PBXGroup; - children = ( - 71E861A411FF75AC001C1826 /* ControllerList.h */, - 71E861A511FF75AC001C1826 /* ControllerList.m */, - 71E861A811FF75AC001C1826 /* MappingCell.h */, - 71E861A911FF75AC001C1826 /* MappingCell.m */, - 71E861AA11FF75AC001C1826 /* PadController.h */, - 71E861AB11FF75AC001C1826 /* PadController.m */, - 71E861AC11FF75AC001C1826 /* PadView.h */, - 71E861AD11FF75AC001C1826 /* PadView.m */, - 714FA8F811FC863500517F47 /* cfg.c */, - 7192EAAB1200D54500038B92 /* cfg.h */, - 714FA8F911FC863500517F47 /* xkb.c */, - ); - name = macsrc; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 8D57630E048677EA00EA77CD /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 714FA83011FC822A00517F47 /* pad.h in Headers */, - 71E861B611FF75AC001C1826 /* PadView.h in Headers */, - 7192EAAE1200D54500038B92 /* cfg.h in Headers */, - 7136F1DA1200E163001973D9 /* ControllerList.h in Headers */, - 7136F1DC1200E164001973D9 /* MappingCell.h in Headers */, - 7136F1DF1200E165001973D9 /* PadController.h in Headers */, - 71054DC51204A20900AC2CCB /* begin_code.h in Headers */, - 71054DC61204A20900AC2CCB /* close_code.h in Headers */, - 71054DC71204A20900AC2CCB /* SDL.h in Headers */, - 71054DC81204A20900AC2CCB /* SDL_assert.h in Headers */, - 71054DC91204A20900AC2CCB /* SDL_config.h in Headers */, - 71054DCA1204A20900AC2CCB /* SDL_endian.h in Headers */, - 71054DCB1204A20900AC2CCB /* SDL_error.h in Headers */, - 71054DCC1204A20900AC2CCB /* SDL_haptic.h in Headers */, - 71054DCD1204A20900AC2CCB /* SDL_joystick.h in Headers */, - 71054DCE1204A20900AC2CCB /* SDL_main.h in Headers */, - 71054DD01204A20900AC2CCB /* SDL_platform.h in Headers */, - 71054DD31204A20900AC2CCB /* SDL_stdinc.h in Headers */, - 71054DD81204A20900AC2CCB /* SDL_haptic_c.h in Headers */, - 71054DD91204A20900AC2CCB /* SDL_syshaptic.h in Headers */, - 71054DDB1204A20900AC2CCB /* SDL_sysjoystick_c.h in Headers */, - 71054DDD1204A20900AC2CCB /* SDL_joystick_c.h in Headers */, - 71054DDE1204A20900AC2CCB /* SDL_sysjoystick.h in Headers */, - 71054DE31204A20900AC2CCB /* SDL_error_c.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 8D57630D048677EA00EA77CD /* DFInput */ = { - isa = PBXNativeTarget; - buildConfigurationList = 71155B0C0FDFA2DE00EC0BC5 /* Build configuration list for PBXNativeTarget "DFInput" */; - buildPhases = ( - 8D57630E048677EA00EA77CD /* Headers */, - 8D57630F048677EA00EA77CD /* Resources */, - 8D576311048677EA00EA77CD /* Sources */, - 8D576313048677EA00EA77CD /* Frameworks */, - 8D576315048677EA00EA77CD /* Rez */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DFInput; - productInstallPath = "$(HOME)/Library/Bundles"; - productName = DFInput; - productReference = 8D576316048677EA00EA77CD /* DFInput.psxplugin */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 089C1669FE841209C02AAC07 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 71155B110FDFA2DE00EC0BC5 /* Build configuration list for PBXProject "DFInput" */; - hasScannedForEncodings = 1; - mainGroup = 089C166AFE841209C02AAC07 /* DFInput */; - projectDirPath = ""; - targets = ( - 8D57630D048677EA00EA77CD /* DFInput */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D57630F048677EA00EA77CD /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */, - 71E861BC11FF75BA001C1826 /* NetPcsxHIDInputPluginMain.nib in Resources */, - 7136F51A12011BB4001973D9 /* Credits.rtf in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXRezBuildPhase section */ - 8D576315048677EA00EA77CD /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXRezBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D576311048677EA00EA77CD /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 714FA82E11FC822A00517F47 /* analog.c in Sources */, - 714FA82F11FC822A00517F47 /* pad.c in Sources */, - 714FA83111FC822A00517F47 /* sdljoy.c in Sources */, - 714FA8FA11FC863500517F47 /* cfg.c in Sources */, - 714FA8FB11FC863500517F47 /* xkb.c in Sources */, - 71E861B711FF75AC001C1826 /* PadView.m in Sources */, - 7136F1DB1200E163001973D9 /* ControllerList.m in Sources */, - 7136F1DD1200E164001973D9 /* MappingCell.m in Sources */, - 7136F1DE1200E165001973D9 /* PadController.m in Sources */, - 71054DD61204A20900AC2CCB /* SDL_syshaptic.c in Sources */, - 71054DD71204A20900AC2CCB /* SDL_haptic.c in Sources */, - 71054DDA1204A20900AC2CCB /* SDL_sysjoystick.c in Sources */, - 71054DDC1204A20900AC2CCB /* SDL_joystick.c in Sources */, - 71054DDF1204A20900AC2CCB /* SDL.c in Sources */, - 71054DE21204A20900AC2CCB /* SDL_error.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 7136F51812011BB4001973D9 /* Credits.rtf */ = { - isa = PBXVariantGroup; - children = ( - 7136F51912011BB4001973D9 /* English */, - ); - name = Credits.rtf; - sourceTree = "<group>"; - }; - 71E861BA11FF75BA001C1826 /* NetPcsxHIDInputPluginMain.nib */ = { - isa = PBXVariantGroup; - children = ( - 71E861BB11FF75BA001C1826 /* English */, - ); - name = NetPcsxHIDInputPluginMain.nib; - sourceTree = "<group>"; - }; - 8D5B49A704867FD3000E48DA /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C167EFE841241C02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = "<group>"; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 71155B0D0FDFA2DE00EC0BC5 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEBUGGING_SYMBOLS = YES; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - HEADER_SEARCH_PATHS = ( - ../../../libpcsxcore, - ../HID, - Utilities, - Source, - ./HID, - Utilities, - Source, - ); - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins"; - LIBRARY_SEARCH_PATHS = .; - LIBRARY_STYLE = BUNDLE; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - OTHER_REZFLAGS = ""; - PRODUCT_NAME = DFInput; - SECTORDER_FLAGS = ""; - SYMROOT = ../../build; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = psxplugin; - }; - name = Development; - }; - 71155B0E0FDFA2DE00EC0BC5 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUGGING_SYMBOLS = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - HEADER_SEARCH_PATHS = ( - ../../../libpcsxcore, - ../HID, - Utilities, - Source, - ./HID, - Utilities, - Source, - ); - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins"; - LIBRARY_SEARCH_PATHS = .; - LIBRARY_STYLE = BUNDLE; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - OTHER_REZFLAGS = ""; - PRODUCT_NAME = DFInput; - SECTORDER_FLAGS = ""; - SYMROOT = ../../build; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = psxplugin; - ZERO_LINK = NO; - }; - name = Deployment; - }; - 71155B120FDFA2DE00EC0BC5 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = "_MACOSX=1"; - HEADER_SEARCH_PATHS = ( - ../../../libpcsxcore, - ../.., - ../../../plugins/dfinput, - ../../../plugins/dfinput, - ../../../../plugins/dfinput, - ./SDL, - ./SDL/include, - ); - STRIP_INSTALLED_PRODUCT = NO; - }; - name = Development; - }; - 71155B130FDFA2DE00EC0BC5 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_PREPROCESSOR_DEFINITIONS = "_MACOSX=1"; - HEADER_SEARCH_PATHS = ( - ../../../libpcsxcore, - ../.., - ../../../plugins/dfinput, - ../../../../plugins/dfinput, - ./SDL, - ./SDL/include, - ../include, - ); - }; - name = Deployment; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 71155B0C0FDFA2DE00EC0BC5 /* Build configuration list for PBXNativeTarget "DFInput" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 71155B0D0FDFA2DE00EC0BC5 /* Development */, - 71155B0E0FDFA2DE00EC0BC5 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Development; - }; - 71155B110FDFA2DE00EC0BC5 /* Build configuration list for PBXProject "DFInput" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 71155B120FDFA2DE00EC0BC5 /* Development */, - 71155B130FDFA2DE00EC0BC5 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Development; - }; -/* End XCConfigurationList section */ - }; - rootObject = 089C1669FE841209C02AAC07 /* Project object */; -} diff --git a/macosx/plugins/DFInput/English.lproj/Credits.rtf b/macosx/plugins/DFInput/English.lproj/Credits.rtf deleted file mode 100644 index 1a83729..0000000 --- a/macosx/plugins/DFInput/English.lproj/Credits.rtf +++ /dev/null @@ -1,17 +0,0 @@ -{\rtf1\mac\ansicpg10025\cocoartf824\cocoasubrtf420 -{\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 \ - Wei Mingzhi\ - Gil Pedersen\ -\ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural - -\f0\b \cf0 Original coder: -\f1\b0 \ -\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\cf0 Wei Mingzhi}
\ No newline at end of file diff --git a/macosx/plugins/DFInput/English.lproj/InfoPlist.strings b/macosx/plugins/DFInput/English.lproj/InfoPlist.strings Binary files differdeleted file mode 100755 index 74d15f4..0000000 --- a/macosx/plugins/DFInput/English.lproj/InfoPlist.strings +++ /dev/null diff --git a/macosx/plugins/DFInput/English.lproj/NetPcsxHIDInputPluginMain.nib/classes.nib b/macosx/plugins/DFInput/English.lproj/NetPcsxHIDInputPluginMain.nib/classes.nib deleted file mode 100644 index ac067a6..0000000 --- a/macosx/plugins/DFInput/English.lproj/NetPcsxHIDInputPluginMain.nib/classes.nib +++ /dev/null @@ -1,33 +0,0 @@ -{ - IBClasses = ( - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - { - CLASS = NetPcsxHIDInputPluginMappingCell; - LANGUAGE = ObjC; - SUPERCLASS = NSTextFieldCell; - }, - { - ACTIONS = {cancel = id; ok = id; setKey = id; }; - CLASS = NetPcsxHIDInputPluginPadController; - LANGUAGE = ObjC; - OUTLETS = { - controllerView = NetPcsxHIDInputPluginPadView; - controllerView1 = id; - controllerView2 = id; - }; - SUPERCLASS = NSWindowController; - }, - { - ACTIONS = {setDevice = id; setType = id; }; - CLASS = NetPcsxHIDInputPluginPadView; - LANGUAGE = ObjC; - OUTLETS = { - deviceMenu = NSPopUpButton; - tableView = NSTableView; - typeMenu = NSPopUpButton; - }; - SUPERCLASS = NSView; - } - ); - IBVersion = 1; -}
\ No newline at end of file diff --git a/macosx/plugins/DFInput/English.lproj/NetPcsxHIDInputPluginMain.nib/info.nib b/macosx/plugins/DFInput/English.lproj/NetPcsxHIDInputPluginMain.nib/info.nib deleted file mode 100644 index 27f6df1..0000000 --- a/macosx/plugins/DFInput/English.lproj/NetPcsxHIDInputPluginMain.nib/info.nib +++ /dev/null @@ -1,21 +0,0 @@ -<?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>54 67 576 240 0 0 1024 746 </string> - <key>IBEditorPositions</key> - <dict> - <key>16</key> - <string>293 323 437 378 0 0 1024 746 </string> - </dict> - <key>IBFramework Version</key> - <string>446.1</string> - <key>IBOpenObjects</key> - <array> - <integer>16</integer> - </array> - <key>IBSystem Version</key> - <string>8P2137</string> -</dict> -</plist> diff --git a/macosx/plugins/DFInput/English.lproj/NetPcsxHIDInputPluginMain.nib/keyedobjects.nib b/macosx/plugins/DFInput/English.lproj/NetPcsxHIDInputPluginMain.nib/keyedobjects.nib Binary files differdeleted file mode 100644 index 793f394..0000000 --- a/macosx/plugins/DFInput/English.lproj/NetPcsxHIDInputPluginMain.nib/keyedobjects.nib +++ /dev/null diff --git a/macosx/plugins/DFInput/Info.plist b/macosx/plugins/DFInput/Info.plist deleted file mode 100644 index d0fd8ea..0000000 --- a/macosx/plugins/DFInput/Info.plist +++ /dev/null @@ -1,40 +0,0 @@ -<?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>DFInput</string> - <key>CFBundleIconFile</key> - <string></string> - <key>CFBundleIdentifier</key> - <string>net.pcsx.DFInputPlugin</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundlePackageType</key> - <string>PsxP</string> - <key>CFBundleSignature</key> - <string>DFI</string> - <key>CFBundleVersion</key> - <string>1.0</string> - <key>CFPlugInDynamicRegisterFunction</key> - <string></string> - <key>CFPlugInDynamicRegistration</key> - <string>NO</string> - <key>CFPlugInFactories</key> - <dict> - <key>00000000-0000-0000-0000-000000000000</key> - <string>MyFactoryFunction</string> - </dict> - <key>CFPlugInTypes</key> - <dict> - <key>00000000-0000-0000-0000-000000000000</key> - <array> - <string>00000000-0000-0000-0000-000000000000</string> - </array> - </dict> - <key>CFPlugInUnloadFunction</key> - <string></string> -</dict> -</plist> diff --git a/macosx/plugins/DFInput/SDL/include/SDL.h b/macosx/plugins/DFInput/SDL/include/SDL.h deleted file mode 100644 index 6032d95..0000000 --- a/macosx/plugins/DFInput/SDL/include/SDL.h +++ /dev/null @@ -1,151 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -// 7/31/2010 Wei Mingzhi -// Removed everything unrated to Mac OS X Joystick support - -/** - * \file SDL.h - * - * Main include header for the SDL library - */ - -/** - * \mainpage Simple DirectMedia Layer (SDL) - * - * http://www.libsdl.org/ - * - * \section intro_sec Introduction - * - * This is the Simple DirectMedia Layer, a general API that provides low - * level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, - * and 2D framebuffer across multiple platforms. - * - * The current version supports Windows, Windows CE, Mac OS X, Linux, - * FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, and QNX. The code contains - * support for other operating systems but those are not officially supported. - * - * SDL is written in C, but works with C++ natively, and has bindings to - * several other languages, including Ada, C#, Eiffel, Erlang, Euphoria, - * Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, - * Pike, Pliant, Python, Ruby, and Smalltalk. - * - * This library is distributed under GNU LGPL version 2, which can be - * found in the file "COPYING". This license allows you to use SDL - * freely in commercial programs as long as you link with the dynamic - * library. - * - * The best way to learn how to use SDL is to check out the header files in - * the "include" subdirectory and the programs in the "test" subdirectory. - * The header files and test programs are well commented and always up to date. - * More documentation is available in HTML format in "docs/index.html", and - * a documentation wiki is available online at: - * http://www.libsdl.org/cgi/docwiki.cgi - * - * The test programs in the "test" subdirectory are in the public domain. - * - * Frequently asked questions are answered online: - * http://www.libsdl.org/faq.php - * - * If you need help with the library, or just want to discuss SDL related - * issues, you can join the developers mailing list: - * http://www.libsdl.org/mailing-list.php - * - * Enjoy! - * Sam Lantinga (slouken@libsdl.org) - */ - -#ifndef _SDL_H -#define _SDL_H - -#include "SDL_main.h" -#include "SDL_stdinc.h" -#include "SDL_endian.h" -#include "SDL_error.h" - -#ifndef SDL_IGNORE -#define SDL_IGNORE 0 -#endif - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - -/* As of version 0.5, SDL is loaded dynamically into the application */ - -/** - * \name SDL_INIT_* - * - * These are the flags which may be passed to SDL_Init(). You should - * specify the subsystems which you will be using in your application. - */ -/*@{*/ -#define SDL_INIT_JOYSTICK 0x00000200 -#define SDL_INIT_HAPTIC 0x00001000 -#define SDL_INIT_NOPARACHUTE 0x00100000 /**< Don't catch fatal signals */ -#define SDL_INIT_EVERYTHING 0x0000FFFF -/*@}*/ - -/** - * This function loads the SDL dynamically linked library and initializes - * the subsystems specified by \c flags (and those satisfying dependencies). - * Unless the ::SDL_INIT_NOPARACHUTE flag is set, it will install cleanup - * signal handlers for some commonly ignored fatal signals (like SIGSEGV). - */ -extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags); - -/** - * This function initializes specific SDL subsystems - */ -extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags); - -/** - * This function cleans up specific SDL subsystems - */ -extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags); - -/** - * This function returns mask of the specified subsystems which have - * been initialized. - * - * If \c flags is 0, it returns a mask of all initialized subsystems. - */ -extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags); - -/** - * This function cleans up all initialized subsystems and unloads the - * dynamically linked library. You should call it upon all exit conditions. - */ -extern DECLSPEC void SDLCALL SDL_Quit(void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" - -#endif /* _SDL_H */ diff --git a/macosx/plugins/DFInput/SDL/include/SDL_config.h b/macosx/plugins/DFInput/SDL/include/SDL_config.h deleted file mode 100644 index 81eda63..0000000 --- a/macosx/plugins/DFInput/SDL/include/SDL_config.h +++ /dev/null @@ -1,313 +0,0 @@ -/* include/SDL_config.h. Generated from SDL_config.h.in by configure. */ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2009 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -#ifndef _SDL_config_h -#define _SDL_config_h - -/** - * \file SDL_config.h.in - * - * This is a set of defines to configure the SDL features - */ - -/* General platform specific identifiers */ -#include "SDL_platform.h" - -/* Make sure that this isn't included by Visual C++ */ -#ifdef _MSC_VER -#error You should copy include/SDL_config.h.default to include/SDL_config.h -#endif - -/* C language features */ -/* #undef const */ -/* #undef inline */ -/* #undef volatile */ - -/* C datatypes */ -#if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) -/* #undef size_t */ -/* #undef int8_t */ -/* #undef uint8_t */ -/* #undef int16_t */ -/* #undef uint16_t */ -/* #undef int32_t */ -/* #undef uint32_t */ -/* #undef int64_t */ -/* #undef uint64_t */ -/* #undef uintptr_t */ -#endif /* !_STDINT_H_ && !HAVE_STDINT_H */ - -#define SIZEOF_VOIDP 4 -#define SDL_HAS_64BIT_TYPE 1 - -/* Comment this if you want to build without any C library requirements */ -#define HAVE_LIBC 1 -#if HAVE_LIBC - -/* Useful headers */ -#define HAVE_ALLOCA_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_STDIO_H 1 -#define STDC_HEADERS 1 -#define HAVE_STDLIB_H 1 -#define HAVE_STDARG_H 1 -/* #undef HAVE_MALLOC_H */ -#define HAVE_MEMORY_H 1 -#define HAVE_STRING_H 1 -#define HAVE_STRINGS_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_ICONV_H 1 -#define HAVE_SIGNAL_H 1 -/* #undef HAVE_ALTIVEC_H */ - -/* C library functions */ -#define HAVE_MALLOC 1 -#define HAVE_CALLOC 1 -#define HAVE_REALLOC 1 -#define HAVE_FREE 1 -#define HAVE_ALLOCA 1 -#ifndef _WIN32 /* Don't use C runtime versions of these on Windows */ -#define HAVE_GETENV 1 -#define HAVE_SETENV 1 -#define HAVE_PUTENV 1 -#define HAVE_UNSETENV 1 -#endif -#define HAVE_QSORT 1 -#define HAVE_ABS 1 -#define HAVE_BCOPY 1 -#define HAVE_MEMSET 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMCMP 1 -#define HAVE_STRLEN 1 -#define HAVE_STRLCPY 1 -#define HAVE_STRLCAT 1 -#define HAVE_STRDUP 1 -/* #undef HAVE__STRREV */ -/* #undef HAVE__STRUPR */ -/* #undef HAVE__STRLWR */ -/* #undef HAVE_INDEX */ -/* #undef HAVE_RINDEX */ -#define HAVE_STRCHR 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -/* #undef HAVE_ITOA */ -/* #undef HAVE__LTOA */ -/* #undef HAVE__UITOA */ -/* #undef HAVE__ULTOA */ -#define HAVE_STRTOL 1 -#define HAVE_STRTOUL 1 -/* #undef HAVE__I64TOA */ -/* #undef HAVE__UI64TOA */ -#define HAVE_STRTOLL 1 -#define HAVE_STRTOULL 1 -#define HAVE_STRTOD 1 -#define HAVE_ATOI 1 -#define HAVE_ATOF 1 -#define HAVE_STRCMP 1 -#define HAVE_STRNCMP 1 -/* #undef HAVE__STRICMP */ -#define HAVE_STRCASECMP 1 -/* #undef HAVE__STRNICMP */ -#define HAVE_STRNCASECMP 1 -#define HAVE_SSCANF 1 -#define HAVE_SNPRINTF 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_M_PI -#define HAVE_CEIL 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_FABS 1 -#define HAVE_FLOOR 1 -#define HAVE_LOG 1 -#define HAVE_POW 1 -#define HAVE_SCALBN 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE_SIGACTION 1 -#define HAVE_SETJMP 1 -#define HAVE_NANOSLEEP 1 -#define HAVE_SYSCONF 1 -#define HAVE_SYSCTLBYNAME 1 -/* #undef HAVE_CLOCK_GETTIME */ -/* #undef HAVE_GETPAGESIZE */ -#define HAVE_MPROTECT 1 - -#else -/* We may need some replacement for stdarg.h here */ -#include <stdarg.h> -#endif /* HAVE_LIBC */ - -/* SDL internal assertion support */ -/* #undef SDL_DEFAULT_ASSERT_LEVEL */ - -/* Allow disabling of core subsystems */ -#define SDL_AUDIO_DISABLED 1 -#define SDL_CPUINFO_DISABLED 1 -#define SDL_EVENTS_DISABLED 1 -#define SDL_FILE_DISABLED 1 -/* #undef SDL_JOYSTICK_DISABLED */ -/* #undef SDL_HAPTIC_DISABLED */ -#define SDL_LOADSO_DISABLED 1 -#define SDL_THREADS_DISABLED 1 -#define SDL_TIMERS_DISABLED 1 -#define SDL_VIDEO_DISABLED 1 -#define SDL_POWER_DISABLED 1 - -/* Enable various audio drivers */ -/* #undef SDL_AUDIO_DRIVER_ALSA */ -/* #undef SDL_AUDIO_DRIVER_ALSA_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_ARTS */ -/* #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_PULSEAUDIO */ -/* #undef SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_BEOSAUDIO */ -/* #undef SDL_AUDIO_DRIVER_BSD */ -/* #undef SDL_AUDIO_DRIVER_COREAUDIO */ -/* #undef SDL_AUDIO_DRIVER_DISK */ -/* #undef SDL_AUDIO_DRIVER_DUMMY */ -/* #undef SDL_AUDIO_DRIVER_DMEDIA */ -/* #undef SDL_AUDIO_DRIVER_DSOUND */ -/* #undef SDL_AUDIO_DRIVER_ESD */ -/* #undef SDL_AUDIO_DRIVER_ESD_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_MMEAUDIO */ -/* #undef SDL_AUDIO_DRIVER_NAS */ -/* #undef SDL_AUDIO_DRIVER_NAS_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_NDS */ -/* #undef SDL_AUDIO_DRIVER_OSS */ -/* #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H */ -/* #undef SDL_AUDIO_DRIVER_PAUDIO */ -/* #undef SDL_AUDIO_DRIVER_QSA */ -/* #undef SDL_AUDIO_DRIVER_SUNAUDIO */ -/* #undef SDL_AUDIO_DRIVER_WINWAVEOUT */ -/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND */ -/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC */ - -/* Enable various input drivers */ -/* #undef SDL_INPUT_LINUXEV */ -/* #undef SDL_INPUT_TSLIB */ -/* #undef SDL_JOYSTICK_BEOS */ -/* #undef SDL_JOYSTICK_DINPUT */ -/* #undef SDL_JOYSTICK_DUMMY */ -#define SDL_JOYSTICK_IOKIT 1 -/* #undef SDL_JOYSTICK_LINUX */ -/* #undef SDL_JOYSTICK_NDS */ -/* #undef SDL_JOYSTICK_RISCOS */ -/* #undef SDL_JOYSTICK_WINMM */ -/* #undef SDL_JOYSTICK_USBHID */ -/* #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H */ -/* #undef SDL_HAPTIC_DUMMY */ -/* #undef SDL_HAPTIC_LINUX */ -#define SDL_HAPTIC_IOKIT 1 -/* #undef SDL_HAPTIC_DINPUT */ - -/* Enable various shared object loading systems */ -/* #undef SDL_LOADSO_BEOS */ -/* #undef SDL_LOADSO_DLCOMPAT */ -/* #undef SDL_LOADSO_DLOPEN */ -/* #undef SDL_LOADSO_DUMMY */ -/* #undef SDL_LOADSO_LDG */ -/* #undef SDL_LOADSO_WIN32 */ - -/* Enable various threading systems */ -/* #undef SDL_THREAD_BEOS */ -/* #undef SDL_THREAD_NDS */ -/* #undef SDL_THREAD_PTHREAD */ -/* #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX */ -/* #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP */ -/* #undef SDL_THREAD_SPROC */ -/* #undef SDL_THREAD_WIN32 */ - -/* Enable various timer systems */ -/* #undef SDL_TIMER_BEOS */ -/* #undef SDL_TIMER_DUMMY */ -/* #undef SDL_TIMER_NDS */ -/* #undef SDL_TIMER_RISCOS */ -/* #undef SDL_TIMER_UNIX */ -/* #undef SDL_TIMER_WIN32 */ -/* #undef SDL_TIMER_WINCE */ - -/* Enable various video drivers */ -/* #undef SDL_VIDEO_DRIVER_BWINDOW */ -/* #undef SDL_VIDEO_DRIVER_COCOA */ -/* #undef SDL_VIDEO_DRIVER_DIRECTFB */ -/* #undef SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC */ -#define SDL_VIDEO_DRIVER_DUMMY 1 -/* #undef SDL_VIDEO_DRIVER_FBCON */ -/* #undef SDL_VIDEO_DRIVER_NDS */ -/* #undef SDL_VIDEO_DRIVER_PHOTON */ -/* #undef SDL_VIDEO_DRIVER_QNXGF */ -/* #undef SDL_VIDEO_DRIVER_PS3 */ -/* #undef SDL_VIDEO_DRIVER_RISCOS */ -/* #undef SDL_VIDEO_DRIVER_SVGALIB */ -/* #undef SDL_VIDEO_DRIVER_WIN32 */ -/* #undef SDL_VIDEO_DRIVER_X11 */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT */ -/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS */ -/* #undef SDL_VIDEO_DRIVER_X11_VIDMODE */ -/* #undef SDL_VIDEO_DRIVER_X11_XINERAMA */ -/* #undef SDL_VIDEO_DRIVER_X11_XRANDR */ -/* #undef SDL_VIDEO_DRIVER_X11_XINPUT */ -/* #undef SDL_VIDEO_DRIVER_X11_SCRNSAVER */ -/* #undef SDL_VIDEO_DRIVER_X11_XV */ - -/* #undef SDL_VIDEO_RENDER_D3D */ -/* #undef SDL_VIDEO_RENDER_GDI */ -/* #undef SDL_VIDEO_RENDER_OGL */ -/* #undef SDL_VIDEO_RENDER_OGL_ES */ -/* #undef SDL_VIDEO_RENDER_X11 */ -/* #undef SDL_VIDEO_RENDER_GAPI */ -/* #undef SDL_VIDEO_RENDER_DDRAW */ - -/* Enable OpenGL support */ -/* #undef SDL_VIDEO_OPENGL */ -/* #undef SDL_VIDEO_OPENGL_ES */ -/* #undef SDL_VIDEO_OPENGL_BGL */ -/* #undef SDL_VIDEO_OPENGL_CGL */ -/* #undef SDL_VIDEO_OPENGL_GLX */ -/* #undef SDL_VIDEO_OPENGL_WGL */ -/* #undef SDL_VIDEO_OPENGL_OSMESA */ -/* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */ - -/* Enable system power support */ -/* #undef SDL_POWER_LINUX */ -/* #undef SDL_POWER_WINDOWS */ -/* #undef SDL_POWER_MACOSX */ -/* #undef SDL_POWER_BEOS */ -/* #undef SDL_POWER_NINTENDODS */ -/* #undef SDL_POWER_HARDWIRED */ - -/* Enable assembly routines */ -/* #undef SDL_ASSEMBLY_ROUTINES */ -/* #undef SDL_ALTIVEC_BLITTERS */ - -#endif /* _SDL_config_h */ diff --git a/macosx/plugins/DFInput/SDL/include/SDL_endian.h b/macosx/plugins/DFInput/SDL/include/SDL_endian.h deleted file mode 100644 index de69e32..0000000 --- a/macosx/plugins/DFInput/SDL/include/SDL_endian.h +++ /dev/null @@ -1,258 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -/** - * \file SDL_endian.h - * - * Functions for reading and writing endian-specific values - */ - -#ifndef _SDL_endian_h -#define _SDL_endian_h - -#include "SDL_stdinc.h" - -/** - * \name The two types of endianness - */ -/*@{*/ -#define SDL_LIL_ENDIAN 1234 -#define SDL_BIG_ENDIAN 4321 -/*@}*/ - -#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */ -#ifdef __linux__ -#include <endian.h> -#define SDL_BYTEORDER __BYTE_ORDER -#else /* __linux __ */ -#if defined(__hppa__) || \ - defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \ - (defined(__MIPS__) && defined(__MISPEB__)) || \ - defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \ - defined(__sparc__) -#define SDL_BYTEORDER SDL_BIG_ENDIAN -#else -#define SDL_BYTEORDER SDL_LIL_ENDIAN -#endif -#endif /* __linux __ */ -#endif /* !SDL_BYTEORDER */ - - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - -/** - * \file SDL_endian.h - * - * Uses inline functions for compilers that support them, and static - * functions for those that do not. Because these functions become - * static for compilers that do not support inline functions, this - * header should only be included in files that actually use them. - */ -#if defined(__GNUC__) && defined(__i386__) && \ - !(__GNUC__ == 2 && __GNUC_MINOR__ == 95 /* broken gcc version */) -static __inline__ Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("xchgb %b0,%h0": "=q"(x):"0"(x)); - return x; -} -#elif defined(__GNUC__) && defined(__x86_64__) -static __inline__ Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("xchgb %b0,%h0": "=Q"(x):"0"(x)); - return x; -} -#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) -static __inline__ Uint16 -SDL_Swap16(Uint16 x) -{ - Uint16 result; - - __asm__("rlwimi %0,%2,8,16,23": "=&r"(result):"0"(x >> 8), "r"(x)); - return result; -} -#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__)) && !defined(__mcoldfire__) -static __inline__ Uint16 -SDL_Swap16(Uint16 x) -{ - __asm__("rorw #8,%0": "=d"(x): "0"(x):"cc"); - return x; -} -#else -static __inline__ Uint16 -SDL_Swap16(Uint16 x) -{ - return SDL_static_cast(Uint16, ((x << 8) | (x >> 8))); -} -#endif - -#if defined(__GNUC__) && defined(__i386__) -static __inline__ Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("bswap %0": "=r"(x):"0"(x)); - return x; -} -#elif defined(__GNUC__) && defined(__x86_64__) -static __inline__ Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("bswapl %0": "=r"(x):"0"(x)); - return x; -} -#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) -static __inline__ Uint32 -SDL_Swap32(Uint32 x) -{ - Uint32 result; - - __asm__("rlwimi %0,%2,24,16,23": "=&r"(result):"0"(x >> 24), "r"(x)); - __asm__("rlwimi %0,%2,8,8,15": "=&r"(result):"0"(result), "r"(x)); - __asm__("rlwimi %0,%2,24,0,7": "=&r"(result):"0"(result), "r"(x)); - return result; -} -#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__)) && !defined(__mcoldfire__) -static __inline__ Uint32 -SDL_Swap32(Uint32 x) -{ - __asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0": "=d"(x): "0"(x):"cc"); - return x; -} -#else -static __inline__ Uint32 -SDL_Swap32(Uint32 x) -{ - return SDL_static_cast(Uint32, ((x << 24) | ((x << 8) & 0x00FF0000) | - ((x >> 8) & 0x0000FF00) | (x >> 24))); -} -#endif - -#ifdef SDL_HAS_64BIT_TYPE -#if defined(__GNUC__) && defined(__i386__) -static __inline__ Uint64 -SDL_Swap64(Uint64 x) -{ - union - { - struct - { - Uint32 a, b; - } s; - Uint64 u; - } v; - v.u = x; - __asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1": "=r"(v.s.a), "=r"(v.s.b):"0"(v.s.a), - "1"(v.s. - b)); - return v.u; -} -#elif defined(__GNUC__) && defined(__x86_64__) -static __inline__ Uint64 -SDL_Swap64(Uint64 x) -{ - __asm__("bswapq %0": "=r"(x):"0"(x)); - return x; -} -#else -static __inline__ Uint64 -SDL_Swap64(Uint64 x) -{ - Uint32 hi, lo; - - /* Separate into high and low 32-bit values and swap them */ - lo = SDL_static_cast(Uint32, x & 0xFFFFFFFF); - x >>= 32; - hi = SDL_static_cast(Uint32, x & 0xFFFFFFFF); - x = SDL_Swap32(lo); - x <<= 32; - x |= SDL_Swap32(hi); - return (x); -} -#endif -#else -/** - * This is mainly to keep compilers from complaining in SDL code. - * If there is no real 64-bit datatype, then compilers will complain about - * the fake 64-bit datatype that SDL provides when it compiles user code. - */ -#define SDL_Swap64(X) (X) -#endif /* SDL_HAS_64BIT_TYPE */ - - -static __inline__ float -SDL_SwapFloat(float x) -{ - union - { - float f; - Uint32 ui32; - } swapper; - swapper.f = x; - swapper.ui32 = SDL_Swap32(swapper.ui32); - return swapper.f; -} - - -/** - * \name Swap to native - * Byteswap item from the specified endianness to the native endianness. - */ -/*@{*/ -#if SDL_BYTEORDER == SDL_LIL_ENDIAN -#define SDL_SwapLE16(X) (X) -#define SDL_SwapLE32(X) (X) -#define SDL_SwapLE64(X) (X) -#define SDL_SwapFloatLE(X) (X) -#define SDL_SwapBE16(X) SDL_Swap16(X) -#define SDL_SwapBE32(X) SDL_Swap32(X) -#define SDL_SwapBE64(X) SDL_Swap64(X) -#define SDL_SwapFloatBE(X) SDL_SwapFloat(X) -#else -#define SDL_SwapLE16(X) SDL_Swap16(X) -#define SDL_SwapLE32(X) SDL_Swap32(X) -#define SDL_SwapLE64(X) SDL_Swap64(X) -#define SDL_SwapFloatLE(X) SDL_SwapFloat(X) -#define SDL_SwapBE16(X) (X) -#define SDL_SwapBE32(X) (X) -#define SDL_SwapBE64(X) (X) -#define SDL_SwapFloatBE(X) (X) -#endif -/*@}*//*Swap to native*/ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" - -#endif /* _SDL_endian_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/include/SDL_error.h b/macosx/plugins/DFInput/SDL/include/SDL_error.h deleted file mode 100644 index a4a90d0..0000000 --- a/macosx/plugins/DFInput/SDL/include/SDL_error.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -/** - * \file SDL_error.h - * - * Simple error message routines for SDL. - */ - -#ifndef _SDL_error_h -#define _SDL_error_h - -#include "SDL_stdinc.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - -/* Public functions */ -extern DECLSPEC void SDLCALL SDL_SetError(const char *fmt, ...); -extern DECLSPEC char *SDLCALL SDL_GetError(void); -extern DECLSPEC void SDLCALL SDL_ClearError(void); - -/** - * \name Internal error functions - * - * \internal - * Private error message function - used internally. - */ -/*@{*/ -#define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM) -#define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED) -typedef enum -{ - SDL_ENOMEM, - SDL_EFREAD, - SDL_EFWRITE, - SDL_EFSEEK, - SDL_UNSUPPORTED, - SDL_LASTERROR -} SDL_errorcode; -extern DECLSPEC void SDLCALL SDL_Error(SDL_errorcode code); -/*@}*//*Internal error functions*/ - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" - -#endif /* _SDL_error_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/include/SDL_haptic.h b/macosx/plugins/DFInput/SDL/include/SDL_haptic.h deleted file mode 100644 index 52f33f1..0000000 --- a/macosx/plugins/DFInput/SDL/include/SDL_haptic.h +++ /dev/null @@ -1,1123 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 2008 Edgar Simo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -/** - * \file SDL_haptic.h - * - * \brief The SDL Haptic subsystem allows you to control haptic (force feedback) - * devices. - * - * The basic usage is as follows: - * - Initialize the Subsystem (::SDL_INIT_HAPTIC). - * - Open a Haptic Device. - * - SDL_HapticOpen() to open from index. - * - SDL_HapticOpenFromJoystick() to open from an existing joystick. - * - Create an effect (::SDL_HapticEffect). - * - Upload the effect with SDL_HapticNewEffect(). - * - Run the effect with SDL_HapticRunEffect(). - * - (optional) Free the effect with SDL_HapticDestroyEffect(). - * - Close the haptic device with SDL_HapticClose(). - * - * \par Example: - * \code - * int test_haptic( SDL_Joystick * joystick ) { - * SDL_Haptic *haptic; - * SDL_HapticEffect effect; - * int effect_id; - * - * // Open the device - * haptic = SDL_HapticOpenFromJoystick( joystick ); - * if (haptic == NULL) return -1; // Most likely joystick isn't haptic - * - * // See if it can do sine waves - * if ((SDL_HapticQuery(haptic) & SDL_HAPTIC_SINE)==0) { - * SDL_HapticClose(haptic); // No sine effect - * return -1; - * } - * - * // Create the effect - * memset( &effect, 0, sizeof(SDL_HapticEffect) ); // 0 is safe default - * effect.type = SDL_HAPTIC_SINE; - * effect.periodic.direction.type = SDL_HAPTIC_POLAR; // Polar coordinates - * effect.periodic.direction.dir[0] = 18000; // Force comes from south - * effect.periodic.period = 1000; // 1000 ms - * effect.periodic.magnitude = 20000; // 20000/32767 strength - * effect.periodic.length = 5000; // 5 seconds long - * effect.periodic.attack_length = 1000; // Takes 1 second to get max strength - * effect.periodic.fade_length = 1000; // Takes 1 second to fade away - * - * // Upload the effect - * effect_id = SDL_HapticNewEffect( haptic, &effect ); - * - * // Test the effect - * SDL_HapticRunEffect( haptic, effect_id, 1 ); - * SDL_Delay( 5000); // Wait for the effect to finish - * - * // We destroy the effect, although closing the device also does this - * SDL_HapticDestroyEffect( haptic, effect_id ); - * - * // Close the device - * SDL_HapticClose(haptic); - * - * return 0; // Success - * } - * \endcode - * \author Edgar Simo Serra - */ - -#ifndef _SDL_haptic_h -#define _SDL_haptic_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" -#include "SDL_joystick.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { - /* *INDENT-ON* */ -#endif /* __cplusplus */ - -/** - * \typedef SDL_Haptic - * - * \brief The haptic structure used to identify an SDL haptic. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticOpenFromJoystick - * \sa SDL_HapticClose - */ -struct _SDL_Haptic; -typedef struct _SDL_Haptic SDL_Haptic; - - -/** - * \name Haptic features - * - * Different haptic features a device can have. - */ -/*@{*/ - -/** - * \name Haptic effects - */ -/*@{*/ - -/** - * \brief Constant effect supported. - * - * Constant haptic effect. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_CONSTANT (1<<0) - -/** - * \brief Sine wave effect supported. - * - * Periodic haptic effect that simulates sine waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SINE (1<<1) - -/** - * \brief Square wave effect supported. - * - * Periodic haptic effect that simulates square waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SQUARE (1<<2) - -/** - * \brief Triangle wave effect supported. - * - * Periodic haptic effect that simulates triangular waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_TRIANGLE (1<<3) - -/** - * \brief Sawtoothup wave effect supported. - * - * Periodic haptic effect that simulates saw tooth up waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SAWTOOTHUP (1<<4) - -/** - * \brief Sawtoothdown wave effect supported. - * - * Periodic haptic effect that simulates saw tooth down waves. - * - * \sa SDL_HapticPeriodic - */ -#define SDL_HAPTIC_SAWTOOTHDOWN (1<<5) - -/** - * \brief Ramp effect supported. - * - * Ramp haptic effect. - * - * \sa SDL_HapticRamp - */ -#define SDL_HAPTIC_RAMP (1<<6) - -/** - * \brief Spring effect supported - uses axes position. - * - * Condition haptic effect that simulates a spring. Effect is based on the - * axes position. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_SPRING (1<<7) - -/** - * \brief Damper effect supported - uses axes velocity. - * - * Condition haptic effect that simulates dampening. Effect is based on the - * axes velocity. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_DAMPER (1<<8) - -/** - * \brief Inertia effect supported - uses axes acceleration. - * - * Condition haptic effect that simulates inertia. Effect is based on the axes - * acceleration. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_INERTIA (1<<9) - -/** - * \brief Friction effect supported - uses axes movement. - * - * Condition haptic effect that simulates friction. Effect is based on the - * axes movement. - * - * \sa SDL_HapticCondition - */ -#define SDL_HAPTIC_FRICTION (1<<10) - -/** - * \brief Custom effect is supported. - * - * User defined custom haptic effect. - */ -#define SDL_HAPTIC_CUSTOM (1<<11) - -/*@}*//*Haptic effects*/ - -/* These last few are features the device has, not effects */ - -/** - * \brief Device can set global gain. - * - * Device supports setting the global gain. - * - * \sa SDL_HapticSetGain - */ -#define SDL_HAPTIC_GAIN (1<<12) - -/** - * \brief Device can set autocenter. - * - * Device supports setting autocenter. - * - * \sa SDL_HapticSetAutocenter - */ -#define SDL_HAPTIC_AUTOCENTER (1<<13) - -/** - * \brief Device can be queried for effect status. - * - * Device can be queried for effect status. - * - * \sa SDL_HapticGetEffectStatus - */ -#define SDL_HAPTIC_STATUS (1<<14) - -/** - * \brief Device can be paused. - * - * \sa SDL_HapticPause - * \sa SDL_HapticUnpause - */ -#define SDL_HAPTIC_PAUSE (1<<15) - - -/** - * \name Direction encodings - */ -/*@{*/ - -/** - * \brief Uses polar coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_POLAR 0 - -/** - * \brief Uses cartesian coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_CARTESIAN 1 - -/** - * \brief Uses spherical coordinates for the direction. - * - * \sa SDL_HapticDirection - */ -#define SDL_HAPTIC_SPHERICAL 2 - -/*@}*//*Direction encodings*/ - -/*@}*//*Haptic features*/ - -/* - * Misc defines. - */ - -/** - * \brief Used to play a device an infinite number of times. - * - * \sa SDL_HapticRunEffect - */ -#define SDL_HAPTIC_INFINITY 4294967295U - - -/** - * \brief Structure that represents a haptic direction. - * - * Directions can be specified by: - * - ::SDL_HAPTIC_POLAR : Specified by polar coordinates. - * - ::SDL_HAPTIC_CARTESIAN : Specified by cartesian coordinates. - * - ::SDL_HAPTIC_SPHERICAL : Specified by spherical coordinates. - * - * Cardinal directions of the haptic device are relative to the positioning - * of the device. North is considered to be away from the user. - * - * The following diagram represents the cardinal directions: - * \verbatim - .--. - |__| .-------. - |=.| |.-----.| - |--| || || - | | |'-----'| - |__|~')_____(' - [ COMPUTER ] - - - North (0,-1) - ^ - | - | - (1,0) West <----[ HAPTIC ]----> East (-1,0) - | - | - v - South (0,1) - - - [ USER ] - \|||/ - (o o) - ---ooO-(_)-Ooo--- - \endverbatim - * - * If type is ::SDL_HAPTIC_POLAR, direction is encoded by hundredths of a - * degree starting north and turning clockwise. ::SDL_HAPTIC_POLAR only uses - * the first \c dir parameter. The cardinal directions would be: - * - North: 0 (0 degrees) - * - East: 9000 (90 degrees) - * - South: 18000 (180 degrees) - * - West: 27000 (270 degrees) - * - * If type is ::SDL_HAPTIC_CARTESIAN, direction is encoded by three positions - * (X axis, Y axis and Z axis (with 3 axes)). ::SDL_HAPTIC_CARTESIAN uses - * the first three \c dir parameters. The cardinal directions would be: - * - North: 0,-1, 0 - * - East: -1, 0, 0 - * - South: 0, 1, 0 - * - West: 1, 0, 0 - * - * The Z axis represents the height of the effect if supported, otherwise - * it's unused. In cartesian encoding (1, 2) would be the same as (2, 4), you - * can use any multiple you want, only the direction matters. - * - * If type is ::SDL_HAPTIC_SPHERICAL, direction is encoded by two rotations. - * The first two \c dir parameters are used. The \c dir parameters are as - * follows (all values are in hundredths of degrees): - * - Degrees from (1, 0) rotated towards (0, 1). - * - Degrees towards (0, 0, 1) (device needs at least 3 axes). - * - * - * Example of force coming from the south with all encodings (force coming - * from the south means the user will have to pull the stick to counteract): - * \code - * SDL_HapticDirection direction; - * - * // Cartesian directions - * direction.type = SDL_HAPTIC_CARTESIAN; // Using cartesian direction encoding. - * direction.dir[0] = 0; // X position - * direction.dir[1] = 1; // Y position - * // Assuming the device has 2 axes, we don't need to specify third parameter. - * - * // Polar directions - * direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding. - * direction.dir[0] = 18000; // Polar only uses first parameter - * - * // Spherical coordinates - * direction.type = SDL_HAPTIC_SPHERICAL; // Spherical encoding - * direction.dir[0] = 9000; // Since we only have two axes we don't need more parameters. - * \endcode - * - * \sa SDL_HAPTIC_POLAR - * \sa SDL_HAPTIC_CARTESIAN - * \sa SDL_HAPTIC_SPHERICAL - * \sa SDL_HapticEffect - * \sa SDL_HapticNumAxes - */ -typedef struct SDL_HapticDirection -{ - Uint8 type; /**< The type of encoding. */ - Sint32 dir[3]; /**< The encoded direction. */ -} SDL_HapticDirection; - - -/** - * \brief A structure containing a template for a Constant effect. - * - * The struct is exclusive to the ::SDL_HAPTIC_CONSTANT effect. - * - * A constant effect applies a constant force in the specified direction - * to the joystick. - * - * \sa SDL_HAPTIC_CONSTANT - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticConstant -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_CONSTANT */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Constant */ - Sint16 level; /**< Strength of the constant effect. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticConstant; - -/** - * \brief A structure containing a template for a Periodic effect. - * - * The struct handles the following effects: - * - ::SDL_HAPTIC_SINE - * - ::SDL_HAPTIC_SQUARE - * - ::SDL_HAPTIC_TRIANGLE - * - ::SDL_HAPTIC_SAWTOOTHUP - * - ::SDL_HAPTIC_SAWTOOTHDOWN - * - * A periodic effect consists in a wave-shaped effect that repeats itself - * over time. The type determines the shape of the wave and the parameters - * determine the dimensions of the wave. - * - * Phase is given by hundredth of a cyle meaning that giving the phase a value - * of 9000 will displace it 25% of it's period. Here are sample values: - * - 0: No phase displacement. - * - 9000: Displaced 25% of it's period. - * - 18000: Displaced 50% of it's period. - * - 27000: Displaced 75% of it's period. - * - 36000: Displaced 100% of it's period, same as 0, but 0 is preffered. - * - * Examples: - * \verbatim - SDL_HAPTIC_SINE - __ __ __ __ - / \ / \ / \ / - / \__/ \__/ \__/ - - SDL_HAPTIC_SQUARE - __ __ __ __ __ - | | | | | | | | | | - | |__| |__| |__| |__| | - - SDL_HAPTIC_TRIANGLE - /\ /\ /\ /\ /\ - / \ / \ / \ / \ / - / \/ \/ \/ \/ - - SDL_HAPTIC_SAWTOOTHUP - /| /| /| /| /| /| /| - / | / | / | / | / | / | / | - / |/ |/ |/ |/ |/ |/ | - - SDL_HAPTIC_SAWTOOTHDOWN - \ |\ |\ |\ |\ |\ |\ | - \ | \ | \ | \ | \ | \ | \ | - \| \| \| \| \| \| \| - \endverbatim - * - * \sa SDL_HAPTIC_SINE - * \sa SDL_HAPTIC_SQUARE - * \sa SDL_HAPTIC_TRIANGLE - * \sa SDL_HAPTIC_SAWTOOTHUP - * \sa SDL_HAPTIC_SAWTOOTHDOWN - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticPeriodic -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_SINE, ::SDL_HAPTIC_SQUARE, - ::SDL_HAPTIC_TRIANGLE, ::SDL_HAPTIC_SAWTOOTHUP or - ::SDL_HAPTIC_SAWTOOTHDOWN */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Periodic */ - Uint16 period; /**< Period of the wave. */ - Sint16 magnitude; /**< Peak value. */ - Sint16 offset; /**< Mean value of the wave. */ - Uint16 phase; /**< Horizontal shift given by hundredth of a cycle. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticPeriodic; - -/** - * \brief A structure containing a template for a Condition effect. - * - * The struct handles the following effects: - * - ::SDL_HAPTIC_SPRING: Effect based on axes position. - * - ::SDL_HAPTIC_DAMPER: Effect based on axes velocity. - * - ::SDL_HAPTIC_INERTIA: Effect based on axes acceleration. - * - ::SDL_HAPTIC_FRICTION: Effect based on axes movement. - * - * Direction is handled by condition internals instead of a direction member. - * The condition effect specific members have three parameters. The first - * refers to the X axis, the second refers to the Y axis and the third - * refers to the Z axis. The right terms refer to the positive side of the - * axis and the left terms refer to the negative side of the axis. Please - * refer to the ::SDL_HapticDirection diagram for which side is positive and - * which is negative. - * - * \sa SDL_HapticDirection - * \sa SDL_HAPTIC_SPRING - * \sa SDL_HAPTIC_DAMPER - * \sa SDL_HAPTIC_INERTIA - * \sa SDL_HAPTIC_FRICTION - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticCondition -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_SPRING, ::SDL_HAPTIC_DAMPER, - ::SDL_HAPTIC_INERTIA or ::SDL_HAPTIC_FRICTION */ - SDL_HapticDirection direction; /**< Direction of the effect - Not used ATM. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Condition */ - Uint16 right_sat[3]; /**< Level when joystick is to the positive side. */ - Uint16 left_sat[3]; /**< Level when joystick is to the negative side. */ - Sint16 right_coeff[3]; /**< How fast to increase the force towards the positive side. */ - Sint16 left_coeff[3]; /**< How fast to increase the force towards the negative side. */ - Uint16 deadband[3]; /**< Size of the dead zone. */ - Sint16 center[3]; /**< Position of the dead zone. */ -} SDL_HapticCondition; - -/** - * \brief A structure containing a template for a Ramp effect. - * - * This struct is exclusively for the ::SDL_HAPTIC_RAMP effect. - * - * The ramp effect starts at start strength and ends at end strength. - * It augments in linear fashion. If you use attack and fade with a ramp - * they effects get added to the ramp effect making the effect become - * quadratic instead of linear. - * - * \sa SDL_HAPTIC_RAMP - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticRamp -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_RAMP */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Ramp */ - Sint16 start; /**< Beginning strength level. */ - Sint16 end; /**< Ending strength level. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticRamp; - -/** - * \brief A structure containing a template for the ::SDL_HAPTIC_CUSTOM effect. - * - * A custom force feedback effect is much like a periodic effect, where the - * application can define it's exact shape. You will have to allocate the - * data yourself. Data should consist of channels * samples Uint16 samples. - * - * If channels is one, the effect is rotated using the defined direction. - * Otherwise it uses the samples in data for the different axes. - * - * \sa SDL_HAPTIC_CUSTOM - * \sa SDL_HapticEffect - */ -typedef struct SDL_HapticCustom -{ - /* Header */ - Uint16 type; /**< ::SDL_HAPTIC_CUSTOM */ - SDL_HapticDirection direction; /**< Direction of the effect. */ - - /* Replay */ - Uint32 length; /**< Duration of the effect. */ - Uint16 delay; /**< Delay before starting the effect. */ - - /* Trigger */ - Uint16 button; /**< Button that triggers the effect. */ - Uint16 interval; /**< How soon it can be triggered again after button. */ - - /* Custom */ - Uint8 channels; /**< Axes to use, minimum of one. */ - Uint16 period; /**< Sample periods. */ - Uint16 samples; /**< Amount of samples. */ - Uint16 *data; /**< Should contain channels*samples items. */ - - /* Envelope */ - Uint16 attack_length; /**< Duration of the attack. */ - Uint16 attack_level; /**< Level at the start of the attack. */ - Uint16 fade_length; /**< Duration of the fade. */ - Uint16 fade_level; /**< Level at the end of the fade. */ -} SDL_HapticCustom; - -/** - * \brief The generic template for any haptic effect. - * - * All values max at 32767 (0x7FFF). Signed values also can be negative. - * Time values unless specified otherwise are in milliseconds. - * - * You can also pass ::SDL_HAPTIC_INFINITY to length instead of a 0-32767 - * value. Neither delay, interval, attack_length nor fade_length support - * ::SDL_HAPTIC_INFINITY. Fade will also not be used since effect never ends. - * - * Additionally, the ::SDL_HAPTIC_RAMP effect does not support a duration of - * ::SDL_HAPTIC_INFINITY. - * - * Button triggers may not be supported on all devices, it is advised to not - * use them if possible. Buttons start at index 1 instead of index 0 like - * they joystick. - * - * If both attack_length and fade_level are 0, the envelope is not used, - * otherwise both values are used. - * - * Common parts: - * \code - * // Replay - All effects have this - * Uint32 length; // Duration of effect (ms). - * Uint16 delay; // Delay before starting effect. - * - * // Trigger - All effects have this - * Uint16 button; // Button that triggers effect. - * Uint16 interval; // How soon before effect can be triggered again. - * - * // Envelope - All effects except condition effects have this - * Uint16 attack_length; // Duration of the attack (ms). - * Uint16 attack_level; // Level at the start of the attack. - * Uint16 fade_length; // Duration of the fade out (ms). - * Uint16 fade_level; // Level at the end of the fade. - * \endcode - * - * - * Here we have an example of a constant effect evolution in time: - * \verbatim - Strength - ^ - | - | effect level --> _________________ - | / \ - | / \ - | / \ - | / \ - | attack_level --> | \ - | | | <--- fade_level - | - +--------------------------------------------------> Time - [--] [---] - attack_length fade_length - - [------------------][-----------------------] - delay length - \endverbatim - * - * Note either the attack_level or the fade_level may be above the actual - * effect level. - * - * \sa SDL_HapticConstant - * \sa SDL_HapticPeriodic - * \sa SDL_HapticCondition - * \sa SDL_HapticRamp - * \sa SDL_HapticCustom - */ -typedef union SDL_HapticEffect -{ - /* Common for all force feedback effects */ - Uint16 type; /**< Effect type. */ - SDL_HapticConstant constant; /**< Constant effect. */ - SDL_HapticPeriodic periodic; /**< Periodic effect. */ - SDL_HapticCondition condition; /**< Condition effect. */ - SDL_HapticRamp ramp; /**< Ramp effect. */ - SDL_HapticCustom custom; /**< Custom effect. */ -} SDL_HapticEffect; - - -/* Function prototypes */ -/** - * \brief Count the number of joysticks attached to the system. - * - * \return Number of haptic devices detected on the system. - */ -extern DECLSPEC int SDLCALL SDL_NumHaptics(void); - -/** - * \brief Get the implementation dependent name of a Haptic device. - * - * This can be called before any joysticks are opened. - * If no name can be found, this function returns NULL. - * - * \param device_index Index of the device to get it's name. - * \return Name of the device or NULL on error. - * - * \sa SDL_NumHaptics - */ -extern DECLSPEC const char *SDLCALL SDL_HapticName(int device_index); - -/** - * \brief Opens a Haptic device for usage. - * - * The index passed as an argument refers to the N'th Haptic device on this - * system. - * - * When opening a haptic device, it's gain will be set to maximum and - * autocenter will be disabled. To modify these values use - * SDL_HapticSetGain() and SDL_HapticSetAutocenter(). - * - * \param device_index Index of the device to open. - * \return Device identifier or NULL on error. - * - * \sa SDL_HapticIndex - * \sa SDL_HapticOpenFromMouse - * \sa SDL_HapticOpenFromJoystick - * \sa SDL_HapticClose - * \sa SDL_HapticSetGain - * \sa SDL_HapticSetAutocenter - * \sa SDL_HapticPause - * \sa SDL_HapticStopAll - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpen(int device_index); - -/** - * \brief Checks if the haptic device at index has been opened. - * - * \param device_index Index to check to see if it has been opened. - * \return 1 if it has been opened or 0 if it hasn't. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticIndex - */ -extern DECLSPEC int SDLCALL SDL_HapticOpened(int device_index); - -/** - * \brief Gets the index of a haptic device. - * - * \param haptic Haptic device to get the index of. - * \return The index of the haptic device or -1 on error. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticOpened - */ -extern DECLSPEC int SDLCALL SDL_HapticIndex(SDL_Haptic * haptic); - -/** - * \brief Gets whether or not the current mouse has haptic capabilities. - * - * \return SDL_TRUE if the mouse is haptic, SDL_FALSE if it isn't. - * - * \sa SDL_HapticOpenFromMouse - */ -extern DECLSPEC int SDLCALL SDL_MouseIsHaptic(void); - -/** - * \brief Tries to open a haptic device from the current mouse. - * - * \return The haptic device identifier or NULL on error. - * - * \sa SDL_MouseIsHaptic - * \sa SDL_HapticOpen - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromMouse(void); - -/** - * \brief Checks to see if a joystick has haptic features. - * - * \param joystick Joystick to test for haptic capabilities. - * \return 1 if the joystick is haptic, 0 if it isn't - * or -1 if an error ocurred. - * - * \sa SDL_HapticOpenFromJoystick - */ -extern DECLSPEC int SDLCALL SDL_JoystickIsHaptic(SDL_Joystick * joystick); - -/** - * \brief Opens a Haptic device for usage from a Joystick device. - * - * You must still close the haptic device seperately. It will not be closed - * with the joystick. - * - * When opening from a joystick you should first close the haptic device before - * closing the joystick device. If not, on some implementations the haptic - * device will also get unallocated and you'll be unable to use force feedback - * on that device. - * - * \param joystick Joystick to create a haptic device from. - * \return A valid haptic device identifier on success or NULL on error. - * - * \sa SDL_HapticOpen - * \sa SDL_HapticClose - */ -extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromJoystick(SDL_Joystick * - joystick); - -/** - * \brief Closes a Haptic device previously opened with SDL_HapticOpen(). - * - * \param haptic Haptic device to close. - */ -extern DECLSPEC void SDLCALL SDL_HapticClose(SDL_Haptic * haptic); - -/** - * \brief Returns the number of effects a haptic device can store. - * - * On some platforms this isn't fully supported, and therefore is an - * aproximation. Always check to see if your created effect was actually - * created and do not rely solely on SDL_HapticNumEffects(). - * - * \param haptic The haptic device to query effect max. - * \return The number of effects the haptic device can store or - * -1 on error. - * - * \sa SDL_HapticNumEffectsPlaying - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticNumEffects(SDL_Haptic * haptic); - -/** - * \brief Returns the number of effects a haptic device can play at the same - * time. - * - * This is not supported on all platforms, but will always return a value. - * Added here for the sake of completness. - * - * \param haptic The haptic device to query maximum playing effects. - * \return The number of effects the haptic device can play at the same time - * or -1 on error. - * - * \sa SDL_HapticNumEffects - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticNumEffectsPlaying(SDL_Haptic * haptic); - -/** - * \brief Gets the haptic devices supported features in bitwise matter. - * - * Example: - * \code - * if (SDL_HapticQueryEffects(haptic) & SDL_HAPTIC_CONSTANT) { - * printf("We have constant haptic effect!"); - * } - * \endcode - * - * \param haptic The haptic device to query. - * \return Haptic features in bitwise manner (OR'd). - * - * \sa SDL_HapticNumEffects - * \sa SDL_HapticEffectSupported - */ -extern DECLSPEC unsigned int SDLCALL SDL_HapticQuery(SDL_Haptic * haptic); - - -/** - * \brief Gets the number of haptic axes the device has. - * - * \sa SDL_HapticDirection - */ -extern DECLSPEC int SDLCALL SDL_HapticNumAxes(SDL_Haptic * haptic); - -/** - * \brief Checks to see if effect is supported by haptic. - * - * \param haptic Haptic device to check on. - * \param effect Effect to check to see if it is supported. - * \return 1 if effect is supported, 0 if it isn't or -1 on error. - * - * \sa SDL_HapticQuery - * \sa SDL_HapticNewEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticEffectSupported(SDL_Haptic * haptic, - SDL_HapticEffect * - effect); - -/** - * \brief Creates a new haptic effect on the device. - * - * \param haptic Haptic device to create the effect on. - * \param effect Properties of the effect to create. - * \return The id of the effect on success or -1 on error. - * - * \sa SDL_HapticUpdateEffect - * \sa SDL_HapticRunEffect - * \sa SDL_HapticDestroyEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticNewEffect(SDL_Haptic * haptic, - SDL_HapticEffect * effect); - -/** - * \brief Updates the properties of an effect. - * - * Can be used dynamically, although behaviour when dynamically changing - * direction may be strange. Specifically the effect may reupload itself - * and start playing from the start. You cannot change the type either when - * running SDL_HapticUpdateEffect(). - * - * \param haptic Haptic device that has the effect. - * \param effect Effect to update. - * \param data New effect properties to use. - * \return The id of the effect on success or -1 on error. - * - * \sa SDL_HapticNewEffect - * \sa SDL_HapticRunEffect - * \sa SDL_HapticDestroyEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticUpdateEffect(SDL_Haptic * haptic, - int effect, - SDL_HapticEffect * data); - -/** - * \brief Runs the haptic effect on it's assosciated haptic device. - * - * If iterations are ::SDL_HAPTIC_INFINITY, it'll run the effect over and over - * repeating the envelope (attack and fade) every time. If you only want the - * effect to last forever, set ::SDL_HAPTIC_INFINITY in the effect's length - * parameter. - * - * \param haptic Haptic device to run the effect on. - * \param effect Identifier of the haptic effect to run. - * \param iterations Number of iterations to run the effect. Use - * ::SDL_HAPTIC_INFINITY for infinity. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticStopEffect - * \sa SDL_HapticDestroyEffect - * \sa SDL_HapticGetEffectStatus - */ -extern DECLSPEC int SDLCALL SDL_HapticRunEffect(SDL_Haptic * haptic, - int effect, - Uint32 iterations); - -/** - * \brief Stops the haptic effect on it's assosciated haptic device. - * - * \param haptic Haptic device to stop the effect on. - * \param effect Identifier of the effect to stop. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticRunEffect - * \sa SDL_HapticDestroyEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticStopEffect(SDL_Haptic * haptic, - int effect); - -/** - * \brief Destroys a haptic effect on the device. - * - * This will stop the effect if it's running. Effects are automatically - * destroyed when the device is closed. - * - * \param haptic Device to destroy the effect on. - * \param effect Identifier of the effect to destroy. - * - * \sa SDL_HapticNewEffect - */ -extern DECLSPEC void SDLCALL SDL_HapticDestroyEffect(SDL_Haptic * haptic, - int effect); - -/** - * \brief Gets the status of the current effect on the haptic device. - * - * Device must support the ::SDL_HAPTIC_STATUS feature. - * - * \param haptic Haptic device to query the effect status on. - * \param effect Identifier of the effect to query it's status. - * \return 0 if it isn't playing, ::SDL_HAPTIC_PLAYING if it is playing - * or -1 on error. - * - * \sa SDL_HapticRunEffect - * \sa SDL_HapticStopEffect - */ -extern DECLSPEC int SDLCALL SDL_HapticGetEffectStatus(SDL_Haptic * haptic, - int effect); - -/** - * \brief Sets the global gain of the device. - * - * Device must support the ::SDL_HAPTIC_GAIN feature. - * - * The user may specify the maxmimum gain by setting the environment variable - * ::SDL_HAPTIC_GAIN_MAX which should be between 0 and 100. All calls to - * SDL_HapticSetGain() will scale linearly using ::SDL_HAPTIC_GAIN_MAX as the - * maximum. - * - * \param haptic Haptic device to set the gain on. - * \param gain Value to set the gain to, should be between 0 and 100. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticSetGain(SDL_Haptic * haptic, int gain); - -/** - * \brief Sets the global autocenter of the device. - * - * Autocenter should be between 0 and 100. Setting it to 0 will disable - * autocentering. - * - * Device must support the ::SDL_HAPTIC_AUTOCENTER feature. - * - * \param haptic Haptic device to set autocentering on. - * \param autocenter Value to set autocenter to, 0 disables autocentering. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticQuery - */ -extern DECLSPEC int SDLCALL SDL_HapticSetAutocenter(SDL_Haptic * haptic, - int autocenter); - -/** - * \brief Pauses a haptic device. - * - * Device must support the ::SDL_HAPTIC_PAUSE feature. Call - * SDL_HapticUnpause() to resume playback. - * - * Do not modify the effects nor add new ones while the device is paused. - * That can cause all sorts of weird errors. - * - * \param haptic Haptic device to pause. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticUnpause - */ -extern DECLSPEC int SDLCALL SDL_HapticPause(SDL_Haptic * haptic); - -/** - * \brief Unpauses a haptic device. - * - * Call to unpause after SDL_HapticPause(). - * - * \param haptic Haptic device to pause. - * \return 0 on success or -1 on error. - * - * \sa SDL_HapticPause - */ -extern DECLSPEC int SDLCALL SDL_HapticUnpause(SDL_Haptic * haptic); - -/** - * \brief Stops all the currently playing effects on a haptic device. - * - * \param haptic Haptic device to stop. - * \return 0 on success or -1 on error. - */ -extern DECLSPEC int SDLCALL SDL_HapticStopAll(SDL_Haptic * haptic); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" - -#endif /* _SDL_haptic_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/include/SDL_joystick.h b/macosx/plugins/DFInput/SDL/include/SDL_joystick.h deleted file mode 100644 index 2e70862..0000000 --- a/macosx/plugins/DFInput/SDL/include/SDL_joystick.h +++ /dev/null @@ -1,209 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -/** - * \file SDL_joystick.h - * - * Include file for SDL joystick event handling - */ - -#ifndef _SDL_joystick_h -#define _SDL_joystick_h - -#include "SDL_stdinc.h" -#include "SDL_error.h" - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - -/** - * \file SDL_joystick.h - * - * In order to use these functions, SDL_Init() must have been called - * with the ::SDL_INIT_JOYSTICK flag. This causes SDL to scan the system - * for joysticks, and load appropriate drivers. - */ - -/* The joystick structure used to identify an SDL joystick */ -struct _SDL_Joystick; -typedef struct _SDL_Joystick SDL_Joystick; - - -/* Function prototypes */ -/** - * Count the number of joysticks attached to the system - */ -extern DECLSPEC int SDLCALL SDL_NumJoysticks(void); - -/** - * Get the implementation dependent name of a joystick. - * This can be called before any joysticks are opened. - * If no name can be found, this function returns NULL. - */ -extern DECLSPEC const char *SDLCALL SDL_JoystickName(int device_index); - -/** - * Open a joystick for use. - * The index passed as an argument refers tothe N'th joystick on the system. - * This index is the value which will identify this joystick in future joystick - * events. - * - * \return A joystick identifier, or NULL if an error occurred. - */ -extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickOpen(int device_index); - -/** - * Returns 1 if the joystick has been opened, or 0 if it has not. - */ -extern DECLSPEC int SDLCALL SDL_JoystickOpened(int device_index); - -/** - * Get the device index of an opened joystick. - */ -extern DECLSPEC int SDLCALL SDL_JoystickIndex(SDL_Joystick * joystick); - -/** - * Get the number of general axis controls on a joystick. - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick * joystick); - -/** - * Get the number of trackballs on a joystick. - * - * Joystick trackballs have only relative motion events associated - * with them and their state cannot be polled. - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick * joystick); - -/** - * Get the number of POV hats on a joystick. - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick * joystick); - -/** - * Get the number of buttons on a joystick. - */ -extern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick * joystick); - -/** - * Update the current state of the open joysticks. - * - * This is called automatically by the event loop if any joystick - * events are enabled. - */ -extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void); - -/** - * Enable/disable joystick event polling. - * - * If joystick events are disabled, you must call SDL_JoystickUpdate() - * yourself and check the state of the joystick when you want joystick - * information. - * - * The state can be one of ::SDL_QUERY, ::SDL_ENABLE or ::SDL_IGNORE. - */ -extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state); - -/** - * Get the current state of an axis control on a joystick. - * - * The state is a value ranging from -32768 to 32767. - * - * The axis indices start at index 0. - */ -extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick * joystick, - int axis); - -/** - * \name Hat positions - */ -/*@{*/ -#define SDL_HAT_CENTERED 0x00 -#define SDL_HAT_UP 0x01 -#define SDL_HAT_RIGHT 0x02 -#define SDL_HAT_DOWN 0x04 -#define SDL_HAT_LEFT 0x08 -#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP) -#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN) -#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP) -#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN) -/*@}*/ - -/** - * Get the current state of a POV hat on a joystick. - * - * The hat indices start at index 0. - * - * \return The return value is one of the following positions: - * - ::SDL_HAT_CENTERED - * - ::SDL_HAT_UP - * - ::SDL_HAT_RIGHT - * - ::SDL_HAT_DOWN - * - ::SDL_HAT_LEFT - * - ::SDL_HAT_RIGHTUP - * - ::SDL_HAT_RIGHTDOWN - * - ::SDL_HAT_LEFTUP - * - ::SDL_HAT_LEFTDOWN - */ -extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick * joystick, - int hat); - -/** - * Get the ball axis change since the last poll. - * - * \return 0, or -1 if you passed it invalid parameters. - * - * The ball indices start at index 0. - */ -extern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick * joystick, - int ball, int *dx, int *dy); - -/** - * Get the current state of a button on a joystick. - * - * The button indices start at index 0. - */ -extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick * joystick, - int button); - -/** - * Close a joystick previously opened with SDL_JoystickOpen(). - */ -extern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick * joystick); - - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" - -#endif /* _SDL_joystick_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/include/SDL_main.h b/macosx/plugins/DFInput/SDL/include/SDL_main.h deleted file mode 100644 index 803aa0f..0000000 --- a/macosx/plugins/DFInput/SDL/include/SDL_main.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -#ifndef _SDL_main_h -#define _SDL_main_h - -#include "SDL_stdinc.h" - -/** - * \file SDL_main.h - * - * Redefine main() on some platforms so that it is called by SDL. - */ - -#if defined(__WIN32__) || \ - (defined(__MWERKS__) && !defined(__BEOS__)) || \ - defined(__SYMBIAN32__) || defined(__IPHONEOS__) - -#ifdef __cplusplus -#define C_LINKAGE "C" -#else -#define C_LINKAGE -#endif /* __cplusplus */ - -/** - * \file SDL_main.h - * - * The application's main() function must be called with C linkage, - * and should be declared like this: - * \code - * #ifdef __cplusplus - * extern "C" - * #endif - * int main(int argc, char *argv[]) - * { - * } - * \endcode - */ - -#define main SDL_main - -/** - * The prototype for the application's main() function - */ -extern C_LINKAGE int SDL_main(int argc, char *argv[]); - - -/* From the SDL library code -- needed for registering the app on Win32 */ -#ifdef __WIN32__ - -#include "begin_code.h" -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - -/** - * This can be called to set the application class at startup - */ -extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style, - void *hInst); -extern DECLSPEC void SDLCALL SDL_UnregisterApp(void); - -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" -#endif - -#endif /* Need to redefine main()? */ - -#endif /* _SDL_main_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/include/SDL_platform.h b/macosx/plugins/DFInput/SDL/include/SDL_platform.h deleted file mode 100644 index f9429bd..0000000 --- a/macosx/plugins/DFInput/SDL/include/SDL_platform.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -/** - * \file SDL_platform.h - * - * Try to get a standard set of platform defines. - */ - -#ifndef _SDL_platform_h -#define _SDL_platform_h - -#if defined(_AIX) -#undef __AIX__ -#define __AIX__ 1 -#endif -#if defined(__BEOS__) -#undef __BEOS__ -#define __BEOS__ 1 -#endif -#if defined(__HAIKU__) -#undef __HAIKU__ -#define __HAIKU__ 1 -#endif -#if defined(bsdi) || defined(__bsdi) || defined(__bsdi__) -#undef __BSDI__ -#define __BSDI__ 1 -#endif -#if defined(_arch_dreamcast) -#undef __DREAMCAST__ -#define __DREAMCAST__ 1 -#endif -#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) -#undef __FREEBSD__ -#define __FREEBSD__ 1 -#endif -#if defined(hpux) || defined(__hpux) || defined(__hpux__) -#undef __HPUX__ -#define __HPUX__ 1 -#endif -#if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE) -#undef __IRIX__ -#define __IRIX__ 1 -#endif -#if defined(linux) || defined(__linux) || defined(__linux__) -#undef __LINUX__ -#define __LINUX__ 1 -#endif - -#if defined(__APPLE__) -/* lets us know what version of Mac OS X we're compiling on */ -#include "AvailabilityMacros.h" -#ifdef MAC_OS_X_VERSION_10_3 -#include "TargetConditionals.h" /* this header is in 10.3 or later */ -#if TARGET_OS_IPHONE -/* if compiling for iPhone */ -#undef __IPHONEOS__ -#define __IPHONEOS__ 1 -#undef __MACOSX__ -#else -/* if not compiling for iPhone */ -#undef __MACOSX__ -#define __MACOSX__ 1 -#endif /* TARGET_OS_IPHONE */ -#else -/* if earlier verion of Mac OS X than version 10.3 */ -#undef __MACOSX__ -#define __MACOSX__ 1 -#endif - -#endif /* defined(__APPLE__) */ - -#if defined(__NetBSD__) -#undef __NETBSD__ -#define __NETBSD__ 1 -#endif -#if defined(__OpenBSD__) -#undef __OPENBSD__ -#define __OPENBSD__ 1 -#endif -#if defined(__OS2__) -#undef __OS2__ -#define __OS2__ 1 -#endif -#if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE) -#undef __OSF__ -#define __OSF__ 1 -#endif -#if defined(__QNXNTO__) -#undef __QNXNTO__ -#define __QNXNTO__ 1 -#endif -#if defined(riscos) || defined(__riscos) || defined(__riscos__) -#undef __RISCOS__ -#define __RISCOS__ 1 -#endif -#if defined(__SVR4) -#undef __SOLARIS__ -#define __SOLARIS__ 1 -#endif -#if defined(WIN32) || defined(_WIN32) -#undef __WIN32__ -#define __WIN32__ 1 -#endif - -#if defined(__NDS__) -#undef __NINTENDODS__ -#define __NINTENDODS__ 1 -#endif - - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - -/** - * \brief Gets the name of the platform. - */ -extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void); - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" - -#endif /* _SDL_platform_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/include/SDL_stdinc.h b/macosx/plugins/DFInput/SDL/include/SDL_stdinc.h deleted file mode 100644 index ba1e5b5..0000000 --- a/macosx/plugins/DFInput/SDL/include/SDL_stdinc.h +++ /dev/null @@ -1,792 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -/** - * \file SDL_stdinc.h - * - * This is a general header that includes C language support. - */ - -#ifndef _SDL_stdinc_h -#define _SDL_stdinc_h - -#include "SDL_config.h" - - -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif -#ifdef HAVE_STDIO_H -#include <stdio.h> -#endif -#if defined(STDC_HEADERS) -# include <stdlib.h> -# include <stddef.h> -# include <stdarg.h> -#else -# if defined(HAVE_STDLIB_H) -# include <stdlib.h> -# elif defined(HAVE_MALLOC_H) -# include <malloc.h> -# endif -# if defined(HAVE_STDDEF_H) -# include <stddef.h> -# endif -# if defined(HAVE_STDARG_H) -# include <stdarg.h> -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H) -# include <memory.h> -# endif -# include <string.h> -#endif -#ifdef HAVE_STRINGS_H -# include <strings.h> -#endif -#if defined(HAVE_INTTYPES_H) -# include <inttypes.h> -#elif defined(HAVE_STDINT_H) -# include <stdint.h> -#endif -#ifdef HAVE_CTYPE_H -# include <ctype.h> -#endif -#ifdef HAVE_MATH_H -# include <math.h> -#endif -#if defined(HAVE_ICONV) && defined(HAVE_ICONV_H) -# include <iconv.h> -#endif - -/** - * The number of elements in an array. - */ -#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0])) -#define SDL_TABLESIZE(table) SDL_arraysize(table) - -/** - * \name Cast operators - * - * Use proper C++ casts when compiled as C++ to be compatible with the option - * -Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above). - */ -/*@{*/ -#ifdef __cplusplus -#define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression) -#define SDL_static_cast(type, expression) static_cast<type>(expression) -#else -#define SDL_reinterpret_cast(type, expression) ((type)(expression)) -#define SDL_static_cast(type, expression) ((type)(expression)) -#endif -/*@}*//*Cast operators*/ - -/* Define a four character code as a Uint32 */ -#define SDL_FOURCC(A, B, C, D) \ - ((SDL_static_cast(Uint32, SDL_static_cast(Uint8, (A))) << 0) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (B))) << 8) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (C))) << 16) | \ - (SDL_static_cast(Uint32, SDL_static_cast(Uint8, (D))) << 24)) - -/** - * \name Basic data types - */ -/*@{*/ - -typedef enum -{ - SDL_FALSE = 0, - SDL_TRUE = 1 -} SDL_bool; - -/** - * \brief A signed 8-bit integer type. - */ -typedef int8_t Sint8; -/** - * \brief An unsigned 8-bit integer type. - */ -typedef uint8_t Uint8; -/** - * \brief A signed 16-bit integer type. - */ -typedef int16_t Sint16; -/** - * \brief An unsigned 16-bit integer type. - */ -typedef uint16_t Uint16; -/** - * \brief A signed 32-bit integer type. - */ -typedef int32_t Sint32; -/** - * \brief An unsigned 32-bit integer type. - */ -typedef uint32_t Uint32; - -#ifdef SDL_HAS_64BIT_TYPE -/** - * \brief A signed 64-bit integer type. - * \warning On platforms without any sort of 64-bit datatype, this is equivalent to Sint32! - */ -typedef int64_t Sint64; -/** - * \brief An unsigned 64-bit integer type. - * \warning On platforms without any sort of 64-bit datatype, this is equivalent to Uint32! - */ -typedef uint64_t Uint64; -#else -/* This is really just a hack to prevent the compiler from complaining */ -typedef Sint32 Sint64; -typedef Uint32 Uint64; -#endif - -/*@}*//*Basic data types*/ - - -#define SDL_COMPILE_TIME_ASSERT(name, x) \ - typedef int SDL_dummy_ ## name[(x) * 2 - 1] -/** \cond */ -#ifndef DOXYGEN_SHOULD_IGNORE_THIS -SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1); -SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1); -SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2); -SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2); -SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4); -SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4); -#ifndef __NINTENDODS__ /* TODO: figure out why the following happens: - include/SDL_stdinc.h:150: error: size of array 'SDL_dummy_uint64' is negative - include/SDL_stdinc.h:151: error: size of array 'SDL_dummy_sint64' is negative */ -SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8); -SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8); -#endif -#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ -/** \endcond */ - -/* Check to make sure enums are the size of ints, for structure packing. - For both Watcom C/C++ and Borland C/C++ the compiler option that makes - enums having the size of an int must be enabled. - This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11). -*/ -/* Enable enums always int in CodeWarrior (for MPW use "-enum int") */ -#ifdef __MWERKS__ -#pragma enumsalwaysint on -#endif - -/** \cond */ -#ifndef DOXYGEN_SHOULD_IGNORE_THIS -#ifndef __NINTENDODS__ /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */ -typedef enum -{ - DUMMY_ENUM_VALUE -} SDL_DUMMY_ENUM; - -SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int)); -#endif -#endif /* DOXYGEN_SHOULD_IGNORE_THIS */ -/** \endcond */ - -#include "begin_code.h" -/* Set up for C function definitions, even when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -extern "C" { -/* *INDENT-ON* */ -#endif - -#ifdef HAVE_MALLOC -#define SDL_malloc malloc -#else -extern DECLSPEC void *SDLCALL SDL_malloc(size_t size); -#endif - -#ifdef HAVE_CALLOC -#define SDL_calloc calloc -#else -extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size); -#endif - -#ifdef HAVE_REALLOC -#define SDL_realloc realloc -#else -extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size); -#endif - -#ifdef HAVE_FREE -#define SDL_free free -#else -extern DECLSPEC void SDLCALL SDL_free(void *mem); -#endif - -#if defined(HAVE_ALLOCA) && !defined(alloca) -# if defined(HAVE_ALLOCA_H) -# include <alloca.h> -# elif defined(__GNUC__) -# define alloca __builtin_alloca -# elif defined(_MSC_VER) -# include <malloc.h> -# define alloca _alloca -# elif defined(__WATCOMC__) -# include <malloc.h> -# elif defined(__BORLANDC__) -# include <malloc.h> -# elif defined(__DMC__) -# include <stdlib.h> -# elif defined(__AIX__) -#pragma alloca -# elif defined(__MRC__) -void *alloca(unsigned); -# else -char *alloca(); -# endif -#endif -#ifdef HAVE_ALLOCA -#define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count)) -#define SDL_stack_free(data) -#else -#define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count)) -#define SDL_stack_free(data) SDL_free(data) -#endif - -#ifdef HAVE_GETENV -#define SDL_getenv getenv -#else -extern DECLSPEC char *SDLCALL SDL_getenv(const char *name); -#endif - -/* SDL_putenv() has moved to SDL_compat. */ -#ifdef HAVE_SETENV -#define SDL_setenv setenv -#else -extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, - int overwrite); -#endif - -#ifdef HAVE_QSORT -#define SDL_qsort qsort -#else -extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size, - int (*compare) (const void *, - const void *)); -#endif - -#ifdef HAVE_ABS -#define SDL_abs abs -#else -#define SDL_abs(X) ((X) < 0 ? -(X) : (X)) -#endif - -#define SDL_min(x, y) (((x) < (y)) ? (x) : (y)) -#define SDL_max(x, y) (((x) > (y)) ? (x) : (y)) - -#ifdef HAVE_CTYPE_H -#define SDL_isdigit(X) isdigit(X) -#define SDL_isspace(X) isspace(X) -#define SDL_toupper(X) toupper(X) -#define SDL_tolower(X) tolower(X) -#else -#define SDL_isdigit(X) (((X) >= '0') && ((X) <= '9')) -#define SDL_isspace(X) (((X) == ' ') || ((X) == '\t') || ((X) == '\r') || ((X) == '\n')) -#define SDL_toupper(X) (((X) >= 'a') && ((X) <= 'z') ? ('A'+((X)-'a')) : (X)) -#define SDL_tolower(X) (((X) >= 'A') && ((X) <= 'Z') ? ('a'+((X)-'A')) : (X)) -#endif - -#ifdef HAVE_MEMSET -#define SDL_memset memset -#else -extern DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len); -#endif -#define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x))) -#define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x))) - -#if defined(__GNUC__) && defined(i386) -#define SDL_memset4(dst, val, len) \ -do { \ - int u0, u1, u2; \ - __asm__ __volatile__ ( \ - "cld\n\t" \ - "rep ; stosl\n\t" \ - : "=&D" (u0), "=&a" (u1), "=&c" (u2) \ - : "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, len)) \ - : "memory" ); \ -} while(0) -#endif -#ifndef SDL_memset4 -#define SDL_memset4(dst, val, len) \ -do { \ - unsigned _count = (len); \ - unsigned _n = (_count + 3) / 4; \ - Uint32 *_p = SDL_static_cast(Uint32 *, dst); \ - Uint32 _val = (val); \ - if (len == 0) break; \ - switch (_count % 4) { \ - case 0: do { *_p++ = _val; \ - case 3: *_p++ = _val; \ - case 2: *_p++ = _val; \ - case 1: *_p++ = _val; \ - } while ( --_n ); \ - } \ -} while(0) -#endif - -/* We can count on memcpy existing on Mac OS X and being well-tuned. */ -#if defined(__MACH__) && defined(__APPLE__) -#define SDL_memcpy(dst, src, len) memcpy(dst, src, len) -#elif defined(__GNUC__) && defined(i386) -#define SDL_memcpy(dst, src, len) \ -do { \ - int u0, u1, u2; \ - __asm__ __volatile__ ( \ - "cld\n\t" \ - "rep ; movsl\n\t" \ - "testb $2,%b4\n\t" \ - "je 1f\n\t" \ - "movsw\n" \ - "1:\ttestb $1,%b4\n\t" \ - "je 2f\n\t" \ - "movsb\n" \ - "2:" \ - : "=&c" (u0), "=&D" (u1), "=&S" (u2) \ - : "0" (SDL_static_cast(unsigned, len)/4), "q" (len), "1" (dst),"2" (src) \ - : "memory" ); \ -} while(0) -#endif -#ifndef SDL_memcpy -#ifdef HAVE_MEMCPY -#define SDL_memcpy memcpy -#elif defined(HAVE_BCOPY) -#define SDL_memcpy(d, s, n) bcopy((s), (d), (n)) -#else -extern DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src, - size_t len); -#endif -#endif - -/* We can count on memcpy existing on Mac OS X and being well-tuned. */ -#if defined(__MACH__) && defined(__APPLE__) -#define SDL_memcpy4(dst, src, len) memcpy(dst, src, (len)*4) -#elif defined(__GNUC__) && defined(i386) -#define SDL_memcpy4(dst, src, len) \ -do { \ - int ecx, edi, esi; \ - __asm__ __volatile__ ( \ - "cld\n\t" \ - "rep ; movsl" \ - : "=&c" (ecx), "=&D" (edi), "=&S" (esi) \ - : "0" (SDL_static_cast(unsigned, len)), "1" (dst), "2" (src) \ - : "memory" ); \ -} while(0) -#endif -#ifndef SDL_memcpy4 -#define SDL_memcpy4(dst, src, len) SDL_memcpy(dst, src, (len) << 2) -#endif - -#if defined(__GNUC__) && defined(i386) -#define SDL_revcpy(dst, src, len) \ -do { \ - int u0, u1, u2; \ - char *dstp = SDL_static_cast(char *, dst); \ - char *srcp = SDL_static_cast(char *, src); \ - int n = (len); \ - if ( n >= 4 ) { \ - __asm__ __volatile__ ( \ - "std\n\t" \ - "rep ; movsl\n\t" \ - "cld\n\t" \ - : "=&c" (u0), "=&D" (u1), "=&S" (u2) \ - : "0" (n >> 2), \ - "1" (dstp+(n-4)), "2" (srcp+(n-4)) \ - : "memory" ); \ - } \ - switch (n & 3) { \ - case 3: dstp[2] = srcp[2]; \ - case 2: dstp[1] = srcp[1]; \ - case 1: dstp[0] = srcp[0]; \ - break; \ - default: \ - break; \ - } \ -} while(0) -#endif -#ifndef SDL_revcpy -extern DECLSPEC void *SDLCALL SDL_revcpy(void *dst, const void *src, - size_t len); -#endif - -#ifdef HAVE_MEMMOVE -#define SDL_memmove memmove -#elif defined(HAVE_BCOPY) -#define SDL_memmove(d, s, n) bcopy((s), (d), (n)) -#else -#define SDL_memmove(dst, src, len) \ -do { \ - if ( dst < src ) { \ - SDL_memcpy(dst, src, len); \ - } else { \ - SDL_revcpy(dst, src, len); \ - } \ -} while(0) -#endif - -#ifdef HAVE_MEMCMP -#define SDL_memcmp memcmp -#else -extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, - size_t len); -#endif - -#ifdef HAVE_STRLEN -#define SDL_strlen strlen -#else -extern DECLSPEC size_t SDLCALL SDL_strlen(const char *string); -#endif - -#ifdef HAVE_WCSLEN -#define SDL_wcslen wcslen -#else -#if !defined(wchar_t) && defined(__NINTENDODS__) -#define wchar_t short /* TODO: figure out why libnds doesn't have this */ -#endif -extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t * string); -#endif - -#ifdef HAVE_STRLCPY -#define SDL_strlcpy strlcpy -#else -extern DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src, - size_t maxlen); -#endif - -#ifdef HAVE_STRLCAT -#define SDL_strlcat strlcat -#else -extern DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src, - size_t maxlen); -#endif - -#ifdef HAVE_STRDUP -#define SDL_strdup strdup -#else -extern DECLSPEC char *SDLCALL SDL_strdup(const char *string); -#endif - -#ifdef HAVE__STRREV -#define SDL_strrev _strrev -#else -extern DECLSPEC char *SDLCALL SDL_strrev(char *string); -#endif - -#ifdef HAVE__STRUPR -#define SDL_strupr _strupr -#else -extern DECLSPEC char *SDLCALL SDL_strupr(char *string); -#endif - -#ifdef HAVE__STRLWR -#define SDL_strlwr _strlwr -#else -extern DECLSPEC char *SDLCALL SDL_strlwr(char *string); -#endif - -#ifdef HAVE_STRCHR -#define SDL_strchr strchr -#elif defined(HAVE_INDEX) -#define SDL_strchr index -#else -extern DECLSPEC char *SDLCALL SDL_strchr(const char *string, int c); -#endif - -#ifdef HAVE_STRRCHR -#define SDL_strrchr strrchr -#elif defined(HAVE_RINDEX) -#define SDL_strrchr rindex -#else -extern DECLSPEC char *SDLCALL SDL_strrchr(const char *string, int c); -#endif - -#ifdef HAVE_STRSTR -#define SDL_strstr strstr -#else -extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, - const char *needle); -#endif - -#ifdef HAVE_ITOA -#define SDL_itoa itoa -#else -#define SDL_itoa(value, string, radix) SDL_ltoa((long)value, string, radix) -#endif - -#ifdef HAVE__LTOA -#define SDL_ltoa _ltoa -#else -extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *string, int radix); -#endif - -#ifdef HAVE__UITOA -#define SDL_uitoa _uitoa -#else -#define SDL_uitoa(value, string, radix) SDL_ultoa((long)value, string, radix) -#endif - -#ifdef HAVE__ULTOA -#define SDL_ultoa _ultoa -#else -extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *string, - int radix); -#endif - -#ifdef HAVE_STRTOL -#define SDL_strtol strtol -#else -extern DECLSPEC long SDLCALL SDL_strtol(const char *string, char **endp, - int base); -#endif - -#ifdef HAVE_STRTOUL -#define SDL_strtoul strtoul -#else -extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *string, - char **endp, int base); -#endif - -#ifdef SDL_HAS_64BIT_TYPE - -#ifdef HAVE__I64TOA -#define SDL_lltoa _i64toa -#else -extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *string, - int radix); -#endif - -#ifdef HAVE__UI64TOA -#define SDL_ulltoa _ui64toa -#else -extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *string, - int radix); -#endif - -#ifdef HAVE_STRTOLL -#define SDL_strtoll strtoll -#else -extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *string, char **endp, - int base); -#endif - -#ifdef HAVE_STRTOULL -#define SDL_strtoull strtoull -#else -extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *string, char **endp, - int base); -#endif - -#endif /* SDL_HAS_64BIT_TYPE */ - -#ifdef HAVE_STRTOD -#define SDL_strtod strtod -#else -extern DECLSPEC double SDLCALL SDL_strtod(const char *string, char **endp); -#endif - -#ifdef HAVE_ATOI -#define SDL_atoi atoi -#else -#define SDL_atoi(X) SDL_strtol(X, NULL, 0) -#endif - -#ifdef HAVE_ATOF -#define SDL_atof atof -#else -#define SDL_atof(X) SDL_strtod(X, NULL) -#endif - -#ifdef HAVE_STRCMP -#define SDL_strcmp strcmp -#else -extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2); -#endif - -#ifdef HAVE_STRNCMP -#define SDL_strncmp strncmp -#else -extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, - size_t maxlen); -#endif - -#ifdef HAVE_STRCASECMP -#define SDL_strcasecmp strcasecmp -#elif defined(HAVE__STRICMP) -#define SDL_strcasecmp _stricmp -#else -extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, - const char *str2); -#endif - -#ifdef HAVE_STRNCASECMP -#define SDL_strncasecmp strncasecmp -#elif defined(HAVE__STRNICMP) -#define SDL_strncasecmp _strnicmp -#else -extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, - const char *str2, size_t maxlen); -#endif - -#ifdef HAVE_SSCANF -#define SDL_sscanf sscanf -#else -extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt, - ...); -#endif - -#ifdef HAVE_SNPRINTF -#define SDL_snprintf snprintf -#else -extern DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen, - const char *fmt, ...); -#endif - -#ifdef HAVE_VSNPRINTF -#define SDL_vsnprintf vsnprintf -#else -extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, - const char *fmt, va_list ap); -#endif - -#ifndef HAVE_M_PI -#define M_PI 3.14159265358979323846264338327950288 /* pi */ -#endif - -#ifdef HAVE_CEIL -#define SDL_ceil ceil -#else -#define SDL_ceil(x) ((double)(int)((x)+0.5)) -#endif - -#ifdef HAVE_COPYSIGN -#define SDL_copysign copysign -#else -extern DECLSPEC double SDLCALL SDL_copysign(double x, double y); -#endif - -#ifdef HAVE_COS -#define SDL_cos cos -#else -extern DECLSPEC double SDLCALL SDL_cos(double x); -#endif - -#ifdef HAVE_COSF -#define SDL_cosf cosf -#else -#define SDL_cosf(x) (float)SDL_cos((double)x) -#endif - -#ifdef HAVE_FABS -#define SDL_fabs fabs -#else -extern DECLSPEC double SDLCALL SDL_fabs(double x); -#endif - -#ifdef HAVE_FLOOR -#define SDL_floor floor -#else -extern DECLSPEC double SDLCALL SDL_floor(double x); -#endif - -#ifdef HAVE_LOG -#define SDL_log log -#else -extern DECLSPEC double SDLCALL SDL_log(double x); -#endif - -#ifdef HAVE_POW -#define SDL_pow pow -#else -extern DECLSPEC double SDLCALL SDL_pow(double x, double y); -#endif - -#ifdef HAVE_SCALBN -#define SDL_scalbn scalbn -#else -extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n); -#endif - -#ifdef HAVE_SIN -#define SDL_sin sin -#else -extern DECLSPEC double SDLCALL SDL_sin(double x); -#endif - -#ifdef HAVE_SINF -#define SDL_sinf sinf -#else -#define SDL_sinf(x) (float)SDL_sin((double)x) -#endif - -#ifdef HAVE_SQRT -#define SDL_sqrt sqrt -#else -extern DECLSPEC double SDLCALL SDL_sqrt(double x); -#endif - -/* The SDL implementation of iconv() returns these error codes */ -#define SDL_ICONV_ERROR (size_t)-1 -#define SDL_ICONV_E2BIG (size_t)-2 -#define SDL_ICONV_EILSEQ (size_t)-3 -#define SDL_ICONV_EINVAL (size_t)-4 - -#if defined(HAVE_ICONV) && defined(HAVE_ICONV_H) -#define SDL_iconv_t iconv_t -#define SDL_iconv_open iconv_open -#define SDL_iconv_close iconv_close -#else -typedef struct _SDL_iconv_t *SDL_iconv_t; -extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, - const char *fromcode); -extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd); -#endif -extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, - size_t * inbytesleft, char **outbuf, - size_t * outbytesleft); -/** - * This function converts a string between encodings in one pass, returning a - * string that must be freed with SDL_free() or NULL on error. - */ -extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode, - const char *fromcode, - const char *inbuf, - size_t inbytesleft); -#define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1) -#define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2", "UTF-8", S, SDL_strlen(S)+1) -#define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4", "UTF-8", S, SDL_strlen(S)+1) - -/* Ends C function definitions when using C++ */ -#ifdef __cplusplus -/* *INDENT-OFF* */ -} -/* *INDENT-ON* */ -#endif -#include "close_code.h" - -#endif /* _SDL_stdinc_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/include/begin_code.h b/macosx/plugins/DFInput/SDL/include/begin_code.h deleted file mode 100644 index 395dc7c..0000000 --- a/macosx/plugins/DFInput/SDL/include/begin_code.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -/** - * \file begin_code.h - * - * This file sets things up for C dynamic library function definitions, - * static inlined functions, and structures aligned at 4-byte alignment. - * If you don't like ugly C preprocessor code, don't look at this file. :) - */ - -/* This shouldn't be nested -- included it around code only. */ -#ifdef _begin_code_h -#error Nested inclusion of begin_code.h -#endif -#define _begin_code_h - -/* Some compilers use a special export keyword */ -#ifndef DECLSPEC -# if defined(__BEOS__) || defined(__HAIKU__) -# if defined(__GNUC__) -# define DECLSPEC __declspec(dllexport) -# else -# define DECLSPEC __declspec(export) -# endif -# elif defined(__WIN32__) -# ifdef __BORLANDC__ -# ifdef BUILD_SDL -# define DECLSPEC -# else -# define DECLSPEC __declspec(dllimport) -# endif -# else -# define DECLSPEC __declspec(dllexport) -# endif -# else -# if defined(__GNUC__) && __GNUC__ >= 4 -# define DECLSPEC __attribute__ ((visibility("default"))) -# else -# define DECLSPEC -# endif -# endif -#endif - -/* By default SDL uses the C calling convention */ -#ifndef SDLCALL -#if defined(__WIN32__) && !defined(__GNUC__) -#define SDLCALL __cdecl -#else -#define SDLCALL -#endif -#endif /* SDLCALL */ - -/* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */ -#ifdef __SYMBIAN32__ -#undef DECLSPEC -#define DECLSPEC -#endif /* __SYMBIAN32__ */ - -/* Force structure packing at 4 byte alignment. - This is necessary if the header is included in code which has structure - packing set to an alternate value, say for loading structures from disk. - The packing is reset to the previous value in close_code.h - */ -#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) -#ifdef _MSC_VER -#pragma warning(disable: 4103) -#endif -#ifdef __BORLANDC__ -#pragma nopackwarning -#endif -#pragma pack(push,4) -#endif /* Compiler needs structure packing set */ - -/* Set up compiler-specific options for inlining functions */ -#ifndef SDL_INLINE_OKAY -#ifdef __GNUC__ -#define SDL_INLINE_OKAY -#else -/* Add any special compiler-specific cases here */ -#if defined(_MSC_VER) || defined(__BORLANDC__) || \ - defined(__DMC__) || defined(__SC__) || \ - defined(__WATCOMC__) || defined(__LCC__) || \ - defined(__DECC) -#ifndef __inline__ -#define __inline__ __inline -#endif -#define SDL_INLINE_OKAY -#else -#if !defined(__MRC__) && !defined(_SGI_SOURCE) -#ifndef __inline__ -#define __inline__ inline -#endif -#define SDL_INLINE_OKAY -#endif /* Not a funky compiler */ -#endif /* Visual C++ */ -#endif /* GNU C */ -#endif /* SDL_INLINE_OKAY */ - -/* If inlining isn't supported, remove "__inline__", turning static - inlined functions into static functions (resulting in code bloat - in all files which include the offending header files) -*/ -#ifndef SDL_INLINE_OKAY -#define __inline__ -#endif - -/* Apparently this is needed by several Windows compilers */ -#if !defined(__MACH__) -#ifndef NULL -#ifdef __cplusplus -#define NULL 0 -#else -#define NULL ((void *)0) -#endif -#endif /* NULL */ -#endif /* ! Mac OS X - breaks precompiled headers */ diff --git a/macosx/plugins/DFInput/SDL/include/close_code.h b/macosx/plugins/DFInput/SDL/include/close_code.h deleted file mode 100644 index 4b4e8a4..0000000 --- a/macosx/plugins/DFInput/SDL/include/close_code.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -/** - * \file close_code.h - * - * This file reverses the effects of begin_code.h and should be included - * after you finish any function and structure declarations in your headers - */ - -#undef _begin_code_h - -/* Reset structure packing at previous byte alignment */ -#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__) || defined(__BORLANDC__) -#ifdef __BORLANDC__ -#pragma nopackwarning -#endif -#pragma pack(pop) -#endif /* Compiler needs structure packing set */ diff --git a/macosx/plugins/DFInput/SDL/src/SDL.c b/macosx/plugins/DFInput/SDL/src/SDL.c deleted file mode 100644 index 8f8e676..0000000 --- a/macosx/plugins/DFInput/SDL/src/SDL.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -// 7/31/2010 Wei Mingzhi -// Removed everything unrated to Mac OS X Joystick support - -#include "SDL_config.h" - -/* Initialization code for SDL */ - -#include "SDL.h" -#include "haptic/SDL_haptic_c.h" -#include "joystick/SDL_joystick_c.h" - -/* The initialized subsystems */ -static Uint32 SDL_initialized = 0; - -int -SDL_InitSubSystem(Uint32 flags) -{ - /* Initialize the joystick subsystem */ - if ((flags & SDL_INIT_JOYSTICK) && !(SDL_initialized & SDL_INIT_JOYSTICK)) { - if (SDL_JoystickInit() < 0) { - return (-1); - } - SDL_initialized |= SDL_INIT_JOYSTICK; - } - - /* Initialize the haptic subsystem */ - if ((flags & SDL_INIT_HAPTIC) && !(SDL_initialized & SDL_INIT_HAPTIC)) { - if (SDL_HapticInit() < 0) { - return (-1); - } - SDL_initialized |= SDL_INIT_HAPTIC; - } - - return (0); -} - -int -SDL_Init(Uint32 flags) -{ - /* Clear the error message */ - SDL_ClearError(); - - /* Initialize the desired subsystems */ - if (SDL_InitSubSystem(flags) < 0) { - return (-1); - } - - return (0); -} - -void -SDL_QuitSubSystem(Uint32 flags) -{ - /* Shut down requested initialized subsystems */ - if ((flags & SDL_initialized & SDL_INIT_JOYSTICK)) { - SDL_JoystickQuit(); - SDL_initialized &= ~SDL_INIT_JOYSTICK; - } - - if ((flags & SDL_initialized & SDL_INIT_HAPTIC)) { - SDL_HapticQuit(); - SDL_initialized &= ~SDL_INIT_HAPTIC; - } -} - -Uint32 -SDL_WasInit(Uint32 flags) -{ - if (!flags) { - flags = SDL_INIT_EVERYTHING; - } - return (SDL_initialized & flags); -} - -void -SDL_Quit(void) -{ - /* Quit all subsystems */ - SDL_QuitSubSystem(SDL_INIT_EVERYTHING); -} diff --git a/macosx/plugins/DFInput/SDL/src/SDL_error.c b/macosx/plugins/DFInput/SDL/src/SDL_error.c deleted file mode 100644 index 55d183a..0000000 --- a/macosx/plugins/DFInput/SDL/src/SDL_error.c +++ /dev/null @@ -1,259 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -#include "SDL_config.h" - -/* Simple error handling in SDL */ - -#include "SDL_error.h" -#include "SDL_error_c.h" - -/* Routine to get the thread-specific error variable */ -#if SDL_THREADS_DISABLED -/* !!! FIXME: what does this comment mean? Victim of Search and Replace? */ -/* The SDL_arraysize(The ),default (non-thread-safe) global error variable */ -static SDL_error SDL_global_error; -#define SDL_GetErrBuf() (&SDL_global_error) -#else -extern SDL_error *SDL_GetErrBuf(void); -#endif /* SDL_THREADS_DISABLED */ - -#define SDL_ERRBUFIZE 1024 - -/* Private functions */ - -static const char * -SDL_LookupString(const char *key) -{ - /* FIXME: Add code to lookup key in language string hash-table */ - return key; -} - -/* Public functions */ - -void -SDL_SetError(const char *fmt, ...) -{ - va_list ap; - SDL_error *error; - - /* Copy in the key, mark error as valid */ - error = SDL_GetErrBuf(); - error->error = 1; - SDL_strlcpy((char *) error->key, fmt, sizeof(error->key)); - - va_start(ap, fmt); - error->argc = 0; - while (*fmt) { - if (*fmt++ == '%') { - while (*fmt == '.' || (*fmt >= '0' && *fmt <= '9')) { - ++fmt; - } - switch (*fmt++) { - case 0: /* Malformed format string.. */ - --fmt; - break; - case 'c': - case 'i': - case 'd': - case 'u': - case 'o': - case 'x': - case 'X': - error->args[error->argc++].value_i = va_arg(ap, int); - break; - case 'f': - error->args[error->argc++].value_f = va_arg(ap, double); - break; - case 'p': - error->args[error->argc++].value_ptr = va_arg(ap, void *); - break; - case 's': - { - int i = error->argc; - const char *str = va_arg(ap, const char *); - if (str == NULL) - str = "(null)"; - SDL_strlcpy((char *) error->args[i].buf, str, - ERR_MAX_STRLEN); - error->argc++; - } - break; - default: - break; - } - if (error->argc >= ERR_MAX_ARGS) { - break; - } - } - } - va_end(ap); - - /* If we are in debug mode, print out an error message */ -#ifdef DEBUG_ERROR - fprintf(stderr, "SDL_SetError: %s\n", SDL_GetError()); -#endif -} - -/* This function has a bit more overhead than most error functions - so that it supports internationalization and thread-safe errors. -*/ -static char * -SDL_GetErrorMsg(char *errstr, unsigned int maxlen) -{ - SDL_error *error; - - /* Clear the error string */ - *errstr = '\0'; - --maxlen; - - /* Get the thread-safe error, and print it out */ - error = SDL_GetErrBuf(); - if (error->error) { - const char *fmt; - char *msg = errstr; - int len; - int argi; - - fmt = SDL_LookupString(error->key); - argi = 0; - while (*fmt && (maxlen > 0)) { - if (*fmt == '%') { - char tmp[32], *spot = tmp; - *spot++ = *fmt++; - while ((*fmt == '.' || (*fmt >= '0' && *fmt <= '9')) - && spot < (tmp + SDL_arraysize(tmp) - 2)) { - *spot++ = *fmt++; - } - *spot++ = *fmt++; - *spot++ = '\0'; - switch (spot[-2]) { - case '%': - *msg++ = '%'; - maxlen -= 1; - break; - case 'c': - case 'i': - case 'd': - case 'u': - case 'o': - case 'x': - case 'X': - len = - SDL_snprintf(msg, maxlen, tmp, - error->args[argi++].value_i); - msg += len; - maxlen -= len; - break; - case 'f': - len = - SDL_snprintf(msg, maxlen, tmp, - error->args[argi++].value_f); - msg += len; - maxlen -= len; - break; - case 'p': - len = - SDL_snprintf(msg, maxlen, tmp, - error->args[argi++].value_ptr); - msg += len; - maxlen -= len; - break; - case 's': - len = - SDL_snprintf(msg, maxlen, tmp, - SDL_LookupString(error->args[argi++]. - buf)); - msg += len; - maxlen -= len; - break; - } - } else { - *msg++ = *fmt++; - maxlen -= 1; - } - } - *msg = 0; /* NULL terminate the string */ - } - return (errstr); -} - -/* Available for backwards compatibility */ -char * -SDL_GetError(void) -{ - static char errmsg[SDL_ERRBUFIZE]; - - return ((char *) SDL_GetErrorMsg(errmsg, SDL_ERRBUFIZE)); -} - -void -SDL_ClearError(void) -{ - SDL_error *error; - - error = SDL_GetErrBuf(); - error->error = 0; -} - -/* Very common errors go here */ -void -SDL_Error(SDL_errorcode code) -{ - switch (code) { - case SDL_ENOMEM: - SDL_SetError("Out of memory"); - break; - case SDL_EFREAD: - SDL_SetError("Error reading from datastream"); - break; - case SDL_EFWRITE: - SDL_SetError("Error writing to datastream"); - break; - case SDL_EFSEEK: - SDL_SetError("Error seeking in datastream"); - break; - case SDL_UNSUPPORTED: - SDL_SetError("That operation is not supported"); - break; - default: - SDL_SetError("Unknown SDL error"); - break; - } -} - -#ifdef TEST_ERROR -int -main(int argc, char *argv[]) -{ - char buffer[BUFSIZ + 1]; - - SDL_SetError("Hi there!"); - printf("Error 1: %s\n", SDL_GetError()); - SDL_ClearError(); - SDL_memset(buffer, '1', BUFSIZ); - buffer[BUFSIZ] = 0; - SDL_SetError("This is the error: %s (%f)", buffer, 1.0); - printf("Error 2: %s\n", SDL_GetError()); - exit(0); -} -#endif -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/src/SDL_error_c.h b/macosx/plugins/DFInput/SDL/src/SDL_error_c.h deleted file mode 100644 index 54501f5..0000000 --- a/macosx/plugins/DFInput/SDL/src/SDL_error_c.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -#include "SDL_config.h" - -/* This file defines a structure that carries language-independent - error messages -*/ - -#ifndef _SDL_error_c_h -#define _SDL_error_c_h - -#define ERR_MAX_STRLEN 128 -#define ERR_MAX_ARGS 5 - -typedef struct SDL_error -{ - /* This is a numeric value corresponding to the current error */ - int error; - - /* This is a key used to index into a language hashtable containing - internationalized versions of the SDL error messages. If the key - is not in the hashtable, or no hashtable is available, the key is - used directly as an error message format string. - */ - char key[ERR_MAX_STRLEN]; - - /* These are the arguments for the error functions */ - int argc; - union - { - void *value_ptr; -#if 0 /* What is a character anyway? (UNICODE issues) */ - unsigned char value_c; -#endif - int value_i; - double value_f; - char buf[ERR_MAX_STRLEN]; - } args[ERR_MAX_ARGS]; -} SDL_error; - -#endif /* _SDL_error_c_h */ - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/src/haptic/SDL_haptic.c b/macosx/plugins/DFInput/SDL/src/haptic/SDL_haptic.c deleted file mode 100644 index af8c39a..0000000 --- a/macosx/plugins/DFInput/SDL/src/haptic/SDL_haptic.c +++ /dev/null @@ -1,708 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 2008 Edgar Simo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -#include "SDL_config.h" - -#include "SDL_syshaptic.h" -#include "SDL_haptic_c.h" -#include "../joystick/SDL_joystick_c.h" /* For SDL_PrivateJoystickValid */ - - -Uint8 SDL_numhaptics = 0; -SDL_Haptic **SDL_haptics = NULL; - - -/* - * Initializes the Haptic devices. - */ -int -SDL_HapticInit(void) -{ - int arraylen; - int status; - - SDL_numhaptics = 0; - status = SDL_SYS_HapticInit(); - if (status >= 0) { - arraylen = (status + 1) * sizeof(*SDL_haptics); - SDL_haptics = (SDL_Haptic **) SDL_malloc(arraylen); - if (SDL_haptics == NULL) { /* Out of memory. */ - SDL_numhaptics = 0; - } else { - SDL_memset(SDL_haptics, 0, arraylen); - SDL_numhaptics = status; - } - status = 0; - } - - return status; -} - - -/* - * Checks to see if the haptic device is valid - */ -static int -ValidHaptic(SDL_Haptic * haptic) -{ - int i; - int valid; - - valid = 0; - if (haptic != NULL) { - for (i = 0; i < SDL_numhaptics; i++) { - if (SDL_haptics[i] == haptic) { - valid = 1; - break; - } - } - } - - /* Create the error here. */ - if (valid == 0) { - SDL_SetError("Haptic: Invalid haptic device identifier"); - } - - return valid; -} - - -/* - * Returns the number of available devices. - */ -int -SDL_NumHaptics(void) -{ - return SDL_numhaptics; -} - - -/* - * Gets the name of a Haptic device by index. - */ -const char * -SDL_HapticName(int device_index) -{ - if ((device_index < 0) || (device_index >= SDL_numhaptics)) { - SDL_SetError("Haptic: There are %d haptic devices available", - SDL_numhaptics); - return NULL; - } - return SDL_SYS_HapticName(device_index); -} - - -/* - * Opens a Haptic device. - */ -SDL_Haptic * -SDL_HapticOpen(int device_index) -{ - int i; - SDL_Haptic *haptic; - - if ((device_index < 0) || (device_index >= SDL_numhaptics)) { - SDL_SetError("Haptic: There are %d haptic devices available", - SDL_numhaptics); - return NULL; - } - - /* If the haptic is already open, return it */ - for (i = 0; SDL_haptics[i]; i++) { - if (device_index == SDL_haptics[i]->index) { - haptic = SDL_haptics[i]; - ++haptic->ref_count; - return haptic; - } - } - - /* Create the haptic device */ - haptic = (SDL_Haptic *) SDL_malloc((sizeof *haptic)); - if (haptic == NULL) { - SDL_OutOfMemory(); - return NULL; - } - - /* Initialize the haptic device */ - SDL_memset(haptic, 0, (sizeof *haptic)); - haptic->index = device_index; - if (SDL_SYS_HapticOpen(haptic) < 0) { - SDL_free(haptic); - return NULL; - } - - /* Disable autocenter and set gain to max. */ - if (haptic->supported & SDL_HAPTIC_GAIN) - SDL_HapticSetGain(haptic, 100); - if (haptic->supported & SDL_HAPTIC_AUTOCENTER) - SDL_HapticSetAutocenter(haptic, 0); - - /* Add haptic to list */ - ++haptic->ref_count; - for (i = 0; SDL_haptics[i]; i++) - /* Skip to next haptic */ ; - SDL_haptics[i] = haptic; - - return haptic; -} - - -/* - * Returns 1 if the device has been opened. - */ -int -SDL_HapticOpened(int device_index) -{ - int i, opened; - - opened = 0; - for (i = 0; SDL_haptics[i]; i++) { - if (SDL_haptics[i]->index == (Uint8) device_index) { - opened = 1; - break; - } - } - return opened; -} - - -/* - * Returns the index to a haptic device. - */ -int -SDL_HapticIndex(SDL_Haptic * haptic) -{ - if (!ValidHaptic(haptic)) { - return -1; - } - - return haptic->index; -} - - -/* - * Returns SDL_TRUE if mouse is haptic, SDL_FALSE if it isn't. - */ -int -SDL_MouseIsHaptic(void) -{ - if (SDL_SYS_HapticMouse() < 0) - return SDL_FALSE; - return SDL_TRUE; -} - - -/* - * Returns the haptic device if mouse is haptic or NULL elsewise. - */ -SDL_Haptic * -SDL_HapticOpenFromMouse(void) -{ - int device_index; - - device_index = SDL_SYS_HapticMouse(); - - if (device_index < 0) { - SDL_SetError("Haptic: Mouse isn't a haptic device."); - return NULL; - } - - return SDL_HapticOpen(device_index); -} - - -/* - * Returns SDL_TRUE if joystick has haptic features. - */ -int -SDL_JoystickIsHaptic(SDL_Joystick * joystick) -{ - int ret; - - /* Must be a valid joystick */ - if (!SDL_PrivateJoystickValid(&joystick)) { - return -1; - } - - ret = SDL_SYS_JoystickIsHaptic(joystick); - - if (ret > 0) - return SDL_TRUE; - else if (ret == 0) - return SDL_FALSE; - else - return -1; -} - - -/* - * Opens a haptic device from a joystick. - */ -SDL_Haptic * -SDL_HapticOpenFromJoystick(SDL_Joystick * joystick) -{ - int i; - SDL_Haptic *haptic; - - /* Must be a valid joystick */ - if (!SDL_PrivateJoystickValid(&joystick)) { - SDL_SetError("Haptic: Joystick isn't valid."); - return NULL; - } - - /* Joystick must be haptic */ - if (SDL_SYS_JoystickIsHaptic(joystick) <= 0) { - SDL_SetError("Haptic: Joystick isn't a haptic device."); - return NULL; - } - - /* Check to see if joystick's haptic is already open */ - for (i = 0; SDL_haptics[i]; i++) { - if (SDL_SYS_JoystickSameHaptic(SDL_haptics[i], joystick)) { - haptic = SDL_haptics[i]; - ++haptic->ref_count; - return haptic; - } - } - - /* Create the haptic device */ - haptic = (SDL_Haptic *) SDL_malloc((sizeof *haptic)); - if (haptic == NULL) { - SDL_OutOfMemory(); - return NULL; - } - - /* Initialize the haptic device */ - SDL_memset(haptic, 0, sizeof(SDL_Haptic)); - if (SDL_SYS_HapticOpenFromJoystick(haptic, joystick) < 0) { - SDL_free(haptic); - return NULL; - } - - /* Add haptic to list */ - ++haptic->ref_count; - for (i = 0; SDL_haptics[i]; i++) - /* Skip to next haptic */ ; - SDL_haptics[i] = haptic; - - return haptic; -} - - -/* - * Closes a SDL_Haptic device. - */ -void -SDL_HapticClose(SDL_Haptic * haptic) -{ - int i; - - /* Must be valid */ - if (!ValidHaptic(haptic)) { - return; - } - - /* Check if it's still in use */ - if (--haptic->ref_count < 0) { - return; - } - - /* Close it, properly removing effects if needed */ - for (i = 0; i < haptic->neffects; i++) { - if (haptic->effects[i].hweffect != NULL) { - SDL_HapticDestroyEffect(haptic, i); - } - } - SDL_SYS_HapticClose(haptic); - - /* Remove from the list */ - for (i = 0; SDL_haptics[i]; ++i) { - if (haptic == SDL_haptics[i]) { - SDL_haptics[i] = NULL; - SDL_memcpy(&SDL_haptics[i], &SDL_haptics[i + 1], - (SDL_numhaptics - i) * sizeof(haptic)); - break; - } - } - - /* Free */ - SDL_free(haptic); -} - -/* - * Cleans up after the subsystem. - */ -void -SDL_HapticQuit(void) -{ - SDL_SYS_HapticQuit(); - if (SDL_haptics != NULL) { - SDL_free(SDL_haptics); - SDL_haptics = NULL; - } - SDL_numhaptics = 0; -} - -/* - * Returns the number of effects a haptic device has. - */ -int -SDL_HapticNumEffects(SDL_Haptic * haptic) -{ - if (!ValidHaptic(haptic)) { - return -1; - } - - return haptic->neffects; -} - - -/* - * Returns the number of effects a haptic device can play. - */ -int -SDL_HapticNumEffectsPlaying(SDL_Haptic * haptic) -{ - if (!ValidHaptic(haptic)) { - return -1; - } - - return haptic->nplaying; -} - - -/* - * Returns supported effects by the device. - */ -unsigned int -SDL_HapticQuery(SDL_Haptic * haptic) -{ - if (!ValidHaptic(haptic)) { - return -1; - } - - return haptic->supported; -} - - -/* - * Returns the number of axis on the device. - */ -int -SDL_HapticNumAxes(SDL_Haptic * haptic) -{ - if (!ValidHaptic(haptic)) { - return -1; - } - - return haptic->naxes; -} - -/* - * Checks to see if the device can support the effect. - */ -int -SDL_HapticEffectSupported(SDL_Haptic * haptic, SDL_HapticEffect * effect) -{ - if (!ValidHaptic(haptic)) { - return -1; - } - - if ((haptic->supported & effect->type) != 0) - return SDL_TRUE; - return SDL_FALSE; -} - -/* - * Creates a new haptic effect. - */ -int -SDL_HapticNewEffect(SDL_Haptic * haptic, SDL_HapticEffect * effect) -{ - int i; - - /* Check for device validity. */ - if (!ValidHaptic(haptic)) { - return -1; - } - - /* Check to see if effect is supported */ - if (SDL_HapticEffectSupported(haptic, effect) == SDL_FALSE) { - SDL_SetError("Haptic: Effect not supported by haptic device."); - return -1; - } - - /* See if there's a free slot */ - for (i = 0; i < haptic->neffects; i++) { - if (haptic->effects[i].hweffect == NULL) { - - /* Now let the backend create the real effect */ - if (SDL_SYS_HapticNewEffect(haptic, &haptic->effects[i], effect) - != 0) { - return -1; /* Backend failed to create effect */ - } - - SDL_memcpy(&haptic->effects[i].effect, effect, - sizeof(SDL_HapticEffect)); - return i; - } - } - - SDL_SetError("Haptic: Device has no free space left."); - return -1; -} - -/* - * Checks to see if an effect is valid. - */ -static int -ValidEffect(SDL_Haptic * haptic, int effect) -{ - if ((effect < 0) || (effect >= haptic->neffects)) { - SDL_SetError("Haptic: Invalid effect identifier."); - return 0; - } - return 1; -} - -/* - * Updates an effect. - */ -int -SDL_HapticUpdateEffect(SDL_Haptic * haptic, int effect, - SDL_HapticEffect * data) -{ - if (!ValidHaptic(haptic) || !ValidEffect(haptic, effect)) { - return -1; - } - - /* Can't change type dynamically. */ - if (data->type != haptic->effects[effect].effect.type) { - SDL_SetError("Haptic: Updating effect type is illegal."); - return -1; - } - - /* Updates the effect */ - if (SDL_SYS_HapticUpdateEffect(haptic, &haptic->effects[effect], data) < - 0) { - return -1; - } - - SDL_memcpy(&haptic->effects[effect].effect, data, - sizeof(SDL_HapticEffect)); - return 0; -} - - -/* - * Runs the haptic effect on the device. - */ -int -SDL_HapticRunEffect(SDL_Haptic * haptic, int effect, Uint32 iterations) -{ - if (!ValidHaptic(haptic) || !ValidEffect(haptic, effect)) { - return -1; - } - - /* Run the effect */ - if (SDL_SYS_HapticRunEffect(haptic, &haptic->effects[effect], iterations) - < 0) { - return -1; - } - - return 0; -} - -/* - * Stops the haptic effect on the device. - */ -int -SDL_HapticStopEffect(SDL_Haptic * haptic, int effect) -{ - if (!ValidHaptic(haptic) || !ValidEffect(haptic, effect)) { - return -1; - } - - /* Stop the effect */ - if (SDL_SYS_HapticStopEffect(haptic, &haptic->effects[effect]) < 0) { - return -1; - } - - return 0; -} - -/* - * Gets rid of a haptic effect. - */ -void -SDL_HapticDestroyEffect(SDL_Haptic * haptic, int effect) -{ - if (!ValidHaptic(haptic) || !ValidEffect(haptic, effect)) { - return; - } - - /* Not allocated */ - if (haptic->effects[effect].hweffect == NULL) { - return; - } - - SDL_SYS_HapticDestroyEffect(haptic, &haptic->effects[effect]); -} - -/* - * Gets the status of a haptic effect. - */ -int -SDL_HapticGetEffectStatus(SDL_Haptic * haptic, int effect) -{ - if (!ValidHaptic(haptic) || !ValidEffect(haptic, effect)) { - return -1; - } - - if ((haptic->supported & SDL_HAPTIC_STATUS) == 0) { - SDL_SetError("Haptic: Device does not support status queries."); - return -1; - } - - return SDL_SYS_HapticGetEffectStatus(haptic, &haptic->effects[effect]); -} - -/* - * Sets the global gain of the device. - */ -int -SDL_HapticSetGain(SDL_Haptic * haptic, int gain) -{ - const char *env; - int real_gain, max_gain; - - if (!ValidHaptic(haptic)) { - return -1; - } - - if ((haptic->supported & SDL_HAPTIC_GAIN) == 0) { - SDL_SetError("Haptic: Device does not support setting gain."); - return -1; - } - - if ((gain < 0) || (gain > 100)) { - SDL_SetError("Haptic: Gain must be between 0 and 100."); - return -1; - } - - /* We use the envvar to get the maximum gain. */ - env = SDL_getenv("SDL_HAPTIC_GAIN_MAX"); - if (env != NULL) { - max_gain = SDL_atoi(env); - - /* Check for sanity. */ - if (max_gain < 0) - max_gain = 0; - else if (max_gain > 100) - max_gain = 100; - - /* We'll scale it linearly with SDL_HAPTIC_GAIN_MAX */ - real_gain = (gain * max_gain) / 100; - } else { - real_gain = gain; - } - - if (SDL_SYS_HapticSetGain(haptic, real_gain) < 0) { - return -1; - } - - return 0; -} - -/* - * Makes the device autocenter, 0 disables. - */ -int -SDL_HapticSetAutocenter(SDL_Haptic * haptic, int autocenter) -{ - if (!ValidHaptic(haptic)) { - return -1; - } - - if ((haptic->supported & SDL_HAPTIC_AUTOCENTER) == 0) { - SDL_SetError("Haptic: Device does not support setting autocenter."); - return -1; - } - - if ((autocenter < 0) || (autocenter > 100)) { - SDL_SetError("Haptic: Autocenter must be between 0 and 100."); - return -1; - } - - if (SDL_SYS_HapticSetAutocenter(haptic, autocenter) < 0) { - return -1; - } - - return 0; -} - -/* - * Pauses the haptic device. - */ -int -SDL_HapticPause(SDL_Haptic * haptic) -{ - if (!ValidHaptic(haptic)) { - return -1; - } - - if ((haptic->supported & SDL_HAPTIC_PAUSE) == 0) { - SDL_SetError("Haptic: Device does not support setting pausing."); - return -1; - } - - return SDL_SYS_HapticPause(haptic); -} - -/* - * Unpauses the haptic device. - */ -int -SDL_HapticUnpause(SDL_Haptic * haptic) -{ - if (!ValidHaptic(haptic)) { - return -1; - } - - if ((haptic->supported & SDL_HAPTIC_PAUSE) == 0) { - return 0; /* Not going to be paused, so we pretend it's unpaused. */ - } - - return SDL_SYS_HapticUnpause(haptic); -} - -/* - * Stops all the currently playing effects. - */ -int -SDL_HapticStopAll(SDL_Haptic * haptic) -{ - if (!ValidHaptic(haptic)) { - return -1; - } - - return SDL_SYS_HapticStopAll(haptic); -} diff --git a/macosx/plugins/DFInput/SDL/src/haptic/SDL_haptic_c.h b/macosx/plugins/DFInput/SDL/src/haptic/SDL_haptic_c.h deleted file mode 100644 index 4144a0f..0000000 --- a/macosx/plugins/DFInput/SDL/src/haptic/SDL_haptic_c.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -extern int SDL_HapticInit(void); -extern void SDL_HapticQuit(void); - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/src/haptic/SDL_syshaptic.h b/macosx/plugins/DFInput/SDL/src/haptic/SDL_syshaptic.h deleted file mode 100644 index 9542a0d..0000000 --- a/macosx/plugins/DFInput/SDL/src/haptic/SDL_syshaptic.h +++ /dev/null @@ -1,201 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 2008 Edgar Simo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ - -#include "SDL_config.h" - -#include "SDL_haptic.h" - - -/* - * Number of haptic devices on the system. - */ -extern Uint8 SDL_numhaptics; - - -struct haptic_effect -{ - SDL_HapticEffect effect; /* The current event */ - struct haptic_hweffect *hweffect; /* The hardware behind the event */ -}; - -/* - * The real SDL_Haptic struct. - */ -struct _SDL_Haptic -{ - Uint8 index; /* Stores index it is attached to */ - - struct haptic_effect *effects; /* Allocated effects */ - int neffects; /* Maximum amount of effects */ - int nplaying; /* Maximum amount of effects to play at the same time */ - unsigned int supported; /* Supported effects */ - int naxes; /* Number of axes on the device. */ - - struct haptic_hwdata *hwdata; /* Driver dependent */ - int ref_count; /* Count for multiple opens */ -}; - -/* - * Scans the system for haptic devices. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticInit(void); - -/* - * Gets the device dependent name of the haptic device - */ -extern const char *SDL_SYS_HapticName(int index); - -/* - * Opens the haptic device for usage. The haptic device should have - * the index value set previously. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticOpen(SDL_Haptic * haptic); - -/* - * Returns the index of the haptic core pointer or -1 if none is found. - */ -int SDL_SYS_HapticMouse(void); - -/* - * Checks to see if the joystick has haptic capabilities. - * - * Returns >0 if haptic capabilities are detected, 0 if haptic - * capabilities aren't detected and -1 on error. - */ -extern int SDL_SYS_JoystickIsHaptic(SDL_Joystick * joystick); - -/* - * Opens the haptic device for usage using the same device as - * the joystick. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticOpenFromJoystick(SDL_Haptic * haptic, - SDL_Joystick * joystick); -/* - * Checks to see if haptic device and joystick device are the same. - * - * Returns 1 if they are the same, 0 if they aren't. - */ -extern int SDL_SYS_JoystickSameHaptic(SDL_Haptic * haptic, - SDL_Joystick * joystick); - -/* - * Closes a haptic device after usage. - */ -extern void SDL_SYS_HapticClose(SDL_Haptic * haptic); - -/* - * Performs a cleanup on the haptic subsystem. - */ -extern void SDL_SYS_HapticQuit(void); - -/* - * Creates a new haptic effect on the haptic device using base - * as a template for the effect. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticNewEffect(SDL_Haptic * haptic, - struct haptic_effect *effect, - SDL_HapticEffect * base); - -/* - * Updates the haptic effect on the haptic device using data - * as a template. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticUpdateEffect(SDL_Haptic * haptic, - struct haptic_effect *effect, - SDL_HapticEffect * data); - -/* - * Runs the effect on the haptic device. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticRunEffect(SDL_Haptic * haptic, - struct haptic_effect *effect, - Uint32 iterations); - -/* - * Stops the effect on the haptic device. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticStopEffect(SDL_Haptic * haptic, - struct haptic_effect *effect); - -/* - * Cleanups up the effect on the haptic device. - */ -extern void SDL_SYS_HapticDestroyEffect(SDL_Haptic * haptic, - struct haptic_effect *effect); - -/* - * Queries the device for the status of effect. - * - * Returns 0 if device is stopped, >0 if device is playing and - * -1 on error. - */ -extern int SDL_SYS_HapticGetEffectStatus(SDL_Haptic * haptic, - struct haptic_effect *effect); - -/* - * Sets the global gain of the haptic device. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticSetGain(SDL_Haptic * haptic, int gain); - -/* - * Sets the autocenter feature of the haptic device. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticSetAutocenter(SDL_Haptic * haptic, int autocenter); - -/* - * Pauses the haptic device. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticPause(SDL_Haptic * haptic); - -/* - * Unpauses the haptic device. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticUnpause(SDL_Haptic * haptic); - -/* - * Stops all the currently playing haptic effects on the device. - * - * Returns 0 on success, -1 on error. - */ -extern int SDL_SYS_HapticStopAll(SDL_Haptic * haptic); diff --git a/macosx/plugins/DFInput/SDL/src/haptic/darwin/SDL_syshaptic.c b/macosx/plugins/DFInput/SDL/src/haptic/darwin/SDL_syshaptic.c deleted file mode 100644 index c5b1e54..0000000 --- a/macosx/plugins/DFInput/SDL/src/haptic/darwin/SDL_syshaptic.c +++ /dev/null @@ -1,1321 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 2008 Edgar Simo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -#include "SDL_config.h" - -#ifdef SDL_HAPTIC_IOKIT - -#include "SDL_haptic.h" -#include "../SDL_syshaptic.h" -#include "SDL_joystick.h" -#include "../../joystick/SDL_sysjoystick.h" /* For the real SDL_Joystick */ -#include "../../joystick/darwin/SDL_sysjoystick_c.h" /* For joystick hwdata */ - -#include <IOKit/IOKitLib.h> -#include <IOKit/hid/IOHIDKeys.h> -#include <IOKit/hid/IOHIDUsageTables.h> -#include <ForceFeedback/ForceFeedback.h> -#include <ForceFeedback/ForceFeedbackConstants.h> - -#ifndef IO_OBJECT_NULL -#define IO_OBJECT_NULL ((io_service_t)0) -#endif - -#define MAX_HAPTICS 32 - - -/* - * List of available haptic devices. - */ -static struct -{ - char name[256]; /* Name of the device. */ - - io_service_t dev; /* Node we use to create the device. */ - SDL_Haptic *haptic; /* Haptic currently assosciated with it. */ - - /* Usage pages for determining if it's a mouse or not. */ - long usage; - long usagePage; -} SDL_hapticlist[MAX_HAPTICS]; - - -/* - * Haptic system hardware data. - */ -struct haptic_hwdata -{ - FFDeviceObjectReference device; /* Hardware device. */ - UInt8 axes[3]; -}; - - -/* - * Haptic system effect data. - */ -struct haptic_hweffect -{ - FFEffectObjectReference ref; /* Reference. */ - struct FFEFFECT effect; /* Hardware effect. */ -}; - -/* - * Prototypes. - */ -static void SDL_SYS_HapticFreeFFEFFECT(FFEFFECT * effect, int type); -static int HIDGetDeviceProduct(io_service_t dev, char *name); - - -/* - * Like strerror but for force feedback errors. - */ -static const char * -FFStrError(HRESULT err) -{ - switch (err) { - case FFERR_DEVICEFULL: - return "device full"; - /* This should be valid, but for some reason isn't defined... */ - /*case FFERR_DEVICENOTREG: - return "device not registered"; */ - case FFERR_DEVICEPAUSED: - return "device paused"; - case FFERR_DEVICERELEASED: - return "device released"; - case FFERR_EFFECTPLAYING: - return "effect playing"; - case FFERR_EFFECTTYPEMISMATCH: - return "effect type mismatch"; - case FFERR_EFFECTTYPENOTSUPPORTED: - return "effect type not supported"; - case FFERR_GENERIC: - return "undetermined error"; - case FFERR_HASEFFECTS: - return "device has effects"; - case FFERR_INCOMPLETEEFFECT: - return "incomplete effect"; - case FFERR_INTERNAL: - return "internal fault"; - case FFERR_INVALIDDOWNLOADID: - return "invalid download id"; - case FFERR_INVALIDPARAM: - return "invalid parameter"; - case FFERR_MOREDATA: - return "more data"; - case FFERR_NOINTERFACE: - return "interface not supported"; - case FFERR_NOTDOWNLOADED: - return "effect is not downloaded"; - case FFERR_NOTINITIALIZED: - return "object has not been initialized"; - case FFERR_OUTOFMEMORY: - return "out of memory"; - case FFERR_UNPLUGGED: - return "device is unplugged"; - case FFERR_UNSUPPORTED: - return "function call unsupported"; - case FFERR_UNSUPPORTEDAXIS: - return "axis unsupported"; - - default: - return "unknown error"; - } -} - - -/* - * Initializes the haptic subsystem. - */ -int -SDL_SYS_HapticInit(void) -{ - int numhaptics; - IOReturn result; - io_iterator_t iter; - CFDictionaryRef match; - io_service_t device; - CFMutableDictionaryRef hidProperties; - CFTypeRef refCF; - - /* Clear all the memory. */ - SDL_memset(SDL_hapticlist, 0, sizeof(SDL_hapticlist)); - - /* Get HID devices. */ - match = IOServiceMatching(kIOHIDDeviceKey); - if (match == NULL) { - SDL_SetError("Haptic: Failed to get IOServiceMatching."); - return -1; - } - - /* Now search I/O Registry for matching devices. */ - result = IOServiceGetMatchingServices(kIOMasterPortDefault, match, &iter); - if (result != kIOReturnSuccess) { - SDL_SetError("Haptic: Couldn't create a HID object iterator."); - return -1; - } - /* IOServiceGetMatchingServices consumes dictionary. */ - - if (!IOIteratorIsValid(iter)) { /* No iterator. */ - numhaptics = 0; - return 0; - } - - numhaptics = 0; - while ((device = IOIteratorNext(iter)) != IO_OBJECT_NULL) { - - /* Check for force feedback. */ - if (FFIsForceFeedback(device) == FF_OK) { - - /* Set basic device data. */ - HIDGetDeviceProduct(device, SDL_hapticlist[numhaptics].name); - SDL_hapticlist[numhaptics].dev = device; - SDL_hapticlist[numhaptics].haptic = NULL; - - /* Set usage pages. */ - hidProperties = 0; - refCF = 0; - result = IORegistryEntryCreateCFProperties(device, - &hidProperties, - kCFAllocatorDefault, - kNilOptions); - if ((result == KERN_SUCCESS) && hidProperties) { - refCF = - CFDictionaryGetValue(hidProperties, - CFSTR(kIOHIDPrimaryUsagePageKey)); - if (refCF) { - if (!CFNumberGetValue(refCF, kCFNumberLongType, - &SDL_hapticlist[numhaptics]. - usagePage)) - SDL_SetError - ("Haptic: Recieving device's usage page."); - refCF = - CFDictionaryGetValue(hidProperties, - CFSTR(kIOHIDPrimaryUsageKey)); - if (refCF) { - if (!CFNumberGetValue(refCF, kCFNumberLongType, - &SDL_hapticlist[numhaptics]. - usage)) - SDL_SetError("Haptic: Recieving device's usage."); - } - } - CFRelease(hidProperties); - } - - /* Device has been added. */ - numhaptics++; - } else { /* Free the unused device. */ - IOObjectRelease(device); - } - - /* Reached haptic limit. */ - if (numhaptics >= MAX_HAPTICS) - break; - } - IOObjectRelease(iter); - - return numhaptics; -} - - -/* - * Return the name of a haptic device, does not need to be opened. - */ -const char * -SDL_SYS_HapticName(int index) -{ - return SDL_hapticlist[index].name; -} - -/* - * Gets the device's product name. - */ -static int -HIDGetDeviceProduct(io_service_t dev, char *name) -{ - CFMutableDictionaryRef hidProperties, usbProperties; - io_registry_entry_t parent1, parent2; - kern_return_t ret; - - hidProperties = usbProperties = 0; - - ret = IORegistryEntryCreateCFProperties(dev, &hidProperties, - kCFAllocatorDefault, kNilOptions); - if ((ret != KERN_SUCCESS) || !hidProperties) { - SDL_SetError("Haptic: Unable to create CFProperties."); - return -1; - } - - /* Mac OS X currently is not mirroring all USB properties to HID page so need to look at USB device page also - * get dictionary for usb properties: step up two levels and get CF dictionary for USB properties - */ - if ((KERN_SUCCESS == - IORegistryEntryGetParentEntry(dev, kIOServicePlane, &parent1)) - && (KERN_SUCCESS == - IORegistryEntryGetParentEntry(parent1, kIOServicePlane, &parent2)) - && (KERN_SUCCESS == - IORegistryEntryCreateCFProperties(parent2, &usbProperties, - kCFAllocatorDefault, - kNilOptions))) { - if (usbProperties) { - CFTypeRef refCF = 0; - /* get device info - * try hid dictionary first, if fail then go to usb dictionary - */ - - - /* Get product name */ - refCF = - CFDictionaryGetValue(hidProperties, CFSTR(kIOHIDProductKey)); - if (!refCF) - refCF = - CFDictionaryGetValue(usbProperties, - CFSTR("USB Product Name")); - if (refCF) { - if (!CFStringGetCString(refCF, name, 256, - CFStringGetSystemEncoding())) { - SDL_SetError - ("Haptic: CFStringGetCString error retrieving pDevice->product."); - return -1; - } - } - - CFRelease(usbProperties); - } else { - SDL_SetError - ("Haptic: IORegistryEntryCreateCFProperties failed to create usbProperties."); - return -1; - } - - /* Release stuff. */ - if (kIOReturnSuccess != IOObjectRelease(parent2)) { - SDL_SetError("Haptic: IOObjectRelease error with parent2."); - } - if (kIOReturnSuccess != IOObjectRelease(parent1)) { - SDL_SetError("Haptic: IOObjectRelease error with parent1."); - } - } else { - SDL_SetError("Haptic: Error getting registry entries."); - return -1; - } - - return 0; -} - - -#define FF_TEST(ff, s) \ -if (features.supportedEffects & (ff)) supported |= (s) -/* - * Gets supported features. - */ -static unsigned int -GetSupportedFeatures(SDL_Haptic * haptic) -{ - HRESULT ret; - FFDeviceObjectReference device; - FFCAPABILITIES features; - unsigned int supported; - Uint32 val; - - device = haptic->hwdata->device; - - ret = FFDeviceGetForceFeedbackCapabilities(device, &features); - if (ret != FF_OK) { - SDL_SetError("Haptic: Unable to get device's supported features."); - return -1; - } - - supported = 0; - - /* Get maximum effects. */ - haptic->neffects = features.storageCapacity; - haptic->nplaying = features.playbackCapacity; - - /* Test for effects. */ - FF_TEST(FFCAP_ET_CONSTANTFORCE, SDL_HAPTIC_CONSTANT); - FF_TEST(FFCAP_ET_RAMPFORCE, SDL_HAPTIC_RAMP); - FF_TEST(FFCAP_ET_SQUARE, SDL_HAPTIC_SQUARE); - FF_TEST(FFCAP_ET_SINE, SDL_HAPTIC_SINE); - FF_TEST(FFCAP_ET_TRIANGLE, SDL_HAPTIC_TRIANGLE); - FF_TEST(FFCAP_ET_SAWTOOTHUP, SDL_HAPTIC_SAWTOOTHUP); - FF_TEST(FFCAP_ET_SAWTOOTHDOWN, SDL_HAPTIC_SAWTOOTHDOWN); - FF_TEST(FFCAP_ET_SPRING, SDL_HAPTIC_SPRING); - FF_TEST(FFCAP_ET_DAMPER, SDL_HAPTIC_DAMPER); - FF_TEST(FFCAP_ET_INERTIA, SDL_HAPTIC_INERTIA); - FF_TEST(FFCAP_ET_FRICTION, SDL_HAPTIC_FRICTION); - FF_TEST(FFCAP_ET_CUSTOMFORCE, SDL_HAPTIC_CUSTOM); - - /* Check if supports gain. */ - ret = FFDeviceGetForceFeedbackProperty(device, FFPROP_FFGAIN, - &val, sizeof(val)); - if (ret == FF_OK) - supported |= SDL_HAPTIC_GAIN; - else if (ret != FFERR_UNSUPPORTED) { - SDL_SetError("Haptic: Unable to get if device supports gain: %s.", - FFStrError(ret)); - return -1; - } - - /* Checks if supports autocenter. */ - ret = FFDeviceGetForceFeedbackProperty(device, FFPROP_AUTOCENTER, - &val, sizeof(val)); - if (ret == FF_OK) - supported |= SDL_HAPTIC_AUTOCENTER; - else if (ret != FFERR_UNSUPPORTED) { - SDL_SetError - ("Haptic: Unable to get if device supports autocenter: %s.", - FFStrError(ret)); - return -1; - } - - /* Check for axes, we have an artificial limit on axes */ - haptic->naxes = ((features.numFfAxes) > 3) ? 3 : features.numFfAxes; - /* Actually store the axes we want to use */ - SDL_memcpy(haptic->hwdata->axes, features.ffAxes, - haptic->naxes * sizeof(Uint8)); - - /* Always supported features. */ - supported |= SDL_HAPTIC_STATUS | SDL_HAPTIC_PAUSE; - - haptic->supported = supported; - return 0;; -} - - -/* - * Opens the haptic device from the file descriptor. - */ -static int -SDL_SYS_HapticOpenFromService(SDL_Haptic * haptic, io_service_t service) -{ - HRESULT ret; - int ret2; - - /* Allocate the hwdata */ - haptic->hwdata = (struct haptic_hwdata *) - SDL_malloc(sizeof(*haptic->hwdata)); - if (haptic->hwdata == NULL) { - SDL_OutOfMemory(); - goto creat_err; - } - SDL_memset(haptic->hwdata, 0, sizeof(*haptic->hwdata)); - - /* Open the device */ - ret = FFCreateDevice(service, &haptic->hwdata->device); - if (ret != FF_OK) { - SDL_SetError("Haptic: Unable to create device from service: %s.", - FFStrError(ret)); - goto creat_err; - } - - /* Get supported features. */ - ret2 = GetSupportedFeatures(haptic); - if (haptic->supported < 0) { - goto open_err; - } - - - /* Reset and then enable actuators. */ - ret = FFDeviceSendForceFeedbackCommand(haptic->hwdata->device, - FFSFFC_RESET); - if (ret != FF_OK) { - SDL_SetError("Haptic: Unable to reset device: %s.", FFStrError(ret)); - goto open_err; - } - ret = FFDeviceSendForceFeedbackCommand(haptic->hwdata->device, - FFSFFC_SETACTUATORSON); - if (ret != FF_OK) { - SDL_SetError("Haptic: Unable to enable actuators: %s.", - FFStrError(ret)); - goto open_err; - } - - - /* Allocate effects memory. */ - haptic->effects = (struct haptic_effect *) - SDL_malloc(sizeof(struct haptic_effect) * haptic->neffects); - if (haptic->effects == NULL) { - SDL_OutOfMemory(); - goto open_err; - } - /* Clear the memory */ - SDL_memset(haptic->effects, 0, - sizeof(struct haptic_effect) * haptic->neffects); - - return 0; - - /* Error handling */ - open_err: - FFReleaseDevice(haptic->hwdata->device); - creat_err: - if (haptic->hwdata != NULL) { - free(haptic->hwdata); - haptic->hwdata = NULL; - } - return -1; - -} - - -/* - * Opens a haptic device for usage. - */ -int -SDL_SYS_HapticOpen(SDL_Haptic * haptic) -{ - return SDL_SYS_HapticOpenFromService(haptic, - SDL_hapticlist[haptic->index].dev); -} - - -/* - * Opens a haptic device from first mouse it finds for usage. - */ -int -SDL_SYS_HapticMouse(void) -{ - int i; - - for (i = 0; i < SDL_numhaptics; i++) { - if ((SDL_hapticlist[i].usagePage == kHIDPage_GenericDesktop) && - (SDL_hapticlist[i].usage == kHIDUsage_GD_Mouse)) - return i; - } - - return -1; -} - - -/* - * Checks to see if a joystick has haptic features. - */ -int -SDL_SYS_JoystickIsHaptic(SDL_Joystick * joystick) -{ - if (joystick->hwdata->ffservice != 0) - return SDL_TRUE; - return SDL_FALSE; -} - - -/* - * Checks to see if the haptic device and joystick and in reality the same. - */ -int -SDL_SYS_JoystickSameHaptic(SDL_Haptic * haptic, SDL_Joystick * joystick) -{ - if (IOObjectIsEqualTo((io_object_t) haptic->hwdata->device, - joystick->hwdata->ffservice)) - return 1; - return 0; -} - - -/* - * Opens a SDL_Haptic from a SDL_Joystick. - */ -int -SDL_SYS_HapticOpenFromJoystick(SDL_Haptic * haptic, SDL_Joystick * joystick) -{ - return SDL_SYS_HapticOpenFromService(haptic, joystick->hwdata->ffservice); -} - - -/* - * Closes the haptic device. - */ -void -SDL_SYS_HapticClose(SDL_Haptic * haptic) -{ - if (haptic->hwdata) { - - /* Free Effects. */ - SDL_free(haptic->effects); - haptic->effects = NULL; - haptic->neffects = 0; - - /* Clean up */ - FFReleaseDevice(haptic->hwdata->device); - - /* Free */ - SDL_free(haptic->hwdata); - haptic->hwdata = NULL; - } -} - - -/* - * Clean up after system specific haptic stuff - */ -void -SDL_SYS_HapticQuit(void) -{ - int i; - - for (i = 0; i < SDL_numhaptics; i++) { - /* Opened and not closed haptics are leaked, this is on purpose. - * Close your haptic devices after usage. */ - - /* Free the io_service_t */ - IOObjectRelease(SDL_hapticlist[i].dev); - } -} - - -/* - * Converts an SDL trigger button to an FFEFFECT trigger button. - */ -static DWORD -FFGetTriggerButton(Uint16 button) -{ - DWORD dwTriggerButton; - - dwTriggerButton = FFEB_NOTRIGGER; - - if (button != 0) { - dwTriggerButton = FFJOFS_BUTTON(button - 1); - } - - return dwTriggerButton; -} - - -/* - * Sets the direction. - */ -static int -SDL_SYS_SetDirection(FFEFFECT * effect, SDL_HapticDirection * dir, int naxes) -{ - LONG *rglDir; - - /* Handle no axes a part. */ - if (naxes == 0) { - effect->dwFlags |= FFEFF_SPHERICAL; /* Set as default. */ - effect->rglDirection = NULL; - return 0; - } - - /* Has axes. */ - rglDir = SDL_malloc(sizeof(LONG) * naxes); - if (rglDir == NULL) { - SDL_OutOfMemory(); - return -1; - } - SDL_memset(rglDir, 0, sizeof(LONG) * naxes); - effect->rglDirection = rglDir; - - switch (dir->type) { - case SDL_HAPTIC_POLAR: - effect->dwFlags |= FFEFF_POLAR; - rglDir[0] = dir->dir[0]; - return 0; - case SDL_HAPTIC_CARTESIAN: - effect->dwFlags |= FFEFF_CARTESIAN; - rglDir[0] = dir->dir[0]; - if (naxes > 1) - rglDir[1] = dir->dir[1]; - if (naxes > 2) - rglDir[2] = dir->dir[2]; - return 0; - case SDL_HAPTIC_SPHERICAL: - effect->dwFlags |= FFEFF_SPHERICAL; - rglDir[0] = dir->dir[0]; - if (naxes > 1) - rglDir[1] = dir->dir[1]; - if (naxes > 2) - rglDir[2] = dir->dir[2]; - return 0; - - default: - SDL_SetError("Haptic: Unknown direction type."); - return -1; - } -} - - -/* Clamps and converts. */ -#define CCONVERT(x) (((x) > 0x7FFF) ? 10000 : ((x)*10000) / 0x7FFF) -/* Just converts. */ -#define CONVERT(x) (((x)*10000) / 0x7FFF) -/* - * Creates the FFEFFECT from a SDL_HapticEffect. - */ -static int -SDL_SYS_ToFFEFFECT(SDL_Haptic * haptic, FFEFFECT * dest, - SDL_HapticEffect * src) -{ - int i; - FFCONSTANTFORCE *constant; - FFPERIODIC *periodic; - FFCONDITION *condition; /* Actually an array of conditions - one per axis. */ - FFRAMPFORCE *ramp; - FFCUSTOMFORCE *custom; - FFENVELOPE *envelope; - SDL_HapticConstant *hap_constant; - SDL_HapticPeriodic *hap_periodic; - SDL_HapticCondition *hap_condition; - SDL_HapticRamp *hap_ramp; - SDL_HapticCustom *hap_custom; - DWORD *axes; - - /* Set global stuff. */ - SDL_memset(dest, 0, sizeof(FFEFFECT)); - dest->dwSize = sizeof(FFEFFECT); /* Set the structure size. */ - dest->dwSamplePeriod = 0; /* Not used by us. */ - dest->dwGain = 10000; /* Gain is set globally, not locally. */ - dest->dwFlags = FFEFF_OBJECTOFFSETS; /* Seems obligatory. */ - - /* Envelope. */ - envelope = SDL_malloc(sizeof(FFENVELOPE)); - if (envelope == NULL) { - SDL_OutOfMemory(); - return -1; - } - SDL_memset(envelope, 0, sizeof(FFENVELOPE)); - dest->lpEnvelope = envelope; - envelope->dwSize = sizeof(FFENVELOPE); /* Always should be this. */ - - /* Axes. */ - dest->cAxes = haptic->naxes; - if (dest->cAxes > 0) { - axes = SDL_malloc(sizeof(DWORD) * dest->cAxes); - if (axes == NULL) { - SDL_OutOfMemory(); - return -1; - } - axes[0] = haptic->hwdata->axes[0]; /* Always at least one axis. */ - if (dest->cAxes > 1) { - axes[1] = haptic->hwdata->axes[1]; - } - if (dest->cAxes > 2) { - axes[2] = haptic->hwdata->axes[2]; - } - dest->rgdwAxes = axes; - } - - - /* The big type handling switch, even bigger then linux's version. */ - switch (src->type) { - case SDL_HAPTIC_CONSTANT: - hap_constant = &src->constant; - constant = SDL_malloc(sizeof(FFCONSTANTFORCE)); - if (constant == NULL) { - SDL_OutOfMemory(); - return -1; - } - SDL_memset(constant, 0, sizeof(FFCONSTANTFORCE)); - - /* Specifics */ - constant->lMagnitude = CONVERT(hap_constant->level); - dest->cbTypeSpecificParams = sizeof(FFCONSTANTFORCE); - dest->lpvTypeSpecificParams = constant; - - /* Generics */ - dest->dwDuration = hap_constant->length * 1000; /* In microseconds. */ - dest->dwTriggerButton = FFGetTriggerButton(hap_constant->button); - dest->dwTriggerRepeatInterval = hap_constant->interval; - dest->dwStartDelay = hap_constant->delay * 1000; /* In microseconds. */ - - /* Direction. */ - if (SDL_SYS_SetDirection(dest, &hap_constant->direction, dest->cAxes) - < 0) { - return -1; - } - - /* Envelope */ - if ((hap_constant->attack_length == 0) - && (hap_constant->fade_length == 0)) { - SDL_free(envelope); - dest->lpEnvelope = NULL; - } else { - envelope->dwAttackLevel = CCONVERT(hap_constant->attack_level); - envelope->dwAttackTime = hap_constant->attack_length * 1000; - envelope->dwFadeLevel = CCONVERT(hap_constant->fade_level); - envelope->dwFadeTime = hap_constant->fade_length * 1000; - } - - break; - - case SDL_HAPTIC_SINE: - case SDL_HAPTIC_SQUARE: - case SDL_HAPTIC_TRIANGLE: - case SDL_HAPTIC_SAWTOOTHUP: - case SDL_HAPTIC_SAWTOOTHDOWN: - hap_periodic = &src->periodic; - periodic = SDL_malloc(sizeof(FFPERIODIC)); - if (periodic == NULL) { - SDL_OutOfMemory(); - return -1; - } - SDL_memset(periodic, 0, sizeof(FFPERIODIC)); - - /* Specifics */ - periodic->dwMagnitude = CONVERT(hap_periodic->magnitude); - periodic->lOffset = CONVERT(hap_periodic->offset); - periodic->dwPhase = hap_periodic->phase; - periodic->dwPeriod = hap_periodic->period * 1000; - dest->cbTypeSpecificParams = sizeof(FFPERIODIC); - dest->lpvTypeSpecificParams = periodic; - - /* Generics */ - dest->dwDuration = hap_periodic->length * 1000; /* In microseconds. */ - dest->dwTriggerButton = FFGetTriggerButton(hap_periodic->button); - dest->dwTriggerRepeatInterval = hap_periodic->interval; - dest->dwStartDelay = hap_periodic->delay * 1000; /* In microseconds. */ - - /* Direction. */ - if (SDL_SYS_SetDirection(dest, &hap_periodic->direction, dest->cAxes) - < 0) { - return -1; - } - - /* Envelope */ - if ((hap_periodic->attack_length == 0) - && (hap_periodic->fade_length == 0)) { - SDL_free(envelope); - dest->lpEnvelope = NULL; - } else { - envelope->dwAttackLevel = CCONVERT(hap_periodic->attack_level); - envelope->dwAttackTime = hap_periodic->attack_length * 1000; - envelope->dwFadeLevel = CCONVERT(hap_periodic->fade_level); - envelope->dwFadeTime = hap_periodic->fade_length * 1000; - } - - break; - - case SDL_HAPTIC_SPRING: - case SDL_HAPTIC_DAMPER: - case SDL_HAPTIC_INERTIA: - case SDL_HAPTIC_FRICTION: - hap_condition = &src->condition; - condition = SDL_malloc(sizeof(FFCONDITION) * dest->cAxes); - if (condition == NULL) { - SDL_OutOfMemory(); - return -1; - } - SDL_memset(condition, 0, sizeof(FFCONDITION)); - - /* Specifics */ - for (i = 0; i < dest->cAxes; i++) { - condition[i].lOffset = CONVERT(hap_condition->center[i]); - condition[i].lPositiveCoefficient = - CONVERT(hap_condition->right_coeff[i]); - condition[i].lNegativeCoefficient = - CONVERT(hap_condition->left_coeff[i]); - condition[i].dwPositiveSaturation = - CCONVERT(hap_condition->right_sat[i]); - condition[i].dwNegativeSaturation = - CCONVERT(hap_condition->left_sat[i]); - condition[i].lDeadBand = CCONVERT(hap_condition->deadband[i]); - } - dest->cbTypeSpecificParams = sizeof(FFCONDITION) * dest->cAxes; - dest->lpvTypeSpecificParams = condition; - - /* Generics */ - dest->dwDuration = hap_condition->length * 1000; /* In microseconds. */ - dest->dwTriggerButton = FFGetTriggerButton(hap_condition->button); - dest->dwTriggerRepeatInterval = hap_condition->interval; - dest->dwStartDelay = hap_condition->delay * 1000; /* In microseconds. */ - - /* Direction. */ - if (SDL_SYS_SetDirection(dest, &hap_condition->direction, dest->cAxes) - < 0) { - return -1; - } - - /* Envelope - Not actually supported by most CONDITION implementations. */ - SDL_free(dest->lpEnvelope); - dest->lpEnvelope = NULL; - - break; - - case SDL_HAPTIC_RAMP: - hap_ramp = &src->ramp; - ramp = SDL_malloc(sizeof(FFRAMPFORCE)); - if (ramp == NULL) { - SDL_OutOfMemory(); - return -1; - } - SDL_memset(ramp, 0, sizeof(FFRAMPFORCE)); - - /* Specifics */ - ramp->lStart = CONVERT(hap_ramp->start); - ramp->lEnd = CONVERT(hap_ramp->end); - dest->cbTypeSpecificParams = sizeof(FFRAMPFORCE); - dest->lpvTypeSpecificParams = ramp; - - /* Generics */ - dest->dwDuration = hap_ramp->length * 1000; /* In microseconds. */ - dest->dwTriggerButton = FFGetTriggerButton(hap_ramp->button); - dest->dwTriggerRepeatInterval = hap_ramp->interval; - dest->dwStartDelay = hap_ramp->delay * 1000; /* In microseconds. */ - - /* Direction. */ - if (SDL_SYS_SetDirection(dest, &hap_ramp->direction, dest->cAxes) < 0) { - return -1; - } - - /* Envelope */ - if ((hap_ramp->attack_length == 0) && (hap_ramp->fade_length == 0)) { - SDL_free(envelope); - dest->lpEnvelope = NULL; - } else { - envelope->dwAttackLevel = CCONVERT(hap_ramp->attack_level); - envelope->dwAttackTime = hap_ramp->attack_length * 1000; - envelope->dwFadeLevel = CCONVERT(hap_ramp->fade_level); - envelope->dwFadeTime = hap_ramp->fade_length * 1000; - } - - break; - - case SDL_HAPTIC_CUSTOM: - hap_custom = &src->custom; - custom = SDL_malloc(sizeof(FFCUSTOMFORCE)); - if (custom == NULL) { - SDL_OutOfMemory(); - return -1; - } - SDL_memset(custom, 0, sizeof(FFCUSTOMFORCE)); - - /* Specifics */ - custom->cChannels = hap_custom->channels; - custom->dwSamplePeriod = hap_custom->period * 1000; - custom->cSamples = hap_custom->samples; - custom->rglForceData = - SDL_malloc(sizeof(LONG) * custom->cSamples * custom->cChannels); - for (i = 0; i < hap_custom->samples * hap_custom->channels; i++) { /* Copy data. */ - custom->rglForceData[i] = CCONVERT(hap_custom->data[i]); - } - dest->cbTypeSpecificParams = sizeof(FFCUSTOMFORCE); - dest->lpvTypeSpecificParams = custom; - - /* Generics */ - dest->dwDuration = hap_custom->length * 1000; /* In microseconds. */ - dest->dwTriggerButton = FFGetTriggerButton(hap_custom->button); - dest->dwTriggerRepeatInterval = hap_custom->interval; - dest->dwStartDelay = hap_custom->delay * 1000; /* In microseconds. */ - - /* Direction. */ - if (SDL_SYS_SetDirection(dest, &hap_custom->direction, dest->cAxes) < - 0) { - return -1; - } - - /* Envelope */ - if ((hap_custom->attack_length == 0) - && (hap_custom->fade_length == 0)) { - SDL_free(envelope); - dest->lpEnvelope = NULL; - } else { - envelope->dwAttackLevel = CCONVERT(hap_custom->attack_level); - envelope->dwAttackTime = hap_custom->attack_length * 1000; - envelope->dwFadeLevel = CCONVERT(hap_custom->fade_level); - envelope->dwFadeTime = hap_custom->fade_length * 1000; - } - - break; - - - default: - SDL_SetError("Haptic: Unknown effect type."); - return -1; - } - - return 0; -} - - -/* - * Frees an FFEFFECT allocated by SDL_SYS_ToFFEFFECT. - */ -static void -SDL_SYS_HapticFreeFFEFFECT(FFEFFECT * effect, int type) -{ - FFCUSTOMFORCE *custom; - - if (effect->lpEnvelope != NULL) { - SDL_free(effect->lpEnvelope); - effect->lpEnvelope = NULL; - } - if (effect->rgdwAxes != NULL) { - SDL_free(effect->rgdwAxes); - effect->rgdwAxes = NULL; - } - if (effect->lpvTypeSpecificParams != NULL) { - if (type == SDL_HAPTIC_CUSTOM) { /* Must free the custom data. */ - custom = (FFCUSTOMFORCE *) effect->lpvTypeSpecificParams; - SDL_free(custom->rglForceData); - custom->rglForceData = NULL; - } - SDL_free(effect->lpvTypeSpecificParams); - effect->lpvTypeSpecificParams = NULL; - } - if (effect->rglDirection != NULL) { - SDL_free(effect->rglDirection); - effect->rglDirection = NULL; - } -} - - -/* - * Gets the effect type from the generic SDL haptic effect wrapper. - */ -CFUUIDRef -SDL_SYS_HapticEffectType(Uint16 type) -{ - switch (type) { - case SDL_HAPTIC_CONSTANT: - return kFFEffectType_ConstantForce_ID; - - case SDL_HAPTIC_RAMP: - return kFFEffectType_RampForce_ID; - - case SDL_HAPTIC_SQUARE: - return kFFEffectType_Square_ID; - - case SDL_HAPTIC_SINE: - return kFFEffectType_Sine_ID; - - case SDL_HAPTIC_TRIANGLE: - return kFFEffectType_Triangle_ID; - - case SDL_HAPTIC_SAWTOOTHUP: - return kFFEffectType_SawtoothUp_ID; - - case SDL_HAPTIC_SAWTOOTHDOWN: - return kFFEffectType_SawtoothDown_ID; - - case SDL_HAPTIC_SPRING: - return kFFEffectType_Spring_ID; - - case SDL_HAPTIC_DAMPER: - return kFFEffectType_Damper_ID; - - case SDL_HAPTIC_INERTIA: - return kFFEffectType_Inertia_ID; - - case SDL_HAPTIC_FRICTION: - return kFFEffectType_Friction_ID; - - case SDL_HAPTIC_CUSTOM: - return kFFEffectType_CustomForce_ID; - - default: - SDL_SetError("Haptic: Unknown effect type."); - return NULL; - } -} - - -/* - * Creates a new haptic effect. - */ -int -SDL_SYS_HapticNewEffect(SDL_Haptic * haptic, struct haptic_effect *effect, - SDL_HapticEffect * base) -{ - HRESULT ret; - CFUUIDRef type; - - /* Alloc the effect. */ - effect->hweffect = (struct haptic_hweffect *) - SDL_malloc(sizeof(struct haptic_hweffect)); - if (effect->hweffect == NULL) { - SDL_OutOfMemory(); - goto err_hweffect; - } - - /* Get the type. */ - type = SDL_SYS_HapticEffectType(base->type); - if (type == NULL) { - goto err_hweffect; - } - - /* Get the effect. */ - if (SDL_SYS_ToFFEFFECT(haptic, &effect->hweffect->effect, base) < 0) { - goto err_effectdone; - } - - /* Create the actual effect. */ - ret = FFDeviceCreateEffect(haptic->hwdata->device, type, - &effect->hweffect->effect, - &effect->hweffect->ref); - if (ret != FF_OK) { - SDL_SetError("Haptic: Unable to create effect: %s.", FFStrError(ret)); - goto err_effectdone; - } - - return 0; - - err_effectdone: - SDL_SYS_HapticFreeFFEFFECT(&effect->hweffect->effect, base->type); - err_hweffect: - if (effect->hweffect != NULL) { - SDL_free(effect->hweffect); - effect->hweffect = NULL; - } - return -1; -} - - -/* - * Updates an effect. - */ -int -SDL_SYS_HapticUpdateEffect(SDL_Haptic * haptic, - struct haptic_effect *effect, - SDL_HapticEffect * data) -{ - HRESULT ret; - FFEffectParameterFlag flags; - FFEFFECT temp; - - /* Get the effect. */ - SDL_memset(&temp, 0, sizeof(FFEFFECT)); - if (SDL_SYS_ToFFEFFECT(haptic, &temp, data) < 0) { - goto err_update; - } - - /* Set the flags. Might be worthwhile to diff temp with loaded effect and - * only change those parameters. */ - flags = FFEP_DIRECTION | - FFEP_DURATION | - FFEP_ENVELOPE | - FFEP_STARTDELAY | - FFEP_TRIGGERBUTTON | - FFEP_TRIGGERREPEATINTERVAL | FFEP_TYPESPECIFICPARAMS; - - /* Create the actual effect. */ - ret = FFEffectSetParameters(effect->hweffect->ref, &temp, flags); - if (ret != FF_OK) { - SDL_SetError("Haptic: Unable to update effect: %s.", FFStrError(ret)); - goto err_update; - } - - /* Copy it over. */ - SDL_SYS_HapticFreeFFEFFECT(&effect->hweffect->effect, data->type); - SDL_memcpy(&effect->hweffect->effect, &temp, sizeof(FFEFFECT)); - - return 0; - - err_update: - SDL_SYS_HapticFreeFFEFFECT(&temp, data->type); - return -1; -} - - -/* - * Runs an effect. - */ -int -SDL_SYS_HapticRunEffect(SDL_Haptic * haptic, struct haptic_effect *effect, - Uint32 iterations) -{ - HRESULT ret; - Uint32 iter; - - /* Check if it's infinite. */ - if (iterations == SDL_HAPTIC_INFINITY) { - iter = FF_INFINITE; - } else - iter = iterations; - - /* Run the effect. */ - ret = FFEffectStart(effect->hweffect->ref, iter, 0); - if (ret != FF_OK) { - SDL_SetError("Haptic: Unable to run the effect: %s.", - FFStrError(ret)); - return -1; - } - - return 0; -} - - -/* - * Stops an effect. - */ -int -SDL_SYS_HapticStopEffect(SDL_Haptic * haptic, struct haptic_effect *effect) -{ - HRESULT ret; - - ret = FFEffectStop(effect->hweffect->ref); - if (ret != FF_OK) { - SDL_SetError("Haptic: Unable to stop the effect: %s.", - FFStrError(ret)); - return -1; - } - - return 0; -} - - -/* - * Frees the effect. - */ -void -SDL_SYS_HapticDestroyEffect(SDL_Haptic * haptic, struct haptic_effect *effect) -{ - HRESULT ret; - - ret = - FFDeviceReleaseEffect(haptic->hwdata->device, effect->hweffect->ref); - if (ret != FF_OK) { - SDL_SetError("Haptic: Error removing the effect from the device: %s.", - FFStrError(ret)); - } - SDL_SYS_HapticFreeFFEFFECT(&effect->hweffect->effect, - effect->effect.type); - SDL_free(effect->hweffect); - effect->hweffect = NULL; -} - - -/* - * Gets the status of a haptic effect. - */ -int -SDL_SYS_HapticGetEffectStatus(SDL_Haptic * haptic, - struct haptic_effect *effect) -{ - HRESULT ret; - FFEffectStatusFlag status; - - ret = FFEffectGetEffectStatus(effect->hweffect->ref, &status); - if (ret != FF_OK) { - SDL_SetError("Haptic: Unable to get effect status: %s.", - FFStrError(ret)); - return -1; - } - - if (status == 0) - return SDL_FALSE; - return SDL_TRUE; /* Assume it's playing or emulated. */ -} - - -/* - * Sets the gain. - */ -int -SDL_SYS_HapticSetGain(SDL_Haptic * haptic, int gain) -{ - HRESULT ret; - Uint32 val; - - val = gain * 100; /* Mac OS X uses 0 to 10,000 */ - ret = - FFDeviceSetForceFeedbackProperty(haptic->hwdata->device, - FFPROP_FFGAIN, &val); - if (ret != FF_OK) { - SDL_SetError("Haptic: Error setting gain: %s.", FFStrError(ret)); - return -1; - } - - return 0; -} - - -/* - * Sets the autocentering. - */ -int -SDL_SYS_HapticSetAutocenter(SDL_Haptic * haptic, int autocenter) -{ - HRESULT ret; - Uint32 val; - - /* Mac OS X only has 0 (off) and 1 (on) */ - if (autocenter == 0) - val = 0; - else - val = 1; - - ret = FFDeviceSetForceFeedbackProperty(haptic->hwdata->device, - FFPROP_AUTOCENTER, &val); - if (ret != FF_OK) { - SDL_SetError("Haptic: Error setting autocenter: %s.", - FFStrError(ret)); - return -1; - } - - return 0; -} - - -/* - * Pauses the device. - */ -int -SDL_SYS_HapticPause(SDL_Haptic * haptic) -{ - HRESULT ret; - - ret = FFDeviceSendForceFeedbackCommand(haptic->hwdata->device, - FFSFFC_PAUSE); - if (ret != FF_OK) { - SDL_SetError("Haptic: Error pausing device: %s.", FFStrError(ret)); - return -1; - } - - return 0; -} - - -/* - * Unpauses the device. - */ -int -SDL_SYS_HapticUnpause(SDL_Haptic * haptic) -{ - HRESULT ret; - - ret = FFDeviceSendForceFeedbackCommand(haptic->hwdata->device, - FFSFFC_CONTINUE); - if (ret != FF_OK) { - SDL_SetError("Haptic: Error pausing device: %s.", FFStrError(ret)); - return -1; - } - - return 0; -} - - -/* - * Stops all currently playing effects. - */ -int -SDL_SYS_HapticStopAll(SDL_Haptic * haptic) -{ - HRESULT ret; - - ret = FFDeviceSendForceFeedbackCommand(haptic->hwdata->device, - FFSFFC_STOPALL); - if (ret != FF_OK) { - SDL_SetError("Haptic: Error stopping device: %s.", FFStrError(ret)); - return -1; - } - - return 0; -} - - -#endif /* SDL_HAPTIC_IOKIT */ diff --git a/macosx/plugins/DFInput/SDL/src/joystick/SDL_joystick.c b/macosx/plugins/DFInput/SDL/src/joystick/SDL_joystick.c deleted file mode 100644 index 189b811..0000000 --- a/macosx/plugins/DFInput/SDL/src/joystick/SDL_joystick.c +++ /dev/null @@ -1,503 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -#include "SDL_config.h" - -/* This is the joystick API for Simple DirectMedia Layer */ -#include "SDL.h" -#include "SDL_sysjoystick.h" -#include "SDL_joystick_c.h" - -/* This is used for Quake III Arena */ -#define SDL_Lock_EventThread() -#define SDL_Unlock_EventThread() - -Uint8 SDL_numjoysticks = 0; -SDL_Joystick **SDL_joysticks = NULL; -static SDL_Joystick *default_joystick = NULL; - -int -SDL_JoystickInit(void) -{ - int arraylen; - int status; - - SDL_numjoysticks = 0; - status = SDL_SYS_JoystickInit(); - if (status >= 0) { - arraylen = (status + 1) * sizeof(*SDL_joysticks); - SDL_joysticks = (SDL_Joystick **) SDL_malloc(arraylen); - if (SDL_joysticks == NULL) { - SDL_numjoysticks = 0; - } else { - SDL_memset(SDL_joysticks, 0, arraylen); - SDL_numjoysticks = status; - } - status = 0; - } - default_joystick = NULL; - return (status); -} - -/* - * Count the number of joysticks attached to the system - */ -int -SDL_NumJoysticks(void) -{ - return SDL_numjoysticks; -} - -/* - * Get the implementation dependent name of a joystick - */ -const char * -SDL_JoystickName(int device_index) -{ - if ((device_index < 0) || (device_index >= SDL_numjoysticks)) { - SDL_SetError("There are %d joysticks available", SDL_numjoysticks); - return (NULL); - } - return (SDL_SYS_JoystickName(device_index)); -} - -/* - * Open a joystick for use - the index passed as an argument refers to - * the N'th joystick on the system. This index is the value which will - * identify this joystick in future joystick events. - * - * This function returns a joystick identifier, or NULL if an error occurred. - */ -SDL_Joystick * -SDL_JoystickOpen(int device_index) -{ - int i; - SDL_Joystick *joystick; - - if ((device_index < 0) || (device_index >= SDL_numjoysticks)) { - SDL_SetError("There are %d joysticks available", SDL_numjoysticks); - return (NULL); - } - - /* If the joystick is already open, return it */ - for (i = 0; SDL_joysticks[i]; ++i) { - if (device_index == SDL_joysticks[i]->index) { - joystick = SDL_joysticks[i]; - ++joystick->ref_count; - return (joystick); - } - } - - /* Create and initialize the joystick */ - joystick = (SDL_Joystick *) SDL_malloc((sizeof *joystick)); - if (joystick == NULL) { - SDL_OutOfMemory(); - return NULL; - } - - SDL_memset(joystick, 0, (sizeof *joystick)); - joystick->index = device_index; - if (SDL_SYS_JoystickOpen(joystick) < 0) { - SDL_free(joystick); - return NULL; - } - if (joystick->naxes > 0) { - joystick->axes = (Sint16 *) SDL_malloc - (joystick->naxes * sizeof(Sint16)); - } - if (joystick->nhats > 0) { - joystick->hats = (Uint8 *) SDL_malloc - (joystick->nhats * sizeof(Uint8)); - } - if (joystick->nballs > 0) { - joystick->balls = (struct balldelta *) SDL_malloc - (joystick->nballs * sizeof(*joystick->balls)); - } - if (joystick->nbuttons > 0) { - joystick->buttons = (Uint8 *) SDL_malloc - (joystick->nbuttons * sizeof(Uint8)); - } - if (((joystick->naxes > 0) && !joystick->axes) - || ((joystick->nhats > 0) && !joystick->hats) - || ((joystick->nballs > 0) && !joystick->balls) - || ((joystick->nbuttons > 0) && !joystick->buttons)) { - SDL_OutOfMemory(); - SDL_JoystickClose(joystick); - return NULL; - } - if (joystick->axes) { - SDL_memset(joystick->axes, 0, joystick->naxes * sizeof(Sint16)); - } - if (joystick->hats) { - SDL_memset(joystick->hats, 0, joystick->nhats * sizeof(Uint8)); - } - if (joystick->balls) { - SDL_memset(joystick->balls, 0, - joystick->nballs * sizeof(*joystick->balls)); - } - if (joystick->buttons) { - SDL_memset(joystick->buttons, 0, joystick->nbuttons * sizeof(Uint8)); - } - - /* Add joystick to list */ - ++joystick->ref_count; - SDL_Lock_EventThread(); - for (i = 0; SDL_joysticks[i]; ++i) - /* Skip to next joystick */ ; - SDL_joysticks[i] = joystick; - SDL_Unlock_EventThread(); - - return (joystick); -} - -/* - * Returns 1 if the joystick has been opened, or 0 if it has not. - */ -int -SDL_JoystickOpened(int device_index) -{ - int i, opened; - - opened = 0; - for (i = 0; SDL_joysticks[i]; ++i) { - if (SDL_joysticks[i]->index == (Uint8) device_index) { - opened = 1; - break; - } - } - return (opened); -} - - -/* - * Checks to make sure the joystick is valid. - */ -int -SDL_PrivateJoystickValid(SDL_Joystick ** joystick) -{ - int valid; - - if (*joystick == NULL) { - *joystick = default_joystick; - } - if (*joystick == NULL) { - SDL_SetError("Joystick hasn't been opened yet"); - valid = 0; - } else { - valid = 1; - } - return valid; -} - -/* - * Get the device index of an opened joystick. - */ -int -SDL_JoystickIndex(SDL_Joystick * joystick) -{ - if (!SDL_PrivateJoystickValid(&joystick)) { - return (-1); - } - return (joystick->index); -} - -/* - * Get the number of multi-dimensional axis controls on a joystick - */ -int -SDL_JoystickNumAxes(SDL_Joystick * joystick) -{ - if (!SDL_PrivateJoystickValid(&joystick)) { - return (-1); - } - return (joystick->naxes); -} - -/* - * Get the number of hats on a joystick - */ -int -SDL_JoystickNumHats(SDL_Joystick * joystick) -{ - if (!SDL_PrivateJoystickValid(&joystick)) { - return (-1); - } - return (joystick->nhats); -} - -/* - * Get the number of trackballs on a joystick - */ -int -SDL_JoystickNumBalls(SDL_Joystick * joystick) -{ - if (!SDL_PrivateJoystickValid(&joystick)) { - return (-1); - } - return (joystick->nballs); -} - -/* - * Get the number of buttons on a joystick - */ -int -SDL_JoystickNumButtons(SDL_Joystick * joystick) -{ - if (!SDL_PrivateJoystickValid(&joystick)) { - return (-1); - } - return (joystick->nbuttons); -} - -/* - * Get the current state of an axis control on a joystick - */ -Sint16 -SDL_JoystickGetAxis(SDL_Joystick * joystick, int axis) -{ - Sint16 state; - - if (!SDL_PrivateJoystickValid(&joystick)) { - return (0); - } - if (axis < joystick->naxes) { - state = joystick->axes[axis]; - } else { - SDL_SetError("Joystick only has %d axes", joystick->naxes); - state = 0; - } - return (state); -} - -/* - * Get the current state of a hat on a joystick - */ -Uint8 -SDL_JoystickGetHat(SDL_Joystick * joystick, int hat) -{ - Uint8 state; - - if (!SDL_PrivateJoystickValid(&joystick)) { - return (0); - } - if (hat < joystick->nhats) { - state = joystick->hats[hat]; - } else { - SDL_SetError("Joystick only has %d hats", joystick->nhats); - state = 0; - } - return (state); -} - -/* - * Get the ball axis change since the last poll - */ -int -SDL_JoystickGetBall(SDL_Joystick * joystick, int ball, int *dx, int *dy) -{ - int retval; - - if (!SDL_PrivateJoystickValid(&joystick)) { - return (-1); - } - - retval = 0; - if (ball < joystick->nballs) { - if (dx) { - *dx = joystick->balls[ball].dx; - } - if (dy) { - *dy = joystick->balls[ball].dy; - } - joystick->balls[ball].dx = 0; - joystick->balls[ball].dy = 0; - } else { - SDL_SetError("Joystick only has %d balls", joystick->nballs); - retval = -1; - } - return (retval); -} - -/* - * Get the current state of a button on a joystick - */ -Uint8 -SDL_JoystickGetButton(SDL_Joystick * joystick, int button) -{ - Uint8 state; - - if (!SDL_PrivateJoystickValid(&joystick)) { - return (0); - } - if (button < joystick->nbuttons) { - state = joystick->buttons[button]; - } else { - SDL_SetError("Joystick only has %d buttons", joystick->nbuttons); - state = 0; - } - return (state); -} - -/* - * Close a joystick previously opened with SDL_JoystickOpen() - */ -void -SDL_JoystickClose(SDL_Joystick * joystick) -{ - int i; - - if (!SDL_PrivateJoystickValid(&joystick)) { - return; - } - - /* First decrement ref count */ - if (--joystick->ref_count > 0) { - return; - } - - /* Lock the event queue - prevent joystick polling */ - SDL_Lock_EventThread(); - - if (joystick == default_joystick) { - default_joystick = NULL; - } - SDL_SYS_JoystickClose(joystick); - - /* Remove joystick from list */ - for (i = 0; SDL_joysticks[i]; ++i) { - if (joystick == SDL_joysticks[i]) { - SDL_memmove(&SDL_joysticks[i], &SDL_joysticks[i + 1], - (SDL_numjoysticks - i) * sizeof(joystick)); - break; - } - } - - /* Let the event thread keep running */ - SDL_Unlock_EventThread(); - - /* Free the data associated with this joystick */ - if (joystick->axes) { - SDL_free(joystick->axes); - } - if (joystick->hats) { - SDL_free(joystick->hats); - } - if (joystick->balls) { - SDL_free(joystick->balls); - } - if (joystick->buttons) { - SDL_free(joystick->buttons); - } - SDL_free(joystick); -} - -void -SDL_JoystickQuit(void) -{ - /* Stop the event polling */ - SDL_Lock_EventThread(); - SDL_numjoysticks = 0; - SDL_Unlock_EventThread(); - - /* Quit the joystick setup */ - SDL_SYS_JoystickQuit(); - if (SDL_joysticks) { - SDL_free(SDL_joysticks); - SDL_joysticks = NULL; - } -} - - -/* These are global for SDL_sysjoystick.c and SDL_events.c */ - -int -SDL_PrivateJoystickAxis(SDL_Joystick * joystick, Uint8 axis, Sint16 value) -{ - int posted; - - /* Update internal joystick state */ - joystick->axes[axis] = value; - - /* Post the event, if desired */ - posted = 0; - - return (posted); -} - -int -SDL_PrivateJoystickHat(SDL_Joystick * joystick, Uint8 hat, Uint8 value) -{ - int posted; - - /* Update internal joystick state */ - joystick->hats[hat] = value; - - /* Post the event, if desired */ - posted = 0; - - return (posted); -} - -int -SDL_PrivateJoystickBall(SDL_Joystick * joystick, Uint8 ball, - Sint16 xrel, Sint16 yrel) -{ - int posted; - - /* Update internal mouse state */ - joystick->balls[ball].dx += xrel; - joystick->balls[ball].dy += yrel; - - /* Post the event, if desired */ - posted = 0; - - return (posted); -} - -int -SDL_PrivateJoystickButton(SDL_Joystick * joystick, Uint8 button, Uint8 state) -{ - int posted; - - /* Update internal joystick state */ - joystick->buttons[button] = state; - - /* Post the event, if desired */ - posted = 0; - - return (posted); -} - -void -SDL_JoystickUpdate(void) -{ - int i; - - for (i = 0; SDL_joysticks[i]; ++i) { - SDL_SYS_JoystickUpdate(SDL_joysticks[i]); - } -} - -int -SDL_JoystickEventState(int state) -{ - return SDL_IGNORE; -} diff --git a/macosx/plugins/DFInput/SDL/src/joystick/SDL_joystick_c.h b/macosx/plugins/DFInput/SDL/src/joystick/SDL_joystick_c.h deleted file mode 100644 index e0f8529..0000000 --- a/macosx/plugins/DFInput/SDL/src/joystick/SDL_joystick_c.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -#include "SDL_config.h" - -/* Useful functions and variables from SDL_joystick.c */ -#include "SDL_joystick.h" - -/* The number of available joysticks on the system */ -extern Uint8 SDL_numjoysticks; - -/* Initialization and shutdown functions */ -extern int SDL_JoystickInit(void); -extern void SDL_JoystickQuit(void); - -/* Internal event queueing functions */ -extern int SDL_PrivateJoystickAxis(SDL_Joystick * joystick, - Uint8 axis, Sint16 value); -extern int SDL_PrivateJoystickBall(SDL_Joystick * joystick, - Uint8 ball, Sint16 xrel, Sint16 yrel); -extern int SDL_PrivateJoystickHat(SDL_Joystick * joystick, - Uint8 hat, Uint8 value); -extern int SDL_PrivateJoystickButton(SDL_Joystick * joystick, - Uint8 button, Uint8 state); - -/* Internal sanity checking functions */ -extern int SDL_PrivateJoystickValid(SDL_Joystick ** joystick); - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/src/joystick/SDL_sysjoystick.h b/macosx/plugins/DFInput/SDL/src/joystick/SDL_sysjoystick.h deleted file mode 100644 index ddb3b84..0000000 --- a/macosx/plugins/DFInput/SDL/src/joystick/SDL_sysjoystick.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is SDL_free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -#include "SDL_config.h" - -/* This is the system specific header for the SDL joystick API */ - -#include "SDL_joystick.h" - -/* The SDL joystick structure */ -struct _SDL_Joystick -{ - Uint8 index; /* Device index */ - const char *name; /* Joystick name - system dependent */ - - int naxes; /* Number of axis controls on the joystick */ - Sint16 *axes; /* Current axis states */ - - int nhats; /* Number of hats on the joystick */ - Uint8 *hats; /* Current hat states */ - - int nballs; /* Number of trackballs on the joystick */ - struct balldelta - { - int dx; - int dy; - } *balls; /* Current ball motion deltas */ - - int nbuttons; /* Number of buttons on the joystick */ - Uint8 *buttons; /* Current button states */ - - struct joystick_hwdata *hwdata; /* Driver dependent information */ - - int ref_count; /* Reference count for multiple opens */ -}; - -/* Function to scan the system for joysticks. - * Joystick 0 should be the system default joystick. - * This function should return the number of available joysticks, or -1 - * on an unrecoverable fatal error. - */ -extern int SDL_SYS_JoystickInit(void); - -/* Function to get the device-dependent name of a joystick */ -extern const char *SDL_SYS_JoystickName(int index); - -/* Function to open a joystick for use. - The joystick to open is specified by the index field of the joystick. - This should fill the nbuttons and naxes fields of the joystick structure. - It returns 0, or -1 if there is an error. - */ -extern int SDL_SYS_JoystickOpen(SDL_Joystick * joystick); - -/* Function to update the state of a joystick - called as a device poll. - * This function shouldn't update the joystick structure directly, - * but instead should call SDL_PrivateJoystick*() to deliver events - * and update joystick device state. - */ -extern void SDL_SYS_JoystickUpdate(SDL_Joystick * joystick); - -/* Function to close a joystick after use */ -extern void SDL_SYS_JoystickClose(SDL_Joystick * joystick); - -/* Function to perform any system-specific joystick related cleanup */ -extern void SDL_SYS_JoystickQuit(void); - -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/src/joystick/darwin/SDL_sysjoystick.c b/macosx/plugins/DFInput/SDL/src/joystick/darwin/SDL_sysjoystick.c deleted file mode 100644 index 824917f..0000000 --- a/macosx/plugins/DFInput/SDL/src/joystick/darwin/SDL_sysjoystick.c +++ /dev/null @@ -1,847 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -#include "SDL_config.h" - -#ifdef SDL_JOYSTICK_IOKIT - -/* SDL joystick driver for Darwin / Mac OS X, based on the IOKit HID API */ -/* Written 2001 by Max Horn */ - -#include <unistd.h> -#include <ctype.h> -#include <sysexits.h> -#include <mach/mach.h> -#include <mach/mach_error.h> -#include <IOKit/IOKitLib.h> -#include <IOKit/IOCFPlugIn.h> -#ifdef MACOS_10_0_4 -#include <IOKit/hidsystem/IOHIDUsageTables.h> -#else -/* The header was moved here in Mac OS X 10.1 */ -#include <Kernel/IOKit/hidsystem/IOHIDUsageTables.h> -#endif -#include <IOKit/hid/IOHIDLib.h> -#include <IOKit/hid/IOHIDKeys.h> -#include <CoreFoundation/CoreFoundation.h> -#include <Carbon/Carbon.h> /* for NewPtrClear, DisposePtr */ - -/* For force feedback testing. */ -#include <ForceFeedback/ForceFeedback.h> -#include <ForceFeedback/ForceFeedbackConstants.h> - -#include "SDL_joystick.h" -#include "../SDL_sysjoystick.h" -#include "../SDL_joystick_c.h" -#include "SDL_sysjoystick_c.h" - - -/* Linked list of all available devices */ -static recDevice *gpDeviceList = NULL; - - -static void -HIDReportErrorNum(char *strError, long numError) -{ - SDL_SetError(strError); -} - -static void HIDGetCollectionElements(CFMutableDictionaryRef deviceProperties, - recDevice * pDevice); - -/* returns current value for element, polling element - * will return 0 on error conditions which should be accounted for by application - */ - -static SInt32 -HIDGetElementValue(recDevice * pDevice, recElement * pElement) -{ - IOReturn result = kIOReturnSuccess; - IOHIDEventStruct hidEvent; - hidEvent.value = 0; - - if (NULL != pDevice && NULL != pElement && NULL != pDevice->interface) { - result = - (*(pDevice->interface))->getElementValue(pDevice->interface, - pElement->cookie, - &hidEvent); - if (kIOReturnSuccess == result) { - /* record min and max for auto calibration */ - if (hidEvent.value < pElement->minReport) - pElement->minReport = hidEvent.value; - if (hidEvent.value > pElement->maxReport) - pElement->maxReport = hidEvent.value; - } - } - - /* auto user scale */ - return hidEvent.value; -} - -static SInt32 -HIDScaledCalibratedValue(recDevice * pDevice, recElement * pElement, - long min, long max) -{ - float deviceScale = max - min; - float readScale = pElement->maxReport - pElement->minReport; - SInt32 value = HIDGetElementValue(pDevice, pElement); - if (readScale == 0) - return value; /* no scaling at all */ - else - return ((value - pElement->minReport) * deviceScale / readScale) + - min; -} - - -static void -HIDRemovalCallback(void *target, IOReturn result, void *refcon, void *sender) -{ - recDevice *device = (recDevice *) refcon; - device->removed = 1; - device->uncentered = 1; -} - - - -/* Create and open an interface to device, required prior to extracting values or building queues. - * Note: appliction now owns the device and must close and release it prior to exiting - */ - -static IOReturn -HIDCreateOpenDeviceInterface(io_object_t hidDevice, recDevice * pDevice) -{ - IOReturn result = kIOReturnSuccess; - HRESULT plugInResult = S_OK; - SInt32 score = 0; - IOCFPlugInInterface **ppPlugInInterface = NULL; - - if (NULL == pDevice->interface) { - result = - IOCreatePlugInInterfaceForService(hidDevice, - kIOHIDDeviceUserClientTypeID, - kIOCFPlugInInterfaceID, - &ppPlugInInterface, &score); - if (kIOReturnSuccess == result) { - /* Call a method of the intermediate plug-in to create the device interface */ - plugInResult = - (*ppPlugInInterface)->QueryInterface(ppPlugInInterface, - CFUUIDGetUUIDBytes - (kIOHIDDeviceInterfaceID), - (void *) - &(pDevice->interface)); - if (S_OK != plugInResult) - HIDReportErrorNum - ("CouldnÕt query HID class device interface from plugInInterface", - plugInResult); - (*ppPlugInInterface)->Release(ppPlugInInterface); - } else - HIDReportErrorNum - ("Failed to create **plugInInterface via IOCreatePlugInInterfaceForService.", - result); - } - if (NULL != pDevice->interface) { - result = (*(pDevice->interface))->open(pDevice->interface, 0); - if (kIOReturnSuccess != result) - HIDReportErrorNum - ("Failed to open pDevice->interface via open.", result); - else - (*(pDevice->interface))->setRemovalCallback(pDevice->interface, - HIDRemovalCallback, - pDevice, pDevice); - - } - return result; -} - -/* Closes and releases interface to device, should be done prior to exting application - * Note: will have no affect if device or interface do not exist - * application will "own" the device if interface is not closed - * (device may have to be plug and re-plugged in different location to get it working again without a restart) - */ - -static IOReturn -HIDCloseReleaseInterface(recDevice * pDevice) -{ - IOReturn result = kIOReturnSuccess; - - if ((NULL != pDevice) && (NULL != pDevice->interface)) { - /* close the interface */ - result = (*(pDevice->interface))->close(pDevice->interface); - if (kIOReturnNotOpen == result) { - /* do nothing as device was not opened, thus can't be closed */ - } else if (kIOReturnSuccess != result) - HIDReportErrorNum("Failed to close IOHIDDeviceInterface.", - result); - /* release the interface */ - result = (*(pDevice->interface))->Release(pDevice->interface); - if (kIOReturnSuccess != result) - HIDReportErrorNum("Failed to release IOHIDDeviceInterface.", - result); - pDevice->interface = NULL; - } - return result; -} - -/* extracts actual specific element information from each element CF dictionary entry */ - -static void -HIDGetElementInfo(CFTypeRef refElement, recElement * pElement) -{ - long number; - CFTypeRef refType; - - refType = CFDictionaryGetValue(refElement, CFSTR(kIOHIDElementCookieKey)); - if (refType && CFNumberGetValue(refType, kCFNumberLongType, &number)) - pElement->cookie = (IOHIDElementCookie) number; - refType = CFDictionaryGetValue(refElement, CFSTR(kIOHIDElementMinKey)); - if (refType && CFNumberGetValue(refType, kCFNumberLongType, &number)) - pElement->minReport = pElement->min = number; - pElement->maxReport = pElement->min; - refType = CFDictionaryGetValue(refElement, CFSTR(kIOHIDElementMaxKey)); - if (refType && CFNumberGetValue(refType, kCFNumberLongType, &number)) - pElement->maxReport = pElement->max = number; -/* - TODO: maybe should handle the following stuff somehow? - - refType = CFDictionaryGetValue (refElement, CFSTR(kIOHIDElementScaledMinKey)); - if (refType && CFNumberGetValue (refType, kCFNumberLongType, &number)) - pElement->scaledMin = number; - refType = CFDictionaryGetValue (refElement, CFSTR(kIOHIDElementScaledMaxKey)); - if (refType && CFNumberGetValue (refType, kCFNumberLongType, &number)) - pElement->scaledMax = number; - refType = CFDictionaryGetValue (refElement, CFSTR(kIOHIDElementSizeKey)); - if (refType && CFNumberGetValue (refType, kCFNumberLongType, &number)) - pElement->size = number; - refType = CFDictionaryGetValue (refElement, CFSTR(kIOHIDElementIsRelativeKey)); - if (refType) - pElement->relative = CFBooleanGetValue (refType); - refType = CFDictionaryGetValue (refElement, CFSTR(kIOHIDElementIsWrappingKey)); - if (refType) - pElement->wrapping = CFBooleanGetValue (refType); - refType = CFDictionaryGetValue (refElement, CFSTR(kIOHIDElementIsNonLinearKey)); - if (refType) - pElement->nonLinear = CFBooleanGetValue (refType); - refType = CFDictionaryGetValue (refElement, CFSTR(kIOHIDElementHasPreferedStateKey)); - if (refType) - pElement->preferredState = CFBooleanGetValue (refType); - refType = CFDictionaryGetValue (refElement, CFSTR(kIOHIDElementHasNullStateKey)); - if (refType) - pElement->nullState = CFBooleanGetValue (refType); -*/ -} - -/* examines CF dictionary vlaue in device element hierarchy to determine if it is element of interest or a collection of more elements - * if element of interest allocate storage, add to list and retrieve element specific info - * if collection then pass on to deconstruction collection into additional individual elements - */ - -static void -HIDAddElement(CFTypeRef refElement, recDevice * pDevice) -{ - recElement *element = NULL; - recElement **headElement = NULL; - long elementType, usagePage, usage; - CFTypeRef refElementType = - CFDictionaryGetValue(refElement, CFSTR(kIOHIDElementTypeKey)); - CFTypeRef refUsagePage = - CFDictionaryGetValue(refElement, CFSTR(kIOHIDElementUsagePageKey)); - CFTypeRef refUsage = - CFDictionaryGetValue(refElement, CFSTR(kIOHIDElementUsageKey)); - - - if ((refElementType) - && - (CFNumberGetValue(refElementType, kCFNumberLongType, &elementType))) { - /* look at types of interest */ - if ((elementType == kIOHIDElementTypeInput_Misc) - || (elementType == kIOHIDElementTypeInput_Button) - || (elementType == kIOHIDElementTypeInput_Axis)) { - if (refUsagePage - && CFNumberGetValue(refUsagePage, kCFNumberLongType, - &usagePage) && refUsage - && CFNumberGetValue(refUsage, kCFNumberLongType, &usage)) { - switch (usagePage) { /* only interested in kHIDPage_GenericDesktop and kHIDPage_Button */ - case kHIDPage_GenericDesktop: - { - switch (usage) { /* look at usage to determine function */ - case kHIDUsage_GD_X: - case kHIDUsage_GD_Y: - case kHIDUsage_GD_Z: - case kHIDUsage_GD_Rx: - case kHIDUsage_GD_Ry: - case kHIDUsage_GD_Rz: - case kHIDUsage_GD_Slider: - case kHIDUsage_GD_Dial: - case kHIDUsage_GD_Wheel: - element = (recElement *) - NewPtrClear(sizeof(recElement)); - if (element) { - pDevice->axes++; - headElement = &(pDevice->firstAxis); - } - break; - case kHIDUsage_GD_Hatswitch: - element = (recElement *) - NewPtrClear(sizeof(recElement)); - if (element) { - pDevice->hats++; - headElement = &(pDevice->firstHat); - } - break; - } - } - break; - case kHIDPage_Button: - element = (recElement *) - NewPtrClear(sizeof(recElement)); - if (element) { - pDevice->buttons++; - headElement = &(pDevice->firstButton); - } - break; - default: - break; - } - } - } else if (kIOHIDElementTypeCollection == elementType) - HIDGetCollectionElements((CFMutableDictionaryRef) refElement, - pDevice); - } - - if (element && headElement) { /* add to list */ - recElement *elementPrevious = NULL; - recElement *elementCurrent = *headElement; - while (elementCurrent && usage >= elementCurrent->usage) { - elementPrevious = elementCurrent; - elementCurrent = elementCurrent->pNext; - } - if (elementPrevious) { - elementPrevious->pNext = element; - } else { - *headElement = element; - } - element->usagePage = usagePage; - element->usage = usage; - element->pNext = elementCurrent; - HIDGetElementInfo(refElement, element); - pDevice->elements++; - } -} - -/* collects information from each array member in device element list (each array memeber = element) */ - -static void -HIDGetElementsCFArrayHandler(const void *value, void *parameter) -{ - if (CFGetTypeID(value) == CFDictionaryGetTypeID()) - HIDAddElement((CFTypeRef) value, (recDevice *) parameter); -} - -/* handles retrieval of element information from arrays of elements in device IO registry information */ - -static void -HIDGetElements(CFTypeRef refElementCurrent, recDevice * pDevice) -{ - CFTypeID type = CFGetTypeID(refElementCurrent); - if (type == CFArrayGetTypeID()) { /* if element is an array */ - CFRange range = { 0, CFArrayGetCount(refElementCurrent) }; - /* CountElementsCFArrayHandler called for each array member */ - CFArrayApplyFunction(refElementCurrent, range, - HIDGetElementsCFArrayHandler, pDevice); - } -} - -/* handles extracting element information from element collection CF types - * used from top level element decoding and hierarchy deconstruction to flatten device element list - */ - -static void -HIDGetCollectionElements(CFMutableDictionaryRef deviceProperties, - recDevice * pDevice) -{ - CFTypeRef refElementTop = - CFDictionaryGetValue(deviceProperties, CFSTR(kIOHIDElementKey)); - if (refElementTop) - HIDGetElements(refElementTop, pDevice); -} - -/* use top level element usage page and usage to discern device usage page and usage setting appropriate vlaues in device record */ - -static void -HIDTopLevelElementHandler(const void *value, void *parameter) -{ - CFTypeRef refCF = 0; - if (CFGetTypeID(value) != CFDictionaryGetTypeID()) - return; - refCF = CFDictionaryGetValue(value, CFSTR(kIOHIDElementUsagePageKey)); - if (!CFNumberGetValue - (refCF, kCFNumberLongType, &((recDevice *) parameter)->usagePage)) - SDL_SetError("CFNumberGetValue error retrieving pDevice->usagePage."); - refCF = CFDictionaryGetValue(value, CFSTR(kIOHIDElementUsageKey)); - if (!CFNumberGetValue - (refCF, kCFNumberLongType, &((recDevice *) parameter)->usage)) - SDL_SetError("CFNumberGetValue error retrieving pDevice->usage."); -} - -/* extracts device info from CF dictionary records in IO registry */ - -static void -HIDGetDeviceInfo(io_object_t hidDevice, CFMutableDictionaryRef hidProperties, - recDevice * pDevice) -{ - CFMutableDictionaryRef usbProperties = 0; - io_registry_entry_t parent1, parent2; - - /* Mac OS X currently is not mirroring all USB properties to HID page so need to look at USB device page also - * get dictionary for usb properties: step up two levels and get CF dictionary for USB properties - */ - if ((KERN_SUCCESS == - IORegistryEntryGetParentEntry(hidDevice, kIOServicePlane, &parent1)) - && (KERN_SUCCESS == - IORegistryEntryGetParentEntry(parent1, kIOServicePlane, &parent2)) - && (KERN_SUCCESS == - IORegistryEntryCreateCFProperties(parent2, &usbProperties, - kCFAllocatorDefault, - kNilOptions))) { - if (usbProperties) { - CFTypeRef refCF = 0; - /* get device info - * try hid dictionary first, if fail then go to usb dictionary - */ - - - /* get product name */ - refCF = - CFDictionaryGetValue(hidProperties, CFSTR(kIOHIDProductKey)); - if (!refCF) - refCF = - CFDictionaryGetValue(usbProperties, - CFSTR("USB Product Name")); - if (refCF) { - if (!CFStringGetCString - (refCF, pDevice->product, 256, - CFStringGetSystemEncoding())) - SDL_SetError - ("CFStringGetCString error retrieving pDevice->product."); - } - - /* get usage page and usage */ - refCF = - CFDictionaryGetValue(hidProperties, - CFSTR(kIOHIDPrimaryUsagePageKey)); - if (refCF) { - if (!CFNumberGetValue - (refCF, kCFNumberLongType, &pDevice->usagePage)) - SDL_SetError - ("CFNumberGetValue error retrieving pDevice->usagePage."); - refCF = - CFDictionaryGetValue(hidProperties, - CFSTR(kIOHIDPrimaryUsageKey)); - if (refCF) - if (!CFNumberGetValue - (refCF, kCFNumberLongType, &pDevice->usage)) - SDL_SetError - ("CFNumberGetValue error retrieving pDevice->usage."); - } - - if (NULL == refCF) { /* get top level element HID usage page or usage */ - /* use top level element instead */ - CFTypeRef refCFTopElement = 0; - refCFTopElement = - CFDictionaryGetValue(hidProperties, - CFSTR(kIOHIDElementKey)); - { - /* refCFTopElement points to an array of element dictionaries */ - CFRange range = { 0, CFArrayGetCount(refCFTopElement) }; - CFArrayApplyFunction(refCFTopElement, range, - HIDTopLevelElementHandler, pDevice); - } - } - - CFRelease(usbProperties); - } else - SDL_SetError - ("IORegistryEntryCreateCFProperties failed to create usbProperties."); - - if (kIOReturnSuccess != IOObjectRelease(parent2)) - SDL_SetError("IOObjectRelease error with parent2."); - if (kIOReturnSuccess != IOObjectRelease(parent1)) - SDL_SetError("IOObjectRelease error with parent1."); - } -} - - -static recDevice * -HIDBuildDevice(io_object_t hidDevice) -{ - recDevice *pDevice = (recDevice *) NewPtrClear(sizeof(recDevice)); - if (pDevice) { - /* get dictionary for HID properties */ - CFMutableDictionaryRef hidProperties = 0; - kern_return_t result = - IORegistryEntryCreateCFProperties(hidDevice, &hidProperties, - kCFAllocatorDefault, - kNilOptions); - if ((result == KERN_SUCCESS) && hidProperties) { - /* create device interface */ - result = HIDCreateOpenDeviceInterface(hidDevice, pDevice); - if (kIOReturnSuccess == result) { - HIDGetDeviceInfo(hidDevice, hidProperties, pDevice); /* hidDevice used to find parents in registry tree */ - HIDGetCollectionElements(hidProperties, pDevice); - } else { - DisposePtr((Ptr) pDevice); - pDevice = NULL; - } - CFRelease(hidProperties); - } else { - DisposePtr((Ptr) pDevice); - pDevice = NULL; - } - } - return pDevice; -} - -/* disposes of the element list associated with a device and the memory associated with the list - */ - -static void -HIDDisposeElementList(recElement ** elementList) -{ - recElement *pElement = *elementList; - while (pElement) { - recElement *pElementNext = pElement->pNext; - DisposePtr((Ptr) pElement); - pElement = pElementNext; - } - *elementList = NULL; -} - -/* disposes of a single device, closing and releaseing interface, freeing memory fro device and elements, setting device pointer to NULL - * all your device no longer belong to us... (i.e., you do not 'own' the device anymore) - */ - -static recDevice * -HIDDisposeDevice(recDevice ** ppDevice) -{ - kern_return_t result = KERN_SUCCESS; - recDevice *pDeviceNext = NULL; - if (*ppDevice) { - /* save next device prior to disposing of this device */ - pDeviceNext = (*ppDevice)->pNext; - - /* free posible io_service_t */ - if ((*ppDevice)->ffservice) { - IOObjectRelease((*ppDevice)->ffservice); - (*ppDevice)->ffservice = 0; - } - - /* free element lists */ - HIDDisposeElementList(&(*ppDevice)->firstAxis); - HIDDisposeElementList(&(*ppDevice)->firstButton); - HIDDisposeElementList(&(*ppDevice)->firstHat); - - result = HIDCloseReleaseInterface(*ppDevice); /* function sanity checks interface value (now application does not own device) */ - if (kIOReturnSuccess != result) - HIDReportErrorNum - ("HIDCloseReleaseInterface failed when trying to dipose device.", - result); - DisposePtr((Ptr) * ppDevice); - *ppDevice = NULL; - } - return pDeviceNext; -} - - -/* Function to scan the system for joysticks. - * Joystick 0 should be the system default joystick. - * This function should return the number of available joysticks, or -1 - * on an unrecoverable fatal error. - */ -int -SDL_SYS_JoystickInit(void) -{ - IOReturn result = kIOReturnSuccess; - mach_port_t masterPort = 0; - io_iterator_t hidObjectIterator = 0; - CFMutableDictionaryRef hidMatchDictionary = NULL; - recDevice *device, *lastDevice; - io_object_t ioHIDDeviceObject = 0; - - SDL_numjoysticks = 0; - - if (gpDeviceList) { - SDL_SetError("Joystick: Device list already inited."); - return -1; - } - - result = IOMasterPort(bootstrap_port, &masterPort); - if (kIOReturnSuccess != result) { - SDL_SetError("Joystick: IOMasterPort error with bootstrap_port."); - return -1; - } - - /* Set up a matching dictionary to search I/O Registry by class name for all HID class devices. */ - hidMatchDictionary = IOServiceMatching(kIOHIDDeviceKey); - if (hidMatchDictionary) { - /* Add key for device type (joystick, in this case) to refine the matching dictionary. */ - - /* NOTE: we now perform this filtering later - UInt32 usagePage = kHIDPage_GenericDesktop; - UInt32 usage = kHIDUsage_GD_Joystick; - CFNumberRef refUsage = NULL, refUsagePage = NULL; - - refUsage = CFNumberCreate (kCFAllocatorDefault, kCFNumberIntType, &usage); - CFDictionarySetValue (hidMatchDictionary, CFSTR (kIOHIDPrimaryUsageKey), refUsage); - refUsagePage = CFNumberCreate (kCFAllocatorDefault, kCFNumberIntType, &usagePage); - CFDictionarySetValue (hidMatchDictionary, CFSTR (kIOHIDPrimaryUsagePageKey), refUsagePage); - */ - } else { - SDL_SetError - ("Joystick: Failed to get HID CFMutableDictionaryRef via IOServiceMatching."); - return -1; - } - - /*/ Now search I/O Registry for matching devices. */ - result = - IOServiceGetMatchingServices(masterPort, hidMatchDictionary, - &hidObjectIterator); - /* Check for errors */ - if (kIOReturnSuccess != result) { - SDL_SetError("Joystick: Couldn't create a HID object iterator."); - return -1; - } - if (!hidObjectIterator) { /* there are no joysticks */ - gpDeviceList = NULL; - SDL_numjoysticks = 0; - return 0; - } - /* IOServiceGetMatchingServices consumes a reference to the dictionary, so we don't need to release the dictionary ref. */ - - /* build flat linked list of devices from device iterator */ - - gpDeviceList = lastDevice = NULL; - - while ((ioHIDDeviceObject = IOIteratorNext(hidObjectIterator))) { - /* build a device record */ - device = HIDBuildDevice(ioHIDDeviceObject); - if (!device) - continue; - - /* Filter device list to non-keyboard/mouse stuff */ - if ((device->usagePage != kHIDPage_GenericDesktop) || - ((device->usage != kHIDUsage_GD_Joystick && - device->usage != kHIDUsage_GD_GamePad && - device->usage != kHIDUsage_GD_MultiAxisController))) { - - /* release memory for the device */ - HIDDisposeDevice(&device); - DisposePtr((Ptr) device); - continue; - } - - /* We have to do some storage of the io_service_t for - * SDL_HapticOpenFromJoystick */ - if (FFIsForceFeedback(ioHIDDeviceObject) == FF_OK) { - device->ffservice = ioHIDDeviceObject; - } else { - device->ffservice = 0; - } - - /* Add device to the end of the list */ - if (lastDevice) - lastDevice->pNext = device; - else - gpDeviceList = device; - lastDevice = device; - } - result = IOObjectRelease(hidObjectIterator); /* release the iterator */ - - /* Count the total number of devices we found */ - device = gpDeviceList; - while (device) { - SDL_numjoysticks++; - device = device->pNext; - } - - return SDL_numjoysticks; -} - -/* Function to get the device-dependent name of a joystick */ -const char * -SDL_SYS_JoystickName(int index) -{ - recDevice *device = gpDeviceList; - - for (; index > 0; index--) - device = device->pNext; - - return device->product; -} - -/* Function to open a joystick for use. - * The joystick to open is specified by the index field of the joystick. - * This should fill the nbuttons and naxes fields of the joystick structure. - * It returns 0, or -1 if there is an error. - */ -int -SDL_SYS_JoystickOpen(SDL_Joystick * joystick) -{ - recDevice *device = gpDeviceList; - int index; - - for (index = joystick->index; index > 0; index--) - device = device->pNext; - - joystick->hwdata = device; - joystick->name = device->product; - - joystick->naxes = device->axes; - joystick->nhats = device->hats; - joystick->nballs = 0; - joystick->nbuttons = device->buttons; - - return 0; -} - -/* Function to update the state of a joystick - called as a device poll. - * This function shouldn't update the joystick structure directly, - * but instead should call SDL_PrivateJoystick*() to deliver events - * and update joystick device state. - */ -void -SDL_SYS_JoystickUpdate(SDL_Joystick * joystick) -{ - recDevice *device = joystick->hwdata; - recElement *element; - SInt32 value, range; - int i; - - if (device->removed) { /* device was unplugged; ignore it. */ - if (device->uncentered) { - device->uncentered = 0; - - /* Tell the app that everything is centered/unpressed... */ - for (i = 0; i < device->axes; i++) - SDL_PrivateJoystickAxis(joystick, i, 0); - - for (i = 0; i < device->buttons; i++) - SDL_PrivateJoystickButton(joystick, i, 0); - - for (i = 0; i < device->hats; i++) - SDL_PrivateJoystickHat(joystick, i, SDL_HAT_CENTERED); - } - - return; - } - - element = device->firstAxis; - i = 0; - while (element) { - value = HIDScaledCalibratedValue(device, element, -32768, 32767); - if (value != joystick->axes[i]) - SDL_PrivateJoystickAxis(joystick, i, value); - element = element->pNext; - ++i; - } - - element = device->firstButton; - i = 0; - while (element) { - value = HIDGetElementValue(device, element); - if (value > 1) /* handle pressure-sensitive buttons */ - value = 1; - if (value != joystick->buttons[i]) - SDL_PrivateJoystickButton(joystick, i, value); - element = element->pNext; - ++i; - } - - element = device->firstHat; - i = 0; - while (element) { - Uint8 pos = 0; - - range = (element->max - element->min + 1); - value = HIDGetElementValue(device, element) - element->min; - if (range == 4) /* 4 position hatswitch - scale up value */ - value *= 2; - else if (range != 8) /* Neither a 4 nor 8 positions - fall back to default position (centered) */ - value = -1; - switch (value) { - case 0: - pos = SDL_HAT_UP; - break; - case 1: - pos = SDL_HAT_RIGHTUP; - break; - case 2: - pos = SDL_HAT_RIGHT; - break; - case 3: - pos = SDL_HAT_RIGHTDOWN; - break; - case 4: - pos = SDL_HAT_DOWN; - break; - case 5: - pos = SDL_HAT_LEFTDOWN; - break; - case 6: - pos = SDL_HAT_LEFT; - break; - case 7: - pos = SDL_HAT_LEFTUP; - break; - default: - /* Every other value is mapped to center. We do that because some - * joysticks use 8 and some 15 for this value, and apparently - * there are even more variants out there - so we try to be generous. - */ - pos = SDL_HAT_CENTERED; - break; - } - if (pos != joystick->hats[i]) - SDL_PrivateJoystickHat(joystick, i, pos); - element = element->pNext; - ++i; - } - - return; -} - -/* Function to close a joystick after use */ -void -SDL_SYS_JoystickClose(SDL_Joystick * joystick) -{ - /* Should we do anything here? */ - return; -} - -/* Function to perform any system-specific joystick related cleanup */ -void -SDL_SYS_JoystickQuit(void) -{ - while (NULL != gpDeviceList) - gpDeviceList = HIDDisposeDevice(&gpDeviceList); -} - -#endif /* SDL_JOYSTICK_IOKIT */ -/* vi: set ts=4 sw=4 expandtab: */ diff --git a/macosx/plugins/DFInput/SDL/src/joystick/darwin/SDL_sysjoystick_c.h b/macosx/plugins/DFInput/SDL/src/joystick/darwin/SDL_sysjoystick_c.h deleted file mode 100644 index d413f33..0000000 --- a/macosx/plugins/DFInput/SDL/src/joystick/darwin/SDL_sysjoystick_c.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2010 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga - slouken@libsdl.org -*/ -#include "SDL_config.h" - -#ifndef SDL_JOYSTICK_IOKIT_H - - -#if MAC_OS_X_VERSION_MIN_REQUIRED == 1030 -#include "10.3.9-FIX/IOHIDLib.h" -#else -#include <IOKit/hid/IOHIDLib.h> -#endif -#include <IOKit/hid/IOHIDKeys.h> - - -struct recElement -{ - IOHIDElementCookie cookie; /* unique value which identifies element, will NOT change */ - long usagePage, usage; /* HID usage */ - long min; /* reported min value possible */ - long max; /* reported max value possible */ -#if 0 - /* TODO: maybe should handle the following stuff somehow? */ - - long scaledMin; /* reported scaled min value possible */ - long scaledMax; /* reported scaled max value possible */ - long size; /* size in bits of data return from element */ - Boolean relative; /* are reports relative to last report (deltas) */ - Boolean wrapping; /* does element wrap around (one value higher than max is min) */ - Boolean nonLinear; /* are the values reported non-linear relative to element movement */ - Boolean preferredState; /* does element have a preferred state (such as a button) */ - Boolean nullState; /* does element have null state */ -#endif /* 0 */ - - /* runtime variables used for auto-calibration */ - long minReport; /* min returned value */ - long maxReport; /* max returned value */ - - struct recElement *pNext; /* next element in list */ -}; -typedef struct recElement recElement; - -struct joystick_hwdata -{ - io_service_t ffservice; /* Interface for force feedback, 0 = no ff */ - IOHIDDeviceInterface **interface; /* interface to device, NULL = no interface */ - - char product[256]; /* name of product */ - long usage; /* usage page from IOUSBHID Parser.h which defines general usage */ - long usagePage; /* usage within above page from IOUSBHID Parser.h which defines specific usage */ - - long axes; /* number of axis (calculated, not reported by device) */ - long buttons; /* number of buttons (calculated, not reported by device) */ - long hats; /* number of hat switches (calculated, not reported by device) */ - long elements; /* number of total elements (shouldbe total of above) (calculated, not reported by device) */ - - recElement *firstAxis; - recElement *firstButton; - recElement *firstHat; - - int removed; - int uncentered; - - struct joystick_hwdata *pNext; /* next device */ -}; -typedef struct joystick_hwdata recDevice; - - -#endif /* SDL_JOYSTICK_IOKIT_H */ diff --git a/macosx/plugins/DFInput/macsrc/ControllerList.h b/macosx/plugins/DFInput/macsrc/ControllerList.h deleted file mode 100644 index 176d403..0000000 --- a/macosx/plugins/DFInput/macsrc/ControllerList.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on HIDInput by Gil Pedersen. - * Copyright (c) 2004, Gil Pedersen. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#define ControllerList NetPcsxHIDInputPluginControllerList - -#import <Foundation/Foundation.h> -#import <AppKit/NSTableView.h> -#include "cfg.h" - -@class KeyConfig; - -@interface ControllerList : NSObject { -} - -- (id)initWithConfig; - -+ (void)setCurrentController:(int)which; -+ (int)currentController; -+ (int)getButtonOfRow:(int)row; -- (int)numberOfRowsInTableView:(NSTableView *)aTableView; -- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex; -- (void)deleteRow:(int)which; - -@end diff --git a/macosx/plugins/DFInput/macsrc/ControllerList.m b/macosx/plugins/DFInput/macsrc/ControllerList.m deleted file mode 100644 index 5d67370..0000000 --- a/macosx/plugins/DFInput/macsrc/ControllerList.m +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on HIDInput by Gil Pedersen. - * Copyright (c) 2004, Gil Pedersen. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#import "ControllerList.h" -#include "pad.h" -#include "cfg.h" - -static int currentController; - -@implementation ControllerList - -- (id)initWithConfig -{ - if (!(self = [super init])) return nil; - return self; -} - -- (void)dealloc -{ - [super dealloc]; -} - -/* sets current controller data returned by data source */ -+ (void)setCurrentController:(int)which -{ - currentController = which; -} - -+ (int)currentController -{ - return currentController; -} - -/* NSDataSource */ -- (int)numberOfRowsInTableView:(NSTableView *)aTableView -{ - return DKEY_TOTAL + (g.cfg.PadDef[currentController].Type == PSE_PAD_TYPE_ANALOGPAD ? 8 : -2); -} - -static const NSString *LabelText[DKEY_TOTAL + 8] = { - @"D-Pad Up", - @"D-Pad Down", - @"D-Pad Left", - @"D-Pad Right", - @"Cross", - @"Circle", - @"Square", - @"Triangle", - @"L1", - @"R1", - @"L2", - @"R2", - @"Select", - @"Start", - @"L3", - @"R3", - @"L-Stick Right", - @"L-Stick Left", - @"L-Stick Down", - @"L-Stick Up", - @"R-Stick Right", - @"R-Stick Left", - @"R-Stick Down", - @"R-Stick Up" -}; - -static const int DPad[DKEY_TOTAL] = { - DKEY_UP, - DKEY_DOWN, - DKEY_LEFT, - DKEY_RIGHT, - DKEY_CROSS, - DKEY_CIRCLE, - DKEY_SQUARE, - DKEY_TRIANGLE, - DKEY_L1, - DKEY_R1, - DKEY_L2, - DKEY_R2, - DKEY_SELECT, - DKEY_START, - DKEY_L3, - DKEY_R3 -}; - -+ (int)getButtonOfRow:(int)row -{ - return DPad[row]; -} - -- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn - row:(int)rowIndex -{ - char buf[256]; - - if ([((NSString *)[aTableColumn identifier]) isEqualToString:@"key"]) - return LabelText[rowIndex]; - else { - // actual keys - if (rowIndex < DKEY_TOTAL) { - GetKeyDescription(buf, currentController, DPad[rowIndex]); - } else { - rowIndex -= DKEY_TOTAL; - GetAnalogDescription(buf, currentController, rowIndex / 4, rowIndex % 4); - } - - return [NSString stringWithUTF8String:buf]; - } -} - -- (void)deleteRow:(int)which -{ - if (which < DKEY_TOTAL) { - g.cfg.PadDef[currentController].KeyDef[DPad[which]].Key = 0; - g.cfg.PadDef[currentController].KeyDef[DPad[which]].JoyEvType = NONE; - g.cfg.PadDef[currentController].KeyDef[DPad[which]].J.d = 0; - } else { - which -= DKEY_TOTAL; - g.cfg.PadDef[currentController].AnalogDef[which / 4][which % 4].Key = 0; - g.cfg.PadDef[currentController].AnalogDef[which / 4][which % 4].JoyEvType = NONE; - g.cfg.PadDef[currentController].AnalogDef[which / 4][which % 4].J.d = 0; - } -} - -@end diff --git a/macosx/plugins/DFInput/macsrc/MappingCell.h b/macosx/plugins/DFInput/macsrc/MappingCell.h deleted file mode 100644 index f803696..0000000 --- a/macosx/plugins/DFInput/macsrc/MappingCell.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on: HIDInput by Gil Pedersen. - * Copyright (c) 2004, Gil Pedersen. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#define MappingCell NetPcsxHIDInputPluginMappingCell - -#import <AppKit/AppKit.h> - -@interface MappingCell : NSTextFieldCell { -} - -@end diff --git a/macosx/plugins/DFInput/macsrc/MappingCell.m b/macosx/plugins/DFInput/macsrc/MappingCell.m deleted file mode 100644 index 0fb43bd..0000000 --- a/macosx/plugins/DFInput/macsrc/MappingCell.m +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on: HIDInput by Gil Pedersen. - * Copyright (c) 2004, Gil Pedersen. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#import "MappingCell.h" -#import "ControllerList.h" -#import "cfg.h" - -@implementation MappingCell - -- (id)initTextCell:(NSString *)aString { - self = [super initTextCell:aString]; - [self setEditable:NO]; - return self; -} - -- (void)selectWithFrame:(NSRect)aRect inView:(NSView *)controlView editor:(NSText *)textObj delegate:(id)anObject start:(int)selStart length:(int)selLength -{ - [super selectWithFrame:aRect inView:controlView editor:textObj delegate:anObject start:selStart length:selLength]; - - int whichPad = [ControllerList currentController]; - NSTableView *tableView = (NSTableView *)[self controlView]; - int i, changed = 0, row; - NSEvent *endEvent; - NSPoint where = {0.0, 0.0}; - - /* start a modal session */ - NSModalSession session = [NSApp beginModalSessionForWindow:[tableView window]]; - [NSApp runModalSession:session]; - - /* delay for a little while to allow user to release the button pressed to activate the element */ - [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.15]]; - - InitAxisPos(whichPad); - - /* wait for 10 seconds for user to press a key */ - for (i = 0; i < 10; i++) { - [NSApp runModalSession:session]; - row = [tableView selectedRow]; - if (row < DKEY_TOTAL) { - changed = ReadDKeyEvent(whichPad, [ControllerList getButtonOfRow:row]); - } else { - row -= DKEY_TOTAL; - changed = ReadAnalogEvent(whichPad, row / 4, row % 4); - } - - if (changed) break; - } - - [NSApp endModalSession:session]; - - /* move selection to the next list element */ - [self endEditing:textObj]; - if (changed == 1) { - int nextRow = [tableView selectedRow] + 1; - if (nextRow >= [tableView numberOfRows]) { - [tableView deselectAll:self]; - return; - } - [tableView selectRow:nextRow byExtendingSelection:NO]; - - /* discard any events we have received while waiting for the button press */ - endEvent = [NSEvent otherEventWithType:NSApplicationDefined location:where - modifierFlags:0 timestamp:(NSTimeInterval)0 - windowNumber:0 context:[NSGraphicsContext currentContext] subtype:0 data1:0 data2:0]; - [NSApp postEvent:endEvent atStart:NO]; - [NSApp discardEventsMatchingMask:NSAnyEventMask beforeEvent:endEvent]; - } - [[tableView window] makeFirstResponder:tableView]; -} - -@end diff --git a/macosx/plugins/DFInput/macsrc/PadController.h b/macosx/plugins/DFInput/macsrc/PadController.h deleted file mode 100644 index 26a5a15..0000000 --- a/macosx/plugins/DFInput/macsrc/PadController.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on: HIDInput by Gil Pedersen. - * Copyright (c) 2004, Gil Pedersen. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#define PadController NetPcsxHIDInputPluginPadController - -#import <Cocoa/Cocoa.h> -#import "PadView.h" - -@class PadView; - -@interface PadController : NSWindowController -{ - IBOutlet PadView *controllerView; - IBOutlet id controllerView1; - IBOutlet id controllerView2; -} - -- (IBAction)cancel:(id)sender; -- (IBAction)ok:(id)sender; -@end diff --git a/macosx/plugins/DFInput/macsrc/PadController.m b/macosx/plugins/DFInput/macsrc/PadController.m deleted file mode 100644 index 06bce2e..0000000 --- a/macosx/plugins/DFInput/macsrc/PadController.m +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on: HIDInput by Gil Pedersen. - * Copyright (c) 2004, Gil Pedersen. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#import <Cocoa/Cocoa.h> -#import "PadController.h" -#include "pad.h" - -static NSWindow *padWindow; -static PadController *padController; - -#define APP_ID @"net.pcsx.DFInputPlugin" - -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() { - SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_NOPARACHUTE); - LoadPADConfig(); - - if (padWindow == nil) { - if (padController == nil) { - padController = [[PadController alloc] initWithWindowNibName:@"NetPcsxHIDInputPluginMain"]; - } - padWindow = [padController window]; - } - - [padWindow center]; - [padWindow makeKeyAndOrderFront:nil]; - - return 0; -} - -@implementation PadController - -- (IBAction)cancel:(id)sender -{ - SDL_Quit(); - [self close]; -} - -- (IBAction)ok:(id)sender -{ - SavePADConfig(); - SDL_Quit(); - [self close]; -} - -- (void)awakeFromNib -{ - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(windowWillClose:) - name:NSWindowWillCloseNotification object:[self window]]; - - [controllerView1 addSubview: controllerView]; - [controllerView setController:0]; -} - -- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem -{ - PadView *newView = nil; - if ([[tabViewItem identifier] isEqualToString:@"pad1"]) - newView = controllerView1; - else if ([[tabViewItem identifier] isEqualToString:@"pad2"]) - newView = controllerView2; - - if (nil != newView) { - [controllerView removeFromSuperviewWithoutNeedingDisplay]; - [newView addSubview: controllerView]; - [controllerView setFrame:[newView frame]]; - [controllerView setController:[newView isEqual:controllerView1] ? 0 : 1]; - } -} - -- (void)windowBecameKey:(NSNotification *)notification -{ - if ([[controllerView1 subviews] count] > 0) - [controllerView setController:0]; - else if ([[controllerView2 subviews] count] > 0) - [controllerView setController:1]; - - [[NSNotificationCenter defaultCenter] removeObserver:self - name:NSWindowDidBecomeKeyNotification object:[self window]]; -} - -- (void)windowWillClose:(NSNotification *)aNotification -{ - if ([aNotification object] == [self window]) { - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(windowBecameKey:) - name:NSWindowDidBecomeKeyNotification object:[self window]]; - } -} - -@end
\ No newline at end of file diff --git a/macosx/plugins/DFInput/macsrc/PadView.h b/macosx/plugins/DFInput/macsrc/PadView.h deleted file mode 100644 index f99686c..0000000 --- a/macosx/plugins/DFInput/macsrc/PadView.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on: HIDInput by Gil Pedersen. - * Copyright (c) 2004, Gil Pedersen. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#define PadView NetPcsxHIDInputPluginPadView - -#import <Cocoa/Cocoa.h> -#import "ControllerList.h" - -@class ControllerList; - -@interface PadView : NSView -{ - IBOutlet NSTableView *tableView; - IBOutlet NSPopUpButton *typeMenu; - IBOutlet NSPopUpButton *deviceMenu; - - ControllerList *controller; -} -- (IBAction)setType:(id)sender; -- (IBAction)setDevice:(id)sender; - -- (void)setController:(int)which; - -@end diff --git a/macosx/plugins/DFInput/macsrc/PadView.m b/macosx/plugins/DFInput/macsrc/PadView.m deleted file mode 100644 index b0ed273..0000000 --- a/macosx/plugins/DFInput/macsrc/PadView.m +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * Based on: HIDInput by Gil Pedersen. - * Copyright (c) 2004, Gil Pedersen. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#import "PadView.h" -#include "pad.h" - -@implementation PadView - -- (id)initWithFrame:(NSRect)frameRect -{ - if ((self = [super initWithFrame:frameRect]) != nil) { - controller = [[ControllerList alloc] initWithConfig]; - [self setController:0]; - } - return self; -} - -- (void)dealloc -{ - [controller release]; - [super dealloc]; -} - -- (void)drawRect:(NSRect)rect -{ -} - -- (IBAction)setType:(id)sender -{ - g.cfg.PadDef[[ControllerList currentController]].Type = - ([sender indexOfSelectedItem] > 0 ? PSE_PAD_TYPE_ANALOGPAD : PSE_PAD_TYPE_STANDARD); - - [tableView reloadData]; -} - -- (IBAction)setDevice:(id)sender -{ - g.cfg.PadDef[[ControllerList currentController]].DevNum = (int)[sender indexOfSelectedItem] - 1; -} - -- (void)setController:(int)which -{ - int i; - - [ControllerList setCurrentController:which]; - [tableView setDataSource:controller]; - - [deviceMenu removeAllItems]; - [deviceMenu addItemWithTitle:@"(Keyboard only)"]; - - for (i = 0; i < SDL_NumJoysticks(); i++) { - [deviceMenu addItemWithTitle:[NSString stringWithUTF8String:SDL_JoystickName(i)]]; - } - - if (g.cfg.PadDef[which].DevNum >= SDL_NumJoysticks()) { - g.cfg.PadDef[which].DevNum = -1; - } - - [deviceMenu selectItemAtIndex:g.cfg.PadDef[which].DevNum + 1]; - [typeMenu selectItemAtIndex:(g.cfg.PadDef[which].Type == PSE_PAD_TYPE_ANALOGPAD ? 1 : 0)]; - - [tableView reloadData]; -} - - -- (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor -{ - return false; -} - -/* handles key events on the pad list */ -- (void)keyDown:(NSEvent *)theEvent -{ - int key = [theEvent keyCode]; - - if ([[theEvent window] firstResponder] == tableView) { - if (key == 51 || key == 117) { - // delete keys - remove the mappings for the selected item - [controller deleteRow:[tableView selectedRow]]; - [tableView reloadData]; - return; - } else if (key == 36) { - // return key - configure the selected item - [tableView editColumn:[tableView columnWithIdentifier:@"button"] row:[tableView selectedRow] withEvent:nil select:YES]; - return; - } - } - - [super keyDown:theEvent]; -} - -@end diff --git a/macosx/plugins/DFInput/macsrc/cfg.c b/macosx/plugins/DFInput/macsrc/cfg.c deleted file mode 100644 index 9465426..0000000 --- a/macosx/plugins/DFInput/macsrc/cfg.c +++ /dev/null @@ -1,748 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#include "pad.h" - -GLOBALDATA g; - -long DoConfiguration(); -void DoAbout(); - -static void SetDefaultConfig() { - memset(&g.cfg, 0, sizeof(g.cfg)); - - g.cfg.Threaded = 1; - - g.cfg.PadDef[0].DevNum = 0; - g.cfg.PadDef[1].DevNum = 1; - - g.cfg.PadDef[0].Type = PSE_PAD_TYPE_STANDARD; - g.cfg.PadDef[1].Type = PSE_PAD_TYPE_STANDARD; - - // Pad1 keyboard - g.cfg.PadDef[0].KeyDef[DKEY_SELECT].Key = 9; - g.cfg.PadDef[0].KeyDef[DKEY_START].Key = 10; - g.cfg.PadDef[0].KeyDef[DKEY_UP].Key = 127; - g.cfg.PadDef[0].KeyDef[DKEY_RIGHT].Key = 125; - g.cfg.PadDef[0].KeyDef[DKEY_DOWN].Key = 126; - g.cfg.PadDef[0].KeyDef[DKEY_LEFT].Key = 124; - g.cfg.PadDef[0].KeyDef[DKEY_L2].Key = 16; - g.cfg.PadDef[0].KeyDef[DKEY_R2].Key = 18; - g.cfg.PadDef[0].KeyDef[DKEY_L1].Key = 14; - g.cfg.PadDef[0].KeyDef[DKEY_R1].Key = 15; - g.cfg.PadDef[0].KeyDef[DKEY_TRIANGLE].Key = 3; - g.cfg.PadDef[0].KeyDef[DKEY_CIRCLE].Key = 8; - g.cfg.PadDef[0].KeyDef[DKEY_CROSS].Key = 7; - g.cfg.PadDef[0].KeyDef[DKEY_SQUARE].Key = 2; - - // Pad1 joystick - g.cfg.PadDef[0].KeyDef[DKEY_SELECT].JoyEvType = BUTTON; - g.cfg.PadDef[0].KeyDef[DKEY_SELECT].J.Button = 8; - g.cfg.PadDef[0].KeyDef[DKEY_START].JoyEvType = BUTTON; - g.cfg.PadDef[0].KeyDef[DKEY_START].J.Button = 9; - g.cfg.PadDef[0].KeyDef[DKEY_UP].JoyEvType = AXIS; - g.cfg.PadDef[0].KeyDef[DKEY_UP].J.Axis = -2; - g.cfg.PadDef[0].KeyDef[DKEY_RIGHT].JoyEvType = AXIS; - g.cfg.PadDef[0].KeyDef[DKEY_RIGHT].J.Axis = 1; - g.cfg.PadDef[0].KeyDef[DKEY_DOWN].JoyEvType = AXIS; - g.cfg.PadDef[0].KeyDef[DKEY_DOWN].J.Axis = 2; - g.cfg.PadDef[0].KeyDef[DKEY_LEFT].JoyEvType = AXIS; - g.cfg.PadDef[0].KeyDef[DKEY_LEFT].J.Axis = -1; - g.cfg.PadDef[0].KeyDef[DKEY_L2].JoyEvType = BUTTON; - g.cfg.PadDef[0].KeyDef[DKEY_L2].J.Button = 4; - g.cfg.PadDef[0].KeyDef[DKEY_L1].JoyEvType = BUTTON; - g.cfg.PadDef[0].KeyDef[DKEY_L1].J.Button = 6; - g.cfg.PadDef[0].KeyDef[DKEY_R2].JoyEvType = BUTTON; - g.cfg.PadDef[0].KeyDef[DKEY_R2].J.Button = 5; - g.cfg.PadDef[0].KeyDef[DKEY_R1].JoyEvType = BUTTON; - g.cfg.PadDef[0].KeyDef[DKEY_R1].J.Button = 7; - g.cfg.PadDef[0].KeyDef[DKEY_TRIANGLE].JoyEvType = BUTTON; - g.cfg.PadDef[0].KeyDef[DKEY_TRIANGLE].J.Button = 0; - g.cfg.PadDef[0].KeyDef[DKEY_CIRCLE].JoyEvType = BUTTON; - g.cfg.PadDef[0].KeyDef[DKEY_CIRCLE].J.Button = 1; - g.cfg.PadDef[0].KeyDef[DKEY_CROSS].JoyEvType = BUTTON; - g.cfg.PadDef[0].KeyDef[DKEY_CROSS].J.Button = 2; - g.cfg.PadDef[0].KeyDef[DKEY_SQUARE].JoyEvType = BUTTON; - g.cfg.PadDef[0].KeyDef[DKEY_SQUARE].J.Button = 3; - - // Pad2 joystick - g.cfg.PadDef[1].KeyDef[DKEY_SELECT].JoyEvType = BUTTON; - g.cfg.PadDef[1].KeyDef[DKEY_SELECT].J.Button = 8; - g.cfg.PadDef[1].KeyDef[DKEY_START].JoyEvType = BUTTON; - g.cfg.PadDef[1].KeyDef[DKEY_START].J.Button = 9; - g.cfg.PadDef[1].KeyDef[DKEY_UP].JoyEvType = AXIS; - g.cfg.PadDef[1].KeyDef[DKEY_UP].J.Axis = -2; - g.cfg.PadDef[1].KeyDef[DKEY_RIGHT].JoyEvType = AXIS; - g.cfg.PadDef[1].KeyDef[DKEY_RIGHT].J.Axis = 1; - g.cfg.PadDef[1].KeyDef[DKEY_DOWN].JoyEvType = AXIS; - g.cfg.PadDef[1].KeyDef[DKEY_DOWN].J.Axis = 2; - g.cfg.PadDef[1].KeyDef[DKEY_LEFT].JoyEvType = AXIS; - g.cfg.PadDef[1].KeyDef[DKEY_LEFT].J.Axis = -1; - g.cfg.PadDef[1].KeyDef[DKEY_L2].JoyEvType = BUTTON; - g.cfg.PadDef[1].KeyDef[DKEY_L2].J.Button = 4; - g.cfg.PadDef[1].KeyDef[DKEY_L1].JoyEvType = BUTTON; - g.cfg.PadDef[1].KeyDef[DKEY_L1].J.Button = 6; - g.cfg.PadDef[1].KeyDef[DKEY_R2].JoyEvType = BUTTON; - g.cfg.PadDef[1].KeyDef[DKEY_R2].J.Button = 5; - g.cfg.PadDef[1].KeyDef[DKEY_R1].JoyEvType = BUTTON; - g.cfg.PadDef[1].KeyDef[DKEY_R1].J.Button = 7; - g.cfg.PadDef[1].KeyDef[DKEY_TRIANGLE].JoyEvType = BUTTON; - g.cfg.PadDef[1].KeyDef[DKEY_TRIANGLE].J.Button = 0; - g.cfg.PadDef[1].KeyDef[DKEY_CIRCLE].JoyEvType = BUTTON; - g.cfg.PadDef[1].KeyDef[DKEY_CIRCLE].J.Button = 1; - g.cfg.PadDef[1].KeyDef[DKEY_CROSS].JoyEvType = BUTTON; - g.cfg.PadDef[1].KeyDef[DKEY_CROSS].J.Button = 2; - g.cfg.PadDef[1].KeyDef[DKEY_SQUARE].JoyEvType = BUTTON; - g.cfg.PadDef[1].KeyDef[DKEY_SQUARE].J.Button = 3; -} - -void LoadPADConfig() { - FILE *fp; - char buf[256]; - int current, a, b, c; - - SetDefaultConfig(); - - sprintf(buf, "%s/Library/Preferences/net.pcsx.DFInput.plist", getenv("HOME")); - - fp = fopen(buf, "r"); - if (fp == NULL) { - return; - } - - current = 0; - - while (fgets(buf, 256, fp) != NULL) { - if (strncmp(buf, "Threaded=", 9) == 0) { - g.cfg.Threaded = atoi(&buf[9]); - } else if (strncmp(buf, "[PAD", 4) == 0) { - current = atoi(&buf[4]) - 1; - if (current < 0) { - current = 0; - } else if (current > 1) { - current = 1; - } - } else if (strncmp(buf, "DevNum=", 7) == 0) { - g.cfg.PadDef[current].DevNum = atoi(&buf[7]); - } else if (strncmp(buf, "Type=", 5) == 0) { - g.cfg.PadDef[current].Type = atoi(&buf[5]); - } else if (strncmp(buf, "Select=", 7) == 0) { - sscanf(buf, "Select=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_SELECT].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_SELECT].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_SELECT].J.d = c; - } else if (strncmp(buf, "L3=", 3) == 0) { - sscanf(buf, "L3=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_L3].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_L3].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_L3].J.d = c; - } else if (strncmp(buf, "R3=", 3) == 0) { - sscanf(buf, "R3=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_R3].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_R3].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_R3].J.d = c; - } else if (strncmp(buf, "Start=", 6) == 0) { - sscanf(buf, "Start=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_START].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_START].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_START].J.d = c; - } else if (strncmp(buf, "Up=", 3) == 0) { - sscanf(buf, "Up=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_UP].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_UP].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_UP].J.d = c; - } else if (strncmp(buf, "Right=", 6) == 0) { - sscanf(buf, "Right=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_RIGHT].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_RIGHT].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_RIGHT].J.d = c; - } else if (strncmp(buf, "Down=", 5) == 0) { - sscanf(buf, "Down=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_DOWN].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_DOWN].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_DOWN].J.d = c; - } else if (strncmp(buf, "Left=", 5) == 0) { - sscanf(buf, "Left=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_LEFT].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_LEFT].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_LEFT].J.d = c; - } else if (strncmp(buf, "L2=", 3) == 0) { - sscanf(buf, "L2=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_L2].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_L2].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_L2].J.d = c; - } else if (strncmp(buf, "R2=", 3) == 0) { - sscanf(buf, "R2=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_R2].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_R2].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_R2].J.d = c; - } else if (strncmp(buf, "L1=", 3) == 0) { - sscanf(buf, "L1=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_L1].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_L1].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_L1].J.d = c; - } else if (strncmp(buf, "R1=", 3) == 0) { - sscanf(buf, "R1=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_R1].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_R1].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_R1].J.d = c; - } else if (strncmp(buf, "Triangle=", 9) == 0) { - sscanf(buf, "Triangle=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_TRIANGLE].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_TRIANGLE].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_TRIANGLE].J.d = c; - } else if (strncmp(buf, "Circle=", 7) == 0) { - sscanf(buf, "Circle=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_CIRCLE].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_CIRCLE].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_CIRCLE].J.d = c; - } else if (strncmp(buf, "Cross=", 6) == 0) { - sscanf(buf, "Cross=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_CROSS].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_CROSS].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_CROSS].J.d = c; - } else if (strncmp(buf, "Square=", 7) == 0) { - sscanf(buf, "Square=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].KeyDef[DKEY_SQUARE].Key = a; - g.cfg.PadDef[current].KeyDef[DKEY_SQUARE].JoyEvType = b; - g.cfg.PadDef[current].KeyDef[DKEY_SQUARE].J.d = c; - } else if (strncmp(buf, "LeftAnalogXP=", 13) == 0) { - sscanf(buf, "LeftAnalogXP=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_XP].Key = a; - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_XP].JoyEvType = b; - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_XP].J.d = c; - } else if (strncmp(buf, "LeftAnalogXM=", 13) == 0) { - sscanf(buf, "LeftAnalogXM=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_XM].Key = a; - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_XM].JoyEvType = b; - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_XM].J.d = c; - } else if (strncmp(buf, "LeftAnalogYP=", 13) == 0) { - sscanf(buf, "LeftAnalogYP=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_YP].Key = a; - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_YP].JoyEvType = b; - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_YP].J.d = c; - } else if (strncmp(buf, "LeftAnalogYM=", 13) == 0) { - sscanf(buf, "LeftAnalogYM=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_YM].Key = a; - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_YM].JoyEvType = b; - g.cfg.PadDef[current].AnalogDef[ANALOG_LEFT][ANALOG_YM].J.d = c; - } else if (strncmp(buf, "RightAnalogXP=", 14) == 0) { - sscanf(buf, "RightAnalogXP=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_XP].Key = a; - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_XP].JoyEvType = b; - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_XP].J.d = c; - } else if (strncmp(buf, "RightAnalogXM=", 14) == 0) { - sscanf(buf, "RightAnalogXM=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_XM].Key = a; - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_XM].JoyEvType = b; - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_XM].J.d = c; - } else if (strncmp(buf, "RightAnalogYP=", 14) == 0) { - sscanf(buf, "RightAnalogYP=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_YP].Key = a; - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_YP].JoyEvType = b; - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_YP].J.d = c; - } else if (strncmp(buf, "RightAnalogYM=", 14) == 0) { - sscanf(buf, "RightAnalogYM=%d,%d,%d", &a, &b, &c); - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_YM].Key = a; - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_YM].JoyEvType = b; - g.cfg.PadDef[current].AnalogDef[ANALOG_RIGHT][ANALOG_YM].J.d = c; - } - } - - fclose(fp); -} - -void SavePADConfig() { - FILE *fp; - int i; - char buf[256]; - - sprintf(buf, "%s/Library/Preferences/net.pcsx.DFInput.plist", getenv("HOME")); - - fp = fopen(buf, "w"); - if (fp == NULL) { - return; - } - - fprintf(fp, "[CONFIG]\n"); - fprintf(fp, "Threaded=%d\n", g.cfg.Threaded); - fprintf(fp, "\n"); - - for (i = 0; i < 2; i++) { - fprintf(fp, "[PAD%d]\n", i + 1); - fprintf(fp, "DevNum=%d\n", g.cfg.PadDef[i].DevNum); - fprintf(fp, "Type=%d\n", g.cfg.PadDef[i].Type); - - fprintf(fp, "Select=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_SELECT].Key, - g.cfg.PadDef[i].KeyDef[DKEY_SELECT].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_SELECT].J.d); - fprintf(fp, "L3=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_L3].Key, - g.cfg.PadDef[i].KeyDef[DKEY_L3].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_L3].J.d); - fprintf(fp, "R3=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_R3].Key, - g.cfg.PadDef[i].KeyDef[DKEY_R3].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_R3].J.d); - fprintf(fp, "Start=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_START].Key, - g.cfg.PadDef[i].KeyDef[DKEY_START].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_START].J.d); - fprintf(fp, "Up=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_UP].Key, - g.cfg.PadDef[i].KeyDef[DKEY_UP].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_UP].J.d); - fprintf(fp, "Right=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_RIGHT].Key, - g.cfg.PadDef[i].KeyDef[DKEY_RIGHT].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_RIGHT].J.d); - fprintf(fp, "Down=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_DOWN].Key, - g.cfg.PadDef[i].KeyDef[DKEY_DOWN].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_DOWN].J.d); - fprintf(fp, "Left=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_LEFT].Key, - g.cfg.PadDef[i].KeyDef[DKEY_LEFT].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_LEFT].J.d); - fprintf(fp, "L2=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_L2].Key, - g.cfg.PadDef[i].KeyDef[DKEY_L2].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_L2].J.d); - fprintf(fp, "R2=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_R2].Key, - g.cfg.PadDef[i].KeyDef[DKEY_R2].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_R2].J.d); - fprintf(fp, "L1=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_L1].Key, - g.cfg.PadDef[i].KeyDef[DKEY_L1].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_L1].J.d); - fprintf(fp, "R1=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_R1].Key, - g.cfg.PadDef[i].KeyDef[DKEY_R1].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_R1].J.d); - fprintf(fp, "Triangle=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_TRIANGLE].Key, - g.cfg.PadDef[i].KeyDef[DKEY_TRIANGLE].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_TRIANGLE].J.d); - fprintf(fp, "Circle=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_CIRCLE].Key, - g.cfg.PadDef[i].KeyDef[DKEY_CIRCLE].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_CIRCLE].J.d); - fprintf(fp, "Cross=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_CROSS].Key, - g.cfg.PadDef[i].KeyDef[DKEY_CROSS].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_CROSS].J.d); - fprintf(fp, "Square=%d,%d,%d\n", g.cfg.PadDef[i].KeyDef[DKEY_SQUARE].Key, - g.cfg.PadDef[i].KeyDef[DKEY_SQUARE].JoyEvType, g.cfg.PadDef[i].KeyDef[DKEY_SQUARE].J.d); - fprintf(fp, "LeftAnalogXP=%d,%d,%d\n", g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_XP].Key, - g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_XP].JoyEvType, - g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_XP].J.d); - fprintf(fp, "LeftAnalogXM=%d,%d,%d\n", g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_XM].Key, - g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_XM].JoyEvType, - g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_XM].J.d); - fprintf(fp, "LeftAnalogYP=%d,%d,%d\n", g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_YP].Key, - g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_YP].JoyEvType, - g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_YP].J.d); - fprintf(fp, "LeftAnalogYM=%d,%d,%d\n", g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_YM].Key, - g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_YM].JoyEvType, - g.cfg.PadDef[i].AnalogDef[ANALOG_LEFT][ANALOG_YM].J.d); - fprintf(fp, "RightAnalogXP=%d,%d,%d\n", g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_XP].Key, - g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_XP].JoyEvType, - g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_XP].J.d); - fprintf(fp, "RightAnalogXM=%d,%d,%d\n", g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_XM].Key, - g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_XM].JoyEvType, - g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_XM].J.d); - fprintf(fp, "RightAnalogYP=%d,%d,%d\n", g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_YP].Key, - g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_YP].JoyEvType, - g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_YP].J.d); - fprintf(fp, "RightAnalogYM=%d,%d,%d\n", g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_YM].Key, - g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_YM].JoyEvType, - g.cfg.PadDef[i].AnalogDef[ANALOG_RIGHT][ANALOG_YM].J.d); - - fprintf(fp, "\n"); - } - - fclose(fp); -} - -long PADconfigure(void) { - if (SDL_WasInit(SDL_INIT_JOYSTICK)) return -1; // cannot change settings on the fly - - DoConfiguration(); - LoadPADConfig(); - return 0; -} - -void PADabout(void) { - DoAbout(); -} - -struct { - uint16_t code; - const char *desc; -} KeyString[] = { - { 0x01, "A" }, - { 0x0C, "B" }, - { 0x09, "C" }, - { 0x03, "D" }, - { 0x0F, "E" }, - { 0x04, "F" }, - { 0x06, "G" }, - { 0x05, "H" }, - { 0x23, "I" }, - { 0x27, "J" }, - { 0x29, "K" }, - { 0x26, "L" }, - { 0x2F, "M" }, - { 0x2E, "N" }, - { 0x20, "O" }, - { 0x24, "P" }, - { 0x0D, "Q" }, - { 0x10, "R" }, - { 0x02, "S" }, - { 0x12, "T" }, - { 0x21, "U" }, - { 0x0A, "V" }, - { 0x0E, "W" }, - { 0x08, "X" }, - { 0x11, "Y" }, - { 0x07, "Z" }, - { 0x22, "[" }, - { 0x1F, "]" }, - { 0x2A, ";" }, - { 0x28, "'" }, - { 0x2C, "," }, - { 0x30, "." }, - { 0x2D, "/" }, - { 0x33, "`" }, - { 0x13, "1" }, - { 0x14, "2" }, - { 0x15, "3" }, - { 0x16, "4" }, - { 0x18, "5" }, - { 0x17, "6" }, - { 0x1B, "7" }, - { 0x1D, "8" }, - { 0x1A, "9" }, - { 0x1E, "0" }, - { 0x1C, "-" }, - { 0x19, "=" }, - { 0x2B, "\\" }, - { 0x31, "Tab" }, - { 0x39, "Shift" }, - { 0x3C, "Control" }, - { 0x38, "Command" }, - { 0x32, "Spacebar" }, - { 0x34, "Backspace" }, - { 0x25, "Enter" }, - { 0x7F, "Up" }, - { 0x7E, "Down" }, - { 0x7C, "Left" }, - { 0x7D, "Right" }, - { 0x73, "Insert" }, - { 0x76, "Delete" }, - { 0x74, "Home" }, - { 0x78, "End" }, - { 0x75, "Page Up" }, - { 0x7A, "Page Down" }, - { 0x48, "Num Lock" }, - { 0x4C, "Keypad /" }, - { 0x44, "Keypad *" }, - { 0x4F, "Keypad -" }, - { 0x46, "Keypad +" }, - { 0x4D, "Keypad Enter" }, - { 0x53, "Keypad 0" }, - { 0x54, "Keypad 1" }, - { 0x55, "Keypad 2" }, - { 0x56, "Keypad 3" }, - { 0x57, "Keypad 4" }, - { 0x58, "Keypad 5" }, - { 0x59, "Keypad 6" }, - { 0x5A, "Keypad 7" }, - { 0x5C, "Keypad 8" }, - { 0x5D, "Keypad 9" }, - { 0x42, "Keypad ." }, - { 0x00, NULL } -}; - -static const char *XKeysymToString(uint16_t key) { - static char buf[64]; - int i = 0; - - while (KeyString[i].code != 0) { - if (KeyString[i].code == key) { - strcpy(buf, KeyString[i].desc); - return buf; - } - i++; - } - - sprintf(buf, "0x%.2X", key); - return buf; -} - -void GetKeyDescription(char *buf, int joynum, int key) { - const char *hatname[16] = {"Centered", "Up", "Right", "Rightup", - "Down", "", "Rightdown", "", "Left", "Leftup", "", "", - "Leftdown", "", "", ""}; - - switch (g.cfg.PadDef[joynum].KeyDef[key].JoyEvType) { - case BUTTON: - sprintf(buf, "Joystick: Button %d", g.cfg.PadDef[joynum].KeyDef[key].J.Button); - break; - - case AXIS: - sprintf(buf, "Joystick: Axis %d%c", abs(g.cfg.PadDef[joynum].KeyDef[key].J.Axis) - 1, - g.cfg.PadDef[joynum].KeyDef[key].J.Axis > 0 ? '+' : '-'); - break; - - case HAT: - sprintf(buf, "Joystick: Hat %d %s", (g.cfg.PadDef[joynum].KeyDef[key].J.Hat >> 8), - hatname[g.cfg.PadDef[joynum].KeyDef[key].J.Hat & 0x0F]); - break; - - case NONE: - default: - buf[0] = '\0'; - break; - } - - if (g.cfg.PadDef[joynum].KeyDef[key].Key != 0) { - if (buf[0] != '\0') { - strcat(buf, " / "); - } - - strcat(buf, "Keyboard:"); - strcat(buf, " "); - strcat(buf, XKeysymToString(g.cfg.PadDef[joynum].KeyDef[key].Key)); - } -} - -void GetAnalogDescription(char *buf, int joynum, int analognum, int dir) { - const char *hatname[16] = {"Centered", "Up", "Right", "Rightup", - "Down", "", "Rightdown", "", "Left", "Leftup", "", "", - "Leftdown", "", "", ""}; - - switch (g.cfg.PadDef[joynum].AnalogDef[analognum][dir].JoyEvType) { - case BUTTON: - sprintf(buf, "Joystick: Button %d", g.cfg.PadDef[joynum].AnalogDef[analognum][dir].J.Button); - break; - - case AXIS: - sprintf(buf, "Joystick: Axis %d%c", abs(g.cfg.PadDef[joynum].AnalogDef[analognum][dir].J.Axis) - 1, - g.cfg.PadDef[joynum].AnalogDef[analognum][dir].J.Axis > 0 ? '+' : '-'); - break; - - case HAT: - sprintf(buf, "Joystick: Hat %d %s", (g.cfg.PadDef[joynum].AnalogDef[analognum][dir].J.Hat >> 8), - hatname[g.cfg.PadDef[joynum].AnalogDef[analognum][dir].J.Hat & 0x0F]); - break; - - case NONE: - default: - buf[0] = '\0'; - break; - } - - if (g.cfg.PadDef[joynum].AnalogDef[analognum][dir].Key != 0) { - if (buf[0] != '\0') { - strcat(buf, " / "); - } - - strcat(buf, "Keyboard:"); - strcat(buf, " "); - strcat(buf, XKeysymToString(g.cfg.PadDef[joynum].AnalogDef[analognum][dir].Key)); - } -} - -int CheckKeyDown() { - KeyMap theKeys; - unsigned char *keybytes; - int i; - - GetKeys(theKeys); - keybytes = (unsigned char *) theKeys; - - for (i = 0; i < 128; i++) { - if (i == 0x3A) continue; // Ignore capslock - - if (keybytes[i >> 3] & (1 << (i & 7))) - return i + 1; - } - - return 0; -} - -static Sint16 InitialAxisPos[256], PrevAxisPos[256]; - -#define NUM_AXES(js) (SDL_JoystickNumAxes(js) > 256 ? 256 : SDL_JoystickNumAxes(js)) - -void InitAxisPos(int padnum) { - int i; - SDL_Joystick *js; - - if (g.cfg.PadDef[padnum].DevNum >= 0) { - js = SDL_JoystickOpen(g.cfg.PadDef[padnum].DevNum); - SDL_JoystickEventState(SDL_IGNORE); - } else return; - - SDL_JoystickUpdate(); - - for (i = 0; i < NUM_AXES(js); i++) { - InitialAxisPos[i] = PrevAxisPos[i] = SDL_JoystickGetAxis(js, i); - } - - SDL_JoystickClose(js); -} - -int ReadDKeyEvent(int padnum, int key) { - SDL_Joystick *js; - int i, changed = 0, t; - Sint16 axis; - - if (g.cfg.PadDef[padnum].DevNum >= 0) { - js = SDL_JoystickOpen(g.cfg.PadDef[padnum].DevNum); - SDL_JoystickEventState(SDL_IGNORE); - } else { - js = NULL; - } - - for (t = 0; t < 1000000 / 1000; t++) { - // check joystick events - if (js != NULL) { - SDL_JoystickUpdate(); - - for (i = 0; i < SDL_JoystickNumButtons(js); i++) { - if (SDL_JoystickGetButton(js, i)) { - g.cfg.PadDef[padnum].KeyDef[key].JoyEvType = BUTTON; - g.cfg.PadDef[padnum].KeyDef[key].J.Button = i; - changed = 1; - goto end; - } - } - - for (i = 0; i < NUM_AXES(js); i++) { - axis = SDL_JoystickGetAxis(js, i); - if (abs(axis) > 16383 && (abs(axis - PrevAxisPos[i]) > 4096 || abs(axis - InitialAxisPos[i]) > 4096)) { - g.cfg.PadDef[padnum].KeyDef[key].JoyEvType = AXIS; - g.cfg.PadDef[padnum].KeyDef[key].J.Axis = (i + 1) * (axis > 0 ? 1 : -1); - changed = 1; - goto end; - } - PrevAxisPos[i] = axis; - } - - for (i = 0; i < SDL_JoystickNumHats(js); i++) { - axis = SDL_JoystickGetHat(js, i); - if (axis != SDL_HAT_CENTERED) { - g.cfg.PadDef[padnum].KeyDef[key].JoyEvType = HAT; - - if (axis & SDL_HAT_UP) { - g.cfg.PadDef[padnum].KeyDef[key].J.Hat = ((i << 8) | SDL_HAT_UP); - } else if (axis & SDL_HAT_DOWN) { - g.cfg.PadDef[padnum].KeyDef[key].J.Hat = ((i << 8) | SDL_HAT_DOWN); - } else if (axis & SDL_HAT_LEFT) { - g.cfg.PadDef[padnum].KeyDef[key].J.Hat = ((i << 8) | SDL_HAT_LEFT); - } else if (axis & SDL_HAT_RIGHT) { - g.cfg.PadDef[padnum].KeyDef[key].J.Hat = ((i << 8) | SDL_HAT_RIGHT); - } - - changed = 1; - goto end; - } - } - } - - // check keyboard events - i = CheckKeyDown(); - if (i != 0) { - if (i != 0x36) g.cfg.PadDef[padnum].KeyDef[key].Key = i; - changed = 1; - goto end; - } - - // check mouse events - if (Button()) { - changed = 2; - goto end; - } - - usleep(1000); - } - -end: - if (js != NULL) { - SDL_JoystickClose(js); - } - - return changed; -} - -int ReadAnalogEvent(int padnum, int analognum, int analogdir) { - SDL_Joystick *js; - int i, changed = 0, t; - Sint16 axis; - - if (g.cfg.PadDef[padnum].DevNum >= 0) { - js = SDL_JoystickOpen(g.cfg.PadDef[padnum].DevNum); - SDL_JoystickEventState(SDL_IGNORE); - } else { - js = NULL; - } - - for (t = 0; t < 1000000 / 1000; t++) { - // check joystick events - if (js != NULL) { - SDL_JoystickUpdate(); - - for (i = 0; i < SDL_JoystickNumButtons(js); i++) { - if (SDL_JoystickGetButton(js, i)) { - g.cfg.PadDef[padnum].AnalogDef[analognum][analogdir].JoyEvType = BUTTON; - g.cfg.PadDef[padnum].AnalogDef[analognum][analogdir].J.Button = i; - changed = 1; - goto end; - } - } - - for (i = 0; i < NUM_AXES(js); i++) { - axis = SDL_JoystickGetAxis(js, i); - if (abs(axis) > 16383 && (abs(axis - PrevAxisPos[i]) > 4096 || abs(axis - InitialAxisPos[i]) > 4096)) { - g.cfg.PadDef[padnum].AnalogDef[analognum][analogdir].JoyEvType = AXIS; - g.cfg.PadDef[padnum].AnalogDef[analognum][analogdir].J.Axis = (i + 1) * (axis > 0 ? 1 : -1); - changed = 1; - goto end; - } - PrevAxisPos[i] = axis; - } - - for (i = 0; i < SDL_JoystickNumHats(js); i++) { - axis = SDL_JoystickGetHat(js, i); - if (axis != SDL_HAT_CENTERED) { - g.cfg.PadDef[padnum].AnalogDef[analognum][analogdir].JoyEvType = HAT; - - if (axis & SDL_HAT_UP) { - g.cfg.PadDef[padnum].AnalogDef[analognum][analogdir].J.Hat = ((i << 8) | SDL_HAT_UP); - } else if (axis & SDL_HAT_DOWN) { - g.cfg.PadDef[padnum].AnalogDef[analognum][analogdir].J.Hat = ((i << 8) | SDL_HAT_DOWN); - } else if (axis & SDL_HAT_LEFT) { - g.cfg.PadDef[padnum].AnalogDef[analognum][analogdir].J.Hat = ((i << 8) | SDL_HAT_LEFT); - } else if (axis & SDL_HAT_RIGHT) { - g.cfg.PadDef[padnum].AnalogDef[analognum][analogdir].J.Hat = ((i << 8) | SDL_HAT_RIGHT); - } - - changed = 1; - goto end; - } - } - } - - // check keyboard events - i = CheckKeyDown(); - if (i != 0) { - if (i != 0x36) g.cfg.PadDef[padnum].AnalogDef[analognum][analogdir].Key = i; - changed = 1; - goto end; - } - - // check mouse events - if (Button()) { - changed = 2; - goto end; - } - - usleep(1000); - } - -end: - if (js != NULL) { - SDL_JoystickClose(js); - } - - return changed; -} diff --git a/macosx/plugins/DFInput/macsrc/cfg.h b/macosx/plugins/DFInput/macsrc/cfg.h deleted file mode 100644 index 99bc103..0000000 --- a/macosx/plugins/DFInput/macsrc/cfg.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#ifndef CFG_H -#define CFG_H - -#include "pad.h" - -void GetKeyDescription(char *buf, int joynum, int key); -void GetAnalogDescription(char *buf, int joynum, int analognum, int dir); -void InitAxisPos(int padnum); -int ReadDKeyEvent(int padnum, int key); -int ReadAnalogEvent(int padnum, int analognum, int analogdir); - -#endif diff --git a/macosx/plugins/DFInput/macsrc/xkb.c b/macosx/plugins/DFInput/macsrc/xkb.c deleted file mode 100644 index e9345c2..0000000 --- a/macosx/plugins/DFInput/macsrc/xkb.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2010, Wei Mingzhi <whistler@openoffice.org>. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see <http://www.gnu.org/licenses>. - */ - -#include "pad.h" - -void InitKeyboard() { - g.PadState[0].KeyStatus = 0xFFFF; - g.PadState[1].KeyStatus = 0xFFFF; -} - -void DestroyKeyboard() { -} - -void CheckKeyboard() { - int i, j, k; - uint16_t key; - - union { - KeyMap km; - KeyMapByteArray k; - } keyState; - - g.PadState[0].KeyStatus = 0xFFFF; - g.PadState[1].KeyStatus = 0xFFFF; - - GetKeys(keyState.km); - -#define KeyDown(X) \ - (keyState.k[((X) - 1) >> 3] & (1 << (((X) - 1) & 7))) - - for (i = 0; i < 2; i++) { - for (j = 0; j < DKEY_TOTAL; j++) { - key = g.cfg.PadDef[i].KeyDef[j].Key; - if (key == 0) continue; - - if (KeyDown(key)) g.PadState[i].KeyStatus &= ~(1 << j); - } - - if (g.cfg.PadDef[i].Type != PSE_PAD_TYPE_ANALOGPAD) continue; - - for (j = 0; j < ANALOG_TOTAL; j++) { - for (k = 0; k < 4; k++) { - key = g.cfg.PadDef[i].AnalogDef[j][k].Key; - if (key == 0) continue; - - g.PadState[i].AnalogKeyStatus[j][k] = (KeyDown(key) ? 1 : 0); - } - } - } -} diff --git a/macosx/plugins/DFSound/English.lproj/Credits.rtf b/macosx/plugins/DFSound/English.lproj/Credits.rtf deleted file mode 100644 index 209850a..0000000 --- a/macosx/plugins/DFSound/English.lproj/Credits.rtf +++ /dev/null @@ -1,14 +0,0 @@ -{\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}
\ No newline at end of file diff --git a/macosx/plugins/DFSound/English.lproj/InfoPlist.strings b/macosx/plugins/DFSound/English.lproj/InfoPlist.strings Binary files differdeleted file mode 100755 index 6c79d9c..0000000 --- a/macosx/plugins/DFSound/English.lproj/InfoPlist.strings +++ /dev/null diff --git a/macosx/plugins/DFSound/English.lproj/NetSfPeopsSpuPluginMain.nib/classes.nib b/macosx/plugins/DFSound/English.lproj/NetSfPeopsSpuPluginMain.nib/classes.nib deleted file mode 100644 index ab65672..0000000 --- a/macosx/plugins/DFSound/English.lproj/NetSfPeopsSpuPluginMain.nib/classes.nib +++ /dev/null @@ -1,25 +0,0 @@ -{ - 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; - xaSpeedBox = NSControl; - }; - SUPERCLASS = NSWindowController; - }, - { - CLASS = NetSfPeopsSPUPluginNamedSlider; - LANGUAGE = ObjC; - SUPERCLASS = NSSlider; - } - ); - IBVersion = 1; -}
\ No newline at end of file diff --git a/macosx/plugins/DFSound/English.lproj/NetSfPeopsSpuPluginMain.nib/info.nib b/macosx/plugins/DFSound/English.lproj/NetSfPeopsSpuPluginMain.nib/info.nib deleted file mode 100644 index a4d8dd8..0000000 --- a/macosx/plugins/DFSound/English.lproj/NetSfPeopsSpuPluginMain.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ -<?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> diff --git a/macosx/plugins/DFSound/English.lproj/NetSfPeopsSpuPluginMain.nib/keyedobjects.nib b/macosx/plugins/DFSound/English.lproj/NetSfPeopsSpuPluginMain.nib/keyedobjects.nib Binary files differdeleted file mode 100755 index d56d775..0000000 --- a/macosx/plugins/DFSound/English.lproj/NetSfPeopsSpuPluginMain.nib/keyedobjects.nib +++ /dev/null diff --git a/macosx/plugins/DFSound/Info.plist b/macosx/plugins/DFSound/Info.plist deleted file mode 100644 index 88cf687..0000000 --- a/macosx/plugins/DFSound/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ -<?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> diff --git a/macosx/plugins/DFSound/PeopsSPU.xcodeproj/project.pbxproj b/macosx/plugins/DFSound/PeopsSPU.xcodeproj/project.pbxproj deleted file mode 100644 index e9c81c4..0000000 --- a/macosx/plugins/DFSound/PeopsSPU.xcodeproj/project.pbxproj +++ /dev/null @@ -1,343 +0,0 @@ -// !$*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 */; }; - 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; }; - 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 */, - 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 */, - 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; - SYMROOT = ../../build; - 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 = s; - 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; - SYMROOT = ../../build; - 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 */; -} diff --git a/macosx/plugins/DFSound/macsrc/NamedSlider.h b/macosx/plugins/DFSound/macsrc/NamedSlider.h deleted file mode 100644 index c5a40aa..0000000 --- a/macosx/plugins/DFSound/macsrc/NamedSlider.h +++ /dev/null @@ -1,13 +0,0 @@ -/* 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 deleted file mode 100644 index fd07780..0000000 --- a/macosx/plugins/DFSound/macsrc/NamedSlider.m +++ /dev/null @@ -1,33 +0,0 @@ -#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 deleted file mode 100644 index 36373b1..0000000 --- a/macosx/plugins/DFSound/macsrc/PluginController.h +++ /dev/null @@ -1,29 +0,0 @@ -/* 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 deleted file mode 100644 index 1fa007f..0000000 --- a/macosx/plugins/DFSound/macsrc/PluginController.m +++ /dev/null @@ -1,160 +0,0 @@ -#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 diff --git a/macosx/plugins/DFSound/src/macosx.c b/macosx/plugins/DFSound/src/macosx.c deleted file mode 100755 index f329ffc..0000000 --- a/macosx/plugins/DFSound/src/macosx.c +++ /dev/null @@ -1,203 +0,0 @@ -/***************************************************************************
- 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
diff --git a/macosx/plugins/DFXVideo/English.lproj/Credits.rtf b/macosx/plugins/DFXVideo/English.lproj/Credits.rtf deleted file mode 100644 index f49ff39..0000000 --- a/macosx/plugins/DFXVideo/English.lproj/Credits.rtf +++ /dev/null @@ -1,13 +0,0 @@ -{\rtf1\mac\ansicpg10000\cocoartf102 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\pard\tx565\tx1133\tx1700\tx2266\tx2833\tx3401\tx3967\tx4535\tx5102\tx5669\tx6235\tx6802\ql\qnatural - -\f0\b\fs24 \cf0 Created By -\f1\b0 \ - Pete Bernert and the P.E.Op.S. team\ -\ - -\f0\b Macintosh Port By -\f1\b0 \ - Gil Pedersen}
\ No newline at end of file diff --git a/macosx/plugins/DFXVideo/English.lproj/InfoPlist.strings b/macosx/plugins/DFXVideo/English.lproj/InfoPlist.strings Binary files differdeleted file mode 100644 index df4dfcb..0000000 --- a/macosx/plugins/DFXVideo/English.lproj/InfoPlist.strings +++ /dev/null diff --git a/macosx/plugins/DFXVideo/English.lproj/NetSfPeopsSoftGPUConfig.nib/classes.nib b/macosx/plugins/DFXVideo/English.lproj/NetSfPeopsSoftGPUConfig.nib/classes.nib deleted file mode 100644 index b94b3c4..0000000 --- a/macosx/plugins/DFXVideo/English.lproj/NetSfPeopsSoftGPUConfig.nib/classes.nib +++ /dev/null @@ -1,26 +0,0 @@ -{ - IBClasses = ( - { - ACTIONS = {"" = id; }; - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - }, - { - ACTIONS = {cancel = id; hackToggle = id; ok = id; reset = id; }; - CLASS = NetSfPeopsSoftGPUPluginConfigController; - LANGUAGE = ObjC; - OUTLETS = { - autoFullScreen = NSControl; - ditherMode = NSPopUpButton; - fpsCounter = NSControl; - frameSkipping = NSControl; - hackEnable = NSControl; - hacksView = NSView; - vSync = NSControl; - }; - SUPERCLASS = NSWindowController; - } - ); - IBVersion = 1; -}
\ No newline at end of file diff --git a/macosx/plugins/DFXVideo/English.lproj/NetSfPeopsSoftGPUConfig.nib/info.nib b/macosx/plugins/DFXVideo/English.lproj/NetSfPeopsSoftGPUConfig.nib/info.nib deleted file mode 100644 index 8dfe3d1..0000000 --- a/macosx/plugins/DFXVideo/English.lproj/NetSfPeopsSoftGPUConfig.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ -<?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>19 23 561 249 0 0 1024 746 </string> - <key>IBFramework Version</key> - <string>446.1</string> - <key>IBOpenObjects</key> - <array> - <integer>5</integer> - </array> - <key>IBSystem Version</key> - <string>8P2137</string> -</dict> -</plist> diff --git a/macosx/plugins/DFXVideo/English.lproj/NetSfPeopsSoftGPUConfig.nib/keyedobjects.nib b/macosx/plugins/DFXVideo/English.lproj/NetSfPeopsSoftGPUConfig.nib/keyedobjects.nib Binary files differdeleted file mode 100644 index 2125a2b..0000000 --- a/macosx/plugins/DFXVideo/English.lproj/NetSfPeopsSoftGPUConfig.nib/keyedobjects.nib +++ /dev/null diff --git a/macosx/plugins/DFXVideo/Info.plist b/macosx/plugins/DFXVideo/Info.plist deleted file mode 100644 index 8113024..0000000 --- a/macosx/plugins/DFXVideo/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ -<?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>PeopsSoftGL</string> - <key>CFBundleIdentifier</key> - <string>net.sf.peops.SoftGpuGLPlugin</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundlePackageType</key> - <string>PsxP</string> - <key>CFBundleSignature</key> - <string>PSGl</string> - <key>CFBundleVersion</key> - <string>1.16</string> -</dict> -</plist> diff --git a/macosx/plugins/DFXVideo/NetSfPeopsSoftGPUInterface.nib/classes.nib b/macosx/plugins/DFXVideo/NetSfPeopsSoftGPUInterface.nib/classes.nib deleted file mode 100644 index 78bbc4f..0000000 --- a/macosx/plugins/DFXVideo/NetSfPeopsSoftGPUInterface.nib/classes.nib +++ /dev/null @@ -1,22 +0,0 @@ -{ - IBClasses = ( - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - { - CLASS = NetSfPeopsSoftGPUPluginGLView; - LANGUAGE = ObjC; - SUPERCLASS = NSOpenGLView; - }, - { - CLASS = NetSfPeopsSoftGPUPluginWindow; - LANGUAGE = ObjC; - SUPERCLASS = NSWindow; - }, - { - CLASS = NetSfPeopsSoftGPUPluginWindowController; - LANGUAGE = ObjC; - OUTLETS = {glView = NSOpenGLView; }; - SUPERCLASS = NSWindowController; - } - ); - IBVersion = 1; -}
\ No newline at end of file diff --git a/macosx/plugins/DFXVideo/NetSfPeopsSoftGPUInterface.nib/info.nib b/macosx/plugins/DFXVideo/NetSfPeopsSoftGPUInterface.nib/info.nib deleted file mode 100644 index f4ba252..0000000 --- a/macosx/plugins/DFXVideo/NetSfPeopsSoftGPUInterface.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ -<?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>99 26 409 240 0 0 1024 746 </string> - <key>IBFramework Version</key> - <string>364.0</string> - <key>IBOpenObjects</key> - <array> - <integer>5</integer> - </array> - <key>IBSystem Version</key> - <string>7S215</string> -</dict> -</plist> diff --git a/macosx/plugins/DFXVideo/NetSfPeopsSoftGPUInterface.nib/keyedobjects.nib b/macosx/plugins/DFXVideo/NetSfPeopsSoftGPUInterface.nib/keyedobjects.nib Binary files differdeleted file mode 100644 index fb88d8d..0000000 --- a/macosx/plugins/DFXVideo/NetSfPeopsSoftGPUInterface.nib/keyedobjects.nib +++ /dev/null diff --git a/macosx/plugins/DFXVideo/PeopsSoftGPU.xcodeproj/project.pbxproj b/macosx/plugins/DFXVideo/PeopsSoftGPU.xcodeproj/project.pbxproj deleted file mode 100644 index 9657f8c..0000000 --- a/macosx/plugins/DFXVideo/PeopsSoftGPU.xcodeproj/project.pbxproj +++ /dev/null @@ -1,416 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 2B038C07069183300082466B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2B038C05069183300082466B /* InfoPlist.strings */; }; - 2B038D2306918AA80082466B /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 2B038D2206918AA80082466B /* Info.plist */; }; - 2B143C79078A0C6700AF745A /* PluginWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B957EAE0635DFE400543905 /* PluginWindow.h */; }; - 2B57868206BE7B3700BBA288 /* ExtendedKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B57868106BE7B3700BBA288 /* ExtendedKeys.h */; }; - 2B957EB10635DFE400543905 /* PluginWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B957EAF0635DFE400543905 /* PluginWindow.m */; }; - 2B959DC106342C22000F2A2D /* drawgl.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B3E5D64062B2CC1001D796E /* drawgl.m */; }; - 2B959DC406342C23000F2A2D /* PluginGLView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BAF4FC90632967A00DB9A16 /* PluginGLView.h */; }; - 2B959DCD06342C24000F2A2D /* PluginGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BAF4FCA0632967A00DB9A16 /* PluginGLView.m */; }; - 2B959DD006342C25000F2A2D /* PluginWindowController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B3E5DF0062B36FB001D796E /* PluginWindowController.h */; }; - 2B959DD506342C25000F2A2D /* PluginWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B3E5DF1062B36FB001D796E /* PluginWindowController.m */; }; - 2B959DE106342C31000F2A2D /* NetSfPeopsSoftGPUInterface.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2B3E5DED062B36A0001D796E /* NetSfPeopsSoftGPUInterface.nib */; }; - 2B959E4406342D32000F2A2D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B959E4306342D32000F2A2D /* OpenGL.framework */; }; - 2BB260A80777462E00F6854C /* PluginConfigController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BB260A60777462E00F6854C /* PluginConfigController.h */; }; - 2BB260A90777462E00F6854C /* PluginConfigController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BB260A70777462E00F6854C /* PluginConfigController.m */; }; - 2BD2E769077AF53E00657C69 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2BD2E767077AF53E00657C69 /* Credits.rtf */; }; - 2BD2E829077AFC2C00657C69 /* NetSfPeopsSoftGPUConfig.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2BD2E828077AFC2C00657C69 /* NetSfPeopsSoftGPUConfig.nib */; }; - 2BD7C777076E1FAB000F05ED /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B51949E06B3D2D200744730 /* GLUT.framework */; }; - 71E9EC06109F24E700E98D1D /* fps.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E9EBF4109F24E600E98D1D /* fps.c */; }; - 71E9EC08109F24E700E98D1D /* gpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E9EBF6109F24E600E98D1D /* gpu.c */; }; - 71E9EC0B109F24E700E98D1D /* key.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E9EBF9109F24E600E98D1D /* key.c */; }; - 71E9EC0D109F24E700E98D1D /* menu.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E9EBFB109F24E600E98D1D /* menu.c */; }; - 71E9EC0F109F24E700E98D1D /* prim.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E9EBFD109F24E700E98D1D /* prim.c */; }; - 71E9EC11109F24E700E98D1D /* soft.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E9EBFF109F24E700E98D1D /* soft.c */; }; - 71E9EC14109F24E700E98D1D /* zn.c in Sources */ = {isa = PBXBuildFile; fileRef = 71E9EC02109F24E700E98D1D /* zn.c */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 2B038C06069183300082466B /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 2B038D2206918AA80082466B /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; }; - 2B371FBB0773859200B1DC0B /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/NetSfPeopsSoftGPUConfig.nib; sourceTree = "<group>"; }; - 2B3E5D64062B2CC1001D796E /* drawgl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = drawgl.m; path = macsrc/drawgl.m; sourceTree = SOURCE_ROOT; }; - 2B3E5DED062B36A0001D796E /* NetSfPeopsSoftGPUInterface.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = NetSfPeopsSoftGPUInterface.nib; sourceTree = "<group>"; }; - 2B3E5DF0062B36FB001D796E /* PluginWindowController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PluginWindowController.h; path = macsrc/PluginWindowController.h; sourceTree = SOURCE_ROOT; }; - 2B3E5DF1062B36FB001D796E /* PluginWindowController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = PluginWindowController.m; path = macsrc/PluginWindowController.m; sourceTree = SOURCE_ROOT; }; - 2B51949E06B3D2D200744730 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = /System/Library/Frameworks/GLUT.framework; sourceTree = "<absolute>"; }; - 2B57868106BE7B3700BBA288 /* ExtendedKeys.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ExtendedKeys.h; path = macsrc/ExtendedKeys.h; sourceTree = SOURCE_ROOT; }; - 2B957EAE0635DFE400543905 /* PluginWindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PluginWindow.h; path = macsrc/PluginWindow.h; sourceTree = SOURCE_ROOT; }; - 2B957EAF0635DFE400543905 /* PluginWindow.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = PluginWindow.m; path = macsrc/PluginWindow.m; sourceTree = SOURCE_ROOT; }; - 2B959E4306342D32000F2A2D /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; }; - 2BAF4FC90632967A00DB9A16 /* PluginGLView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PluginGLView.h; path = macsrc/PluginGLView.h; sourceTree = SOURCE_ROOT; }; - 2BAF4FCA0632967A00DB9A16 /* PluginGLView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = PluginGLView.m; path = macsrc/PluginGLView.m; sourceTree = SOURCE_ROOT; }; - 2BAF50930632BB1A00DB9A16 /* PeopsSoftGL.psxplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PeopsSoftGL.psxplugin; sourceTree = BUILT_PRODUCTS_DIR; }; - 2BB260A60777462E00F6854C /* PluginConfigController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PluginConfigController.h; path = macsrc/PluginConfigController.h; sourceTree = SOURCE_ROOT; }; - 2BB260A70777462E00F6854C /* PluginConfigController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = PluginConfigController.m; path = macsrc/PluginConfigController.m; sourceTree = SOURCE_ROOT; }; - 2BD2E768077AF53E00657C69 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = "<group>"; }; - 71E9EBF1109F24E600E98D1D /* cfg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cfg.h; path = ../../../plugins/dfxvideo/cfg.h; sourceTree = SOURCE_ROOT; }; - 71E9EBF2109F24E600E98D1D /* draw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = draw.h; path = ../../../plugins/dfxvideo/draw.h; sourceTree = SOURCE_ROOT; }; - 71E9EBF3109F24E600E98D1D /* externals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = externals.h; path = ../../../plugins/dfxvideo/externals.h; sourceTree = SOURCE_ROOT; }; - 71E9EBF4109F24E600E98D1D /* fps.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fps.c; path = ../../../plugins/dfxvideo/fps.c; sourceTree = SOURCE_ROOT; }; - 71E9EBF5109F24E600E98D1D /* fps.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fps.h; path = ../../../plugins/dfxvideo/fps.h; sourceTree = SOURCE_ROOT; }; - 71E9EBF6109F24E600E98D1D /* gpu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gpu.c; path = ../../../plugins/dfxvideo/gpu.c; sourceTree = SOURCE_ROOT; }; - 71E9EBF7109F24E600E98D1D /* gpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gpu.h; path = ../../../plugins/dfxvideo/gpu.h; sourceTree = SOURCE_ROOT; }; - 71E9EBF8109F24E600E98D1D /* interp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../../../plugins/dfxvideo/interp.h; sourceTree = SOURCE_ROOT; }; - 71E9EBF9109F24E600E98D1D /* key.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = key.c; path = ../../../plugins/dfxvideo/key.c; sourceTree = SOURCE_ROOT; }; - 71E9EBFA109F24E600E98D1D /* key.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = key.h; path = ../../../plugins/dfxvideo/key.h; sourceTree = SOURCE_ROOT; }; - 71E9EBFB109F24E600E98D1D /* menu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = menu.c; path = ../../../plugins/dfxvideo/menu.c; sourceTree = SOURCE_ROOT; }; - 71E9EBFC109F24E700E98D1D /* menu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = menu.h; path = ../../../plugins/dfxvideo/menu.h; sourceTree = SOURCE_ROOT; }; - 71E9EBFD109F24E700E98D1D /* prim.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = prim.c; path = ../../../plugins/dfxvideo/prim.c; sourceTree = SOURCE_ROOT; }; - 71E9EBFE109F24E700E98D1D /* prim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = prim.h; path = ../../../plugins/dfxvideo/prim.h; sourceTree = SOURCE_ROOT; }; - 71E9EBFF109F24E700E98D1D /* soft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = soft.c; path = ../../../plugins/dfxvideo/soft.c; sourceTree = SOURCE_ROOT; }; - 71E9EC00109F24E700E98D1D /* soft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = soft.h; path = ../../../plugins/dfxvideo/soft.h; sourceTree = SOURCE_ROOT; }; - 71E9EC01109F24E700E98D1D /* swap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = swap.h; path = ../../../plugins/dfxvideo/swap.h; sourceTree = SOURCE_ROOT; }; - 71E9EC02109F24E700E98D1D /* zn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zn.c; path = ../../../plugins/dfxvideo/zn.c; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 2BAF50910632BB1A00DB9A16 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 2B959E4406342D32000F2A2D /* OpenGL.framework in Frameworks */, - 2BD7C777076E1FAB000F05ED /* GLUT.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 2B3E59FF062AAC1A001D796E = { - isa = PBXGroup; - children = ( - 71E9EBF0109F24B600E98D1D /* src */, - 2BD2E2F40779F50B00657C69 /* macsrc */, - 2BD2E818077AFB9F00657C69 /* English.lproj */, - 2B3E5DED062B36A0001D796E /* NetSfPeopsSoftGPUInterface.nib */, - 2B038D2206918AA80082466B /* Info.plist */, - 2B3E5A0B062AAC34001D796E /* Frameworks */, - 2B3E5A46062AACF3001D796E /* Products */, - ); - sourceTree = "<group>"; - }; - 2B3E5A0B062AAC34001D796E /* Frameworks */ = { - isa = PBXGroup; - children = ( - 2B959E4306342D32000F2A2D /* OpenGL.framework */, - 2B51949E06B3D2D200744730 /* GLUT.framework */, - ); - name = Frameworks; - sourceTree = "<group>"; - }; - 2B3E5A46062AACF3001D796E /* Products */ = { - isa = PBXGroup; - children = ( - 2BAF50930632BB1A00DB9A16 /* PeopsSoftGL.psxplugin */, - ); - name = Products; - sourceTree = "<group>"; - }; - 2BD2E2F40779F50B00657C69 /* macsrc */ = { - isa = PBXGroup; - children = ( - 2BB260A60777462E00F6854C /* PluginConfigController.h */, - 2BB260A70777462E00F6854C /* PluginConfigController.m */, - 2B3E5DF0062B36FB001D796E /* PluginWindowController.h */, - 2B3E5DF1062B36FB001D796E /* PluginWindowController.m */, - 2B957EAE0635DFE400543905 /* PluginWindow.h */, - 2B957EAF0635DFE400543905 /* PluginWindow.m */, - 2BAF4FC90632967A00DB9A16 /* PluginGLView.h */, - 2BAF4FCA0632967A00DB9A16 /* PluginGLView.m */, - 2B3E5D64062B2CC1001D796E /* drawgl.m */, - 2B57868106BE7B3700BBA288 /* ExtendedKeys.h */, - ); - name = macsrc; - sourceTree = "<group>"; - }; - 2BD2E818077AFB9F00657C69 /* English.lproj */ = { - isa = PBXGroup; - children = ( - 2BD2E828077AFC2C00657C69 /* NetSfPeopsSoftGPUConfig.nib */, - 2BD2E767077AF53E00657C69 /* Credits.rtf */, - 2B038C05069183300082466B /* InfoPlist.strings */, - ); - name = English.lproj; - sourceTree = "<group>"; - }; - 71E9EBF0109F24B600E98D1D /* src */ = { - isa = PBXGroup; - children = ( - 71E9EBF1109F24E600E98D1D /* cfg.h */, - 71E9EBF2109F24E600E98D1D /* draw.h */, - 71E9EBF3109F24E600E98D1D /* externals.h */, - 71E9EBF4109F24E600E98D1D /* fps.c */, - 71E9EBF5109F24E600E98D1D /* fps.h */, - 71E9EBF6109F24E600E98D1D /* gpu.c */, - 71E9EBF7109F24E600E98D1D /* gpu.h */, - 71E9EBF8109F24E600E98D1D /* interp.h */, - 71E9EBF9109F24E600E98D1D /* key.c */, - 71E9EBFA109F24E600E98D1D /* key.h */, - 71E9EBFB109F24E600E98D1D /* menu.c */, - 71E9EBFC109F24E700E98D1D /* menu.h */, - 71E9EBFD109F24E700E98D1D /* prim.c */, - 71E9EBFE109F24E700E98D1D /* prim.h */, - 71E9EBFF109F24E700E98D1D /* soft.c */, - 71E9EC00109F24E700E98D1D /* soft.h */, - 71E9EC01109F24E700E98D1D /* swap.h */, - 71E9EC02109F24E700E98D1D /* zn.c */, - ); - name = src; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 2BAF508E0632BB1A00DB9A16 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 2B959DC406342C23000F2A2D /* PluginGLView.h in Headers */, - 2B959DD006342C25000F2A2D /* PluginWindowController.h in Headers */, - 2B57868206BE7B3700BBA288 /* ExtendedKeys.h in Headers */, - 2BB260A80777462E00F6854C /* PluginConfigController.h in Headers */, - 2B143C79078A0C6700AF745A /* PluginWindow.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 2BAF50920632BB1A00DB9A16 /* gpuPeopsSoftGL */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7170842C0FDFD328004F3EB4 /* Build configuration list for PBXNativeTarget "gpuPeopsSoftGL" */; - buildPhases = ( - 2BAF508E0632BB1A00DB9A16 /* Headers */, - 2BAF508F0632BB1A00DB9A16 /* Resources */, - 2BAF50900632BB1A00DB9A16 /* Sources */, - 2BAF50910632BB1A00DB9A16 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = gpuPeopsSoftGL; - productName = gpuPeopsSoftGL; - productReference = 2BAF50930632BB1A00DB9A16 /* PeopsSoftGL.psxplugin */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 2B3E5A03062AAC1A001D796E /* Project object */ = { - isa = PBXProject; - buildConfigurationList = 717084310FDFD328004F3EB4 /* Build configuration list for PBXProject "PeopsSoftGPU" */; - hasScannedForEncodings = 1; - mainGroup = 2B3E59FF062AAC1A001D796E; - productRefGroup = 2B3E5A46062AACF3001D796E /* Products */; - projectDirPath = ""; - targets = ( - 2BAF50920632BB1A00DB9A16 /* gpuPeopsSoftGL */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 2BAF508F0632BB1A00DB9A16 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2B959DE106342C31000F2A2D /* NetSfPeopsSoftGPUInterface.nib in Resources */, - 2B038C07069183300082466B /* InfoPlist.strings in Resources */, - 2B038D2306918AA80082466B /* Info.plist in Resources */, - 2BD2E829077AFC2C00657C69 /* NetSfPeopsSoftGPUConfig.nib in Resources */, - 2BD2E769077AF53E00657C69 /* Credits.rtf in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 2BAF50900632BB1A00DB9A16 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2B959DC106342C22000F2A2D /* drawgl.m in Sources */, - 2B959DCD06342C24000F2A2D /* PluginGLView.m in Sources */, - 2B959DD506342C25000F2A2D /* PluginWindowController.m in Sources */, - 2B957EB10635DFE400543905 /* PluginWindow.m in Sources */, - 2BB260A90777462E00F6854C /* PluginConfigController.m in Sources */, - 71E9EC06109F24E700E98D1D /* fps.c in Sources */, - 71E9EC08109F24E700E98D1D /* gpu.c in Sources */, - 71E9EC0B109F24E700E98D1D /* key.c in Sources */, - 71E9EC0D109F24E700E98D1D /* menu.c in Sources */, - 71E9EC0F109F24E700E98D1D /* prim.c in Sources */, - 71E9EC11109F24E700E98D1D /* soft.c in Sources */, - 71E9EC14109F24E700E98D1D /* zn.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 2B038C05069183300082466B /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 2B038C06069183300082466B /* English */, - ); - name = InfoPlist.strings; - sourceTree = "<group>"; - }; - 2BD2E767077AF53E00657C69 /* Credits.rtf */ = { - isa = PBXVariantGroup; - children = ( - 2BD2E768077AF53E00657C69 /* English */, - ); - name = Credits.rtf; - sourceTree = "<group>"; - }; - 2BD2E828077AFC2C00657C69 /* NetSfPeopsSoftGPUConfig.nib */ = { - isa = PBXVariantGroup; - children = ( - 2B371FBB0773859200B1DC0B /* English */, - ); - name = NetSfPeopsSoftGPUConfig.nib; - sourceTree = "<group>"; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 7170842D0FDFD328004F3EB4 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEBUGGING_SYMBOLS = YES; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = 1; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = ""; - GCC_PREPROCESSOR_DEFINITIONS = ( - _MACGL, - _DARWIN, - ); - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins"; - LIBRARY_STYLE = BUNDLE; - OPTIMIZATION_CFLAGS = "-finline-functions -finline-limit=1600 -fomit-frame-pointer -fno-exceptions -funroll-loops -falign-loops=16 -ffast-math"; - OTHER_CFLAGS = "-finline-functions"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = PeopsSoftGL; - SECTORDER_FLAGS = ""; - SYMROOT = ../../build; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = psxplugin; - }; - name = Development; - }; - 7170842E0FDFD328004F3EB4 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - DEBUGGING_SYMBOLS = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = ""; - GCC_OPTIMIZATION_LEVEL = 3; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = ""; - GCC_PREPROCESSOR_DEFINITIONS = ( - _MACGL, - _DARWIN, - ); - GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; - GCC_WARN_UNKNOWN_PRAGMAS = NO; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(USER_LIBRARY_DIR)/Playstation Emulator Plugins"; - LIBRARY_STYLE = BUNDLE; - OPTIMIZATION_CFLAGS = "-finline-functions -finline-limit=1600 -fomit-frame-pointer -fno-exceptions -funroll-loops -falign-loops=16 -ffast-math"; - OTHER_LDFLAGS = ( - "-framework", - Foundation, - "-framework", - AppKit, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = PeopsSoftGL; - SECTORDER_FLAGS = ""; - SYMROOT = ../../build; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - WRAPPER_EXTENSION = psxplugin; - ZERO_LINK = NO; - }; - name = Deployment; - }; - 717084320FDFD328004F3EB4 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_MODEL_TUNING = ""; - HEADER_SEARCH_PATHS = ( - ../../../plugins/dfxvideo, - ../../../libpcsxcore, - ); - }; - name = Development; - }; - 717084330FDFD328004F3EB4 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_MODEL_TUNING = ""; - HEADER_SEARCH_PATHS = ( - ../../../plugins/dfxvideo, - ../../../libpcsxcore, - ); - }; - name = Deployment; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7170842C0FDFD328004F3EB4 /* Build configuration list for PBXNativeTarget "gpuPeopsSoftGL" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7170842D0FDFD328004F3EB4 /* Development */, - 7170842E0FDFD328004F3EB4 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Development; - }; - 717084310FDFD328004F3EB4 /* Build configuration list for PBXProject "PeopsSoftGPU" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 717084320FDFD328004F3EB4 /* Development */, - 717084330FDFD328004F3EB4 /* Deployment */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Development; - }; -/* End XCConfigurationList section */ - }; - rootObject = 2B3E5A03062AAC1A001D796E /* Project object */; -} diff --git a/macosx/plugins/DFXVideo/macsrc/ExtendedKeys.h b/macosx/plugins/DFXVideo/macsrc/ExtendedKeys.h deleted file mode 100644 index 1b6475b..0000000 --- a/macosx/plugins/DFXVideo/macsrc/ExtendedKeys.h +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef __EXTENDED_KEYS_H__ -#define __EXTENDED_KEYS_H__ - -enum { - PSX_FREEZE_KEY = 0xFFBE/*XK_F1*/, - PSX_NEXT_FREEZE_SLOT_KEY = 0xFFBF/*XK_F2*/, - PSX_DEFROST_KEY = 0xFFC0/*XK_F3*/, - PSX_SHOW_FREEZE_PIC_KEY = 0xFFC1/*XK_F4*/, - PSX_SIO_ALWAYS_ON_KEY = 0xFFC2/*XK_F5*/, - PSX_BW_MDEC_KEY = 0xFFC3/*XK_F6*/, - PSX_XA_AUDIO_ON_KEY = 0xFFC4/*XK_F7*/, - PSX_SNAPSHOT_KEY = 0xFFC5/*XK_F8*/, - PSX_OPEN_SHELL_KEY = 0xFFC6/*XK_F9*/, - PSX_CLOSE_SHELL_KEY = 0xFFC7/*XK_F10*/, - - PSX_STOP_KEY = 0xFF1B/*XK_Escape*/, - - GPU_FULLSCREEN_KEY = 0x0100, - GPU_FPS_DISPLAY_KEY = 0xFFFF/*XK_Delete*/ -}; - -#endif //__EXTENDED_KEYS_H__ diff --git a/macosx/plugins/DFXVideo/macsrc/PluginConfigController.h b/macosx/plugins/DFXVideo/macsrc/PluginConfigController.h deleted file mode 100644 index 0e73441..0000000 --- a/macosx/plugins/DFXVideo/macsrc/PluginConfigController.h +++ /dev/null @@ -1,26 +0,0 @@ -/* NetSfPeopsSoftGPUPluginConfigController */ - -#define PluginConfigController NetSfPeopsSoftGPUPluginConfigController - -#import <Cocoa/Cocoa.h> - -@interface PluginConfigController : NSWindowController -{ - IBOutlet NSControl *autoFullScreen; - IBOutlet NSPopUpButton *ditherMode; - IBOutlet NSControl *fpsCounter; - IBOutlet NSControl *frameSkipping; - IBOutlet NSControl *hackEnable; - IBOutlet NSView *hacksView; - IBOutlet NSControl *vSync; - - NSMutableDictionary *keyValues; -} -- (IBAction)cancel:(id)sender; -- (IBAction)ok:(id)sender; -- (IBAction)reset:(id)sender; -- (IBAction)hackToggle:(id)sender; - -- (void)loadValues; - -@end diff --git a/macosx/plugins/DFXVideo/macsrc/PluginConfigController.m b/macosx/plugins/DFXVideo/macsrc/PluginConfigController.m deleted file mode 100644 index 2d3e667..0000000 --- a/macosx/plugins/DFXVideo/macsrc/PluginConfigController.m +++ /dev/null @@ -1,216 +0,0 @@ -#import "PluginConfigController.h" -#include "gpu.h" -#include "cfg.h" -#include "menu.h" -#include "externals.h" - -#define APP_ID @"net.sf.peops.SoftGpuGLPlugin" -#define PrefsKey APP_ID @" Settings" - -static PluginConfigController *windowController; -char * pConfigFile=NULL; - -void AboutDlgProc() -{ - // 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]]; -} - - -void SoftDlgProc() -{ - NSWindow *window; - - if (windowController == nil) { - windowController = [[PluginConfigController alloc] initWithWindowNibName:@"NetSfPeopsSoftGPUConfig"]; - } - window = [windowController window]; - - /* load values */ - [windowController loadValues]; - - [window center]; - [window makeKeyAndOrderFront:nil]; -} - -void ReadConfig(void) -{ - NSDictionary *keyValues; - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys: - [[NSMutableDictionary alloc] initWithObjectsAndKeys: - [NSNumber numberWithBool:NO], @"FPS Counter", - [NSNumber numberWithBool:NO], @"Auto Full Screen", - [NSNumber numberWithBool:NO], @"Frame Skipping", - [NSNumber numberWithBool:YES], @"Frame Limit", - [NSNumber numberWithBool:NO], @"VSync", - [NSNumber numberWithBool:NO], @"Enable Hacks", - [NSNumber numberWithInt:1], @"Dither Mode", - [NSNumber numberWithLong:0], @"Hacks", - nil], PrefsKey, - nil]]; - - keyValues = [defaults dictionaryForKey:PrefsKey]; - - iShowFPS = [[keyValues objectForKey:@"FPS Counter"] boolValue]; - iWindowMode = [[keyValues objectForKey:@"Auto Full Screen"] boolValue] ? 0 : 1; - UseFrameSkip = [[keyValues objectForKey:@"Frame Skipping"] boolValue]; - UseFrameLimit = [[keyValues objectForKey:@"Frame Limit"] boolValue]; - //??? = [[keyValues objectForKey:@"VSync"] boolValue]; - iUseFixes = [[keyValues objectForKey:@"Enable Hacks"] boolValue]; - - iUseDither = [[keyValues objectForKey:@"Dither Mode"] intValue]; - dwCfgFixes = [[keyValues objectForKey:@"Hacks"] longValue]; - - iResX = 640; - iResY = 480; - iUseNoStretchBlt = 1; - - fFrameRate = 60; - iFrameLimit = 2; - - if (iShowFPS) - ulKeybits|=KEY_SHOWFPS; - else - ulKeybits&=~KEY_SHOWFPS; - - // additional checks - if(!iColDepth) iColDepth=32; - if(iUseFixes) dwActFixes=dwCfgFixes; - else dwActFixes=0; - SetFixes(); - - if(iFrameLimit==2) SetAutoFrameCap(); - bSkipNextFrame = FALSE; - - szDispBuf[0]=0; - BuildDispMenu(0); -} - -@implementation PluginConfigController - -- (IBAction)cancel:(id)sender -{ - [self close]; -} - -- (IBAction)ok:(id)sender -{ - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - NSMutableDictionary *writeDic = [NSMutableDictionary dictionaryWithDictionary:keyValues]; - [writeDic setObject:[NSNumber numberWithInt:[fpsCounter intValue]] forKey:@"FPS Counter"]; - [writeDic setObject:[NSNumber numberWithInt:[autoFullScreen intValue]] forKey:@"Auto Full Screen"]; - [writeDic setObject:[NSNumber numberWithInt:[frameSkipping intValue]] forKey:@"Frame Skipping"]; - //[writeDic setObject:[NSNumber numberWithInt:[frameLimit intValue]] forKey:@"Frame Limit"]; - [writeDic setObject:[NSNumber numberWithInt:[vSync intValue]] forKey:@"VSync"]; - [writeDic setObject:[NSNumber numberWithInt:[hackEnable intValue]] forKey:@"Enable Hacks"]; - - [writeDic setObject:[NSNumber numberWithInt:[ditherMode indexOfSelectedItem]] forKey:@"Dither Mode"]; - - unsigned long hackValues = 0; - int i; - NSArray *views = [hacksView subviews]; - for (i=0; i<[views count]; i++) { - NSView *control = [views objectAtIndex:i]; - if ([control isKindOfClass:[NSButton class]]) { - hackValues |= [(NSControl *)control intValue] << ([control tag] - 1); - } - } - - [writeDic setObject:[NSNumber numberWithLong:hackValues] forKey:@"Hacks"]; - - // 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]; -} - -- (IBAction)hackToggle:(id)sender -{ - BOOL enable = [sender intValue] ? YES : NO; - int i; - NSArray *views = [hacksView subviews]; - - for (i=0; i<[views count]; i++) { - NSView *control = [views objectAtIndex:i]; - if ([control isKindOfClass:[NSButton class]]) { - [(NSControl *)control setEnabled:enable]; - } - } -} - -- (void)loadValues -{ - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - ReadConfig(); - - /* load from preferences */ - [keyValues release]; - keyValues = [[defaults dictionaryForKey:PrefsKey] retain]; - - [fpsCounter setIntValue:[[keyValues objectForKey:@"FPS Counter"] intValue]]; - [autoFullScreen setIntValue:[[keyValues objectForKey:@"Auto Full Screen"] intValue]]; - [frameSkipping setIntValue:[[keyValues objectForKey:@"Frame Skipping"] intValue]]; - [vSync setIntValue:[[keyValues objectForKey:@"VSync"] intValue]]; - [hackEnable setIntValue:[[keyValues objectForKey:@"Enable Hacks"] intValue]]; - - [ditherMode selectItemAtIndex:[[keyValues objectForKey:@"Dither Mode"] intValue]]; - - unsigned long hackValues = [[keyValues objectForKey:@"Hacks"] longValue]; - - int i; - NSArray *views = [hacksView subviews]; - for (i=0; i<[views count]; i++) { - NSView *control = [views objectAtIndex:i]; - if ([control isKindOfClass:[NSButton class]]) { - [(NSControl *)control setIntValue:(hackValues >> ([control tag] - 1)) & 1]; - } - } - - [self hackToggle:hackEnable]; -} - -- (void)awakeFromNib -{ - hacksView = [[hacksView subviews] objectAtIndex:0]; -} - -@end diff --git a/macosx/plugins/DFXVideo/macsrc/PluginGLView.h b/macosx/plugins/DFXVideo/macsrc/PluginGLView.h deleted file mode 100644 index fea3b89..0000000 --- a/macosx/plugins/DFXVideo/macsrc/PluginGLView.h +++ /dev/null @@ -1,63 +0,0 @@ -/*************************************************************************** - PluginGLView.h - PeopsSoftGPU - - Created by Gil Pedersen on Sun April 18 2004. - Copyright (c) 2004 Gil Pedersen. - ***************************************************************************/ - -/*************************************************************************** - * * - * 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. * - * * - ***************************************************************************/ - -#define PluginGLView NetSfPeopsSoftGPUPluginGLView - -#import <Cocoa/Cocoa.h> -#import <OpenGL/gl.h> -#include <sys/time.h> - -#define IMAGE_COUNT 2 - -@interface PluginGLView : NSOpenGLView -{ - GLubyte *image_base; - GLubyte *image[IMAGE_COUNT]; - - GLint buffers; - //GLint frame_rate; - - GLenum texture_hint; - GLboolean rect_texture; - GLboolean client_storage; - GLboolean texture_range; - - struct timeval cycle_time; - - NSLock *glLock; - BOOL noDisplay; - BOOL drawBG; - - int image_width; - int image_height; - int image_width2; - int image_height2; - int image_depth; - int image_type; - float image_tx; - float image_ty; - int whichImage; - int isFullscreen; -} - -- (void)renderScreen; -- (void)swapBuffer; -- (void)clearBuffer:(BOOL)display; -- (void)loadTextures: (GLboolean)first; - -@end diff --git a/macosx/plugins/DFXVideo/macsrc/PluginGLView.m b/macosx/plugins/DFXVideo/macsrc/PluginGLView.m deleted file mode 100644 index 96b05ff..0000000 --- a/macosx/plugins/DFXVideo/macsrc/PluginGLView.m +++ /dev/null @@ -1,692 +0,0 @@ -/*************************************************************************** - PluginGLView.m - PeopsSoftGPU - - Created by Gil Pedersen on Sun April 18 2004. - Copyright (c) 2004 Gil Pedersen. - ***************************************************************************/ - -/*************************************************************************** - * * - * 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. * - * * - ***************************************************************************/ - -#import <OpenGL/gl.h> -#import <OpenGL/glext.h> -#import <OpenGL/glu.h> -#import <GLUT/glut.h> -#import <Carbon/Carbon.h> -#import "PluginGLView.h" -#include "externals.h" -#undef BOOL -#include "gpu.h" -#include "swap.h" - -#include <time.h> -extern time_t tStart; - -static int mylog2(int val) -{ - int i; - for (i=1; i<31; i++) - if (val <= (1 << i)) - return (1 << i); - - return -1; -} - -#if 0 -void BlitScreen16NS(unsigned char * surf,long x,long y) -{ - unsigned long lu; - unsigned short row,column; - unsigned short dx=PreviousPSXDisplay.Range.x1>>1; - unsigned short dy=PreviousPSXDisplay.DisplayMode.y; - unsigned short LineOffset,SurfOffset; - long lPitch=image_width<<1; - - if(PreviousPSXDisplay.Range.y0) // centering needed? - { - surf+=PreviousPSXDisplay.Range.y0*lPitch; - dy-=PreviousPSXDisplay.Range.y0; - } - - { - unsigned long * SRCPtr = (unsigned long *)(psxVuw + (y<<10) + x); - unsigned long * DSTPtr = ((unsigned long *)surf)+(PreviousPSXDisplay.Range.x0>>1); - - LineOffset = 512 - dx; - SurfOffset = (lPitch>>2) - dx; - - for(column=0;column<dy;column++) - { - for(row=0;row<dx;row++) - { - lu=GETLE16D(SRCPtr++); - - *DSTPtr++= lu;//((lu<<11)&0xf800f800)|((lu<<1)&0x7c007c0)|((lu>>10)&0x1f001f); - } - SRCPtr += LineOffset; - DSTPtr += SurfOffset; - } - } -} -#endif - -@implementation PluginGLView - -//- (id)initWithFrame:(NSRect)frameRect -- (id) initWithCoder: (NSCoder *) coder -{ - const GLubyte * strExt; - - if ((self = [super initWithCoder:coder]) == nil) - return nil; - - glLock = [[NSLock alloc] init]; - if (nil == glLock) { - [self release]; - return nil; - } - - // Init pixel format attribs - NSOpenGLPixelFormatAttribute attrs[] = - { - NSOpenGLPFAAccelerated, - NSOpenGLPFANoRecovery, - NSOpenGLPFADoubleBuffer, - 0 - }; - - // Get pixel format from OpenGL - NSOpenGLPixelFormat* pixFmt = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs]; - if (!pixFmt) - { - NSLog(@"No Accelerated OpenGL pixel format found\n"); - - NSOpenGLPixelFormatAttribute attrs2[] = - { - NSOpenGLPFANoRecovery, - 0 - }; - - // Get pixel format from OpenGL - pixFmt = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs2]; - if (!pixFmt) { - NSLog(@"No OpenGL pixel format found!\n"); - - [self release]; - return nil; - } - } - - [self setPixelFormat:[pixFmt autorelease]]; - - /* - long swapInterval = 1 ; - [[self openGLContext] - setValues:&swapInterval - forParameter:NSOpenGLCPSwapInterval]; - */ - [glLock lock]; - [[self openGLContext] makeCurrentContext]; - - // Init object members - strExt = glGetString (GL_EXTENSIONS); - texture_range = gluCheckExtension ((const unsigned char *)"GL_APPLE_texture_range", strExt) ? GL_TRUE : GL_FALSE; - texture_hint = GL_STORAGE_SHARED_APPLE ; - client_storage = gluCheckExtension ((const unsigned char *)"GL_APPLE_client_storage", strExt) ? GL_TRUE : GL_FALSE; - rect_texture = gluCheckExtension((const unsigned char *)"GL_EXT_texture_rectangle", strExt) ? GL_TRUE : GL_FALSE; - - // Setup some basic OpenGL stuff - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); - glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - glClearColor(0.0f, 0.0f, 0.0f, 1.0f); - glClear(GL_COLOR_BUFFER_BIT); - - [NSOpenGLContext clearCurrentContext]; - [glLock unlock]; - - image_width = 1024; - image_height = 512; - image_depth = 16; - - image_type = GL_UNSIGNED_SHORT_1_5_5_5_REV; - image_base = (GLubyte *) calloc(((IMAGE_COUNT * image_width * image_height) / 3) * 4, image_depth >> 3); - if (image_base == nil) { - [self release]; - return nil; - } - - // Create and load textures for the first time - [self loadTextures:GL_TRUE]; - - // Init fps timer - //gettimeofday(&cycle_time, NULL); - - drawBG = YES; - - // Call for a redisplay - noDisplay = YES; - PSXDisplay.Disabled = 1; - [self setNeedsDisplay:true]; - - return self; -} - -- (void)dealloc -{ - int i; - - [glLock lock]; - - [[self openGLContext] makeCurrentContext]; - for(i = 0; i < IMAGE_COUNT; i++) - { - GLuint dt = i+1; - glDeleteTextures(1, &dt); - } - if(texture_range) glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT, IMAGE_COUNT * image_width * image_height * (image_depth >> 3), image_base); - - [NSOpenGLContext clearCurrentContext]; - [glLock unlock]; - [glLock release]; - - if (image_base) - free(image_base); - - [super dealloc]; -} - -- (BOOL)isOpaque -{ - return YES; -} - -- (BOOL)acceptsFirstResponder -{ - return NO; -} - -- (void)drawRect:(NSRect)aRect -{ - // Check if an update has occured to the buffer - if ([self lockFocusIfCanDraw]) { - - // Make this context current - if (drawBG) { - [[NSColor blackColor] setFill]; - [NSBezierPath fillRect:[self visibleRect]]; - } - - //glFinish() ; - // Swap buffer to screen - //[[self openGLContext] flushBuffer]; - - [self unlockFocus]; - } -} - -#if 0 -- (void)update // moved or resized -{ - NSRect rect; - - [super update]; - - [[self openGLContext] makeCurrentContext]; - [[self openGLContext] update]; - - rect = [self bounds]; - - glViewport(0, 0, (int) rect.size.width, (int) rect.size.height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - //[self setNeedsDisplay:true]; -} -#endif - -- (void)reshape // scrolled, moved or resized -{ - [glLock lock]; - - NSOpenGLContext *oglContext = [self openGLContext]; - NSRect rect; - - [super reshape]; - - [oglContext makeCurrentContext]; - [oglContext update]; - - rect = [[oglContext view] bounds]; - - glViewport(0, 0, (int) rect.size.width, (int) rect.size.height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - drawBG = YES; - - [NSOpenGLContext clearCurrentContext]; - -// [self setNeedsDisplay:true]; - - [self renderScreen]; - [glLock unlock]; -} - -- (void)renderScreen -{ - int bufferIndex = whichImage; - - if (1/*[glLock tryLock]*/) { - // Make this context current - [[self openGLContext] makeCurrentContext]; - if (PSXDisplay.Disabled) { - glClear(GL_COLOR_BUFFER_BIT); - } else { - // Bind, update and draw new image - if(rect_texture) - { - glBindTexture(GL_TEXTURE_RECTANGLE_EXT, bufferIndex+1); - - glTexSubImage2D(GL_TEXTURE_RECTANGLE_EXT, 0, 0, 0, image_width, image_height, GL_BGRA, image_type, image[bufferIndex]); - glBegin(GL_QUADS); - glTexCoord2f(0.0f, 0.0f); - glVertex2f(-1.0f, 1.0f); - - glTexCoord2f(0.0f, image_height); - glVertex2f(-1.0f, -1.0f); - - glTexCoord2f(image_width, image_height); - glVertex2f(1.0f, -1.0f); - - glTexCoord2f(image_width, 0.0f); - glVertex2f(1.0f, 1.0f); - glEnd(); - } - else - { - glBindTexture(GL_TEXTURE_2D, whichImage+1); - - glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, image_width2, image_height2, GL_BGRA, image_type, image[bufferIndex]); - glBegin(GL_QUADS); - glTexCoord2f(0.0f, 0.0f); - glVertex2f(-1.0f, 1.0f); - - glTexCoord2f(0.0f, image_ty); - glVertex2f(-1.0f, -1.0f); - - glTexCoord2f(image_tx, image_ty); - glVertex2f(1.0f, -1.0f); - - glTexCoord2f(image_tx, 0.0f); - glVertex2f(1.0f, 1.0f); - glEnd(); - } - } - - // FPS Display - if(ulKeybits&KEY_SHOWFPS) - { - int len, i; - if(szDebugText[0] && ((time(NULL) - tStart) < 2)) - { - strncpy(szDispBuf, szDebugText, 63); - } - else - { - szDebugText[0]=0; - if (szMenuBuf) { - strncat(szDispBuf, szMenuBuf, 63 - strlen(szDispBuf)); - } - } - - NSRect rect = [[[self openGLContext] view] bounds]; - len = (int) strlen(szDispBuf); - - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - - gluOrtho2D(0.0, rect.size.width, 0.0, rect.size.height); - glDisable(rect_texture ? GL_TEXTURE_RECTANGLE_EXT : GL_TEXTURE_2D); - - glColor4f(0.0, 0.0, 0.0, 0.5); - glRasterPos2f(3.0, rect.size.height - 14.0); - for (i = 0; i < len; i++) { - glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, szDispBuf[i]); - } - - glColor3f(1.0, 1.0, 1.0); - glRasterPos2f(2.0, rect.size.height - 13.0); - for (i = 0; i < len; i++) { - glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, szDispBuf[i]); - } - - - glEnable(rect_texture ? GL_TEXTURE_RECTANGLE_EXT : GL_TEXTURE_2D); - glPopMatrix(); - } - - [[self openGLContext] flushBuffer]; - [NSOpenGLContext clearCurrentContext]; - //[glLock unlock]; - } -} - -- (void)loadTextures:(GLboolean)first -{ - GLint i; - - //[glLock lock]; - [[self openGLContext] makeCurrentContext]; - - /* - printf("Range.x0=%i\n" - "Range.x1=%i\n" - "Range.y0=%i\n" - "Range.y1=%i\n", - PreviousPSXDisplay.Range.x0, - PreviousPSXDisplay.Range.x1, - PreviousPSXDisplay.Range.y0, - PreviousPSXDisplay.Range.y1); - - printf("DisplayMode.x=%d\n" - "DisplayMode.y=%d\n", - PreviousPSXDisplay.DisplayMode.x, - PreviousPSXDisplay.DisplayMode.y); - - printf("DisplayPosition.x=%i\n" - "DisplayPosition.y=%i\n", - PreviousPSXDisplay.DisplayPosition.x, - PreviousPSXDisplay.DisplayPosition.y); - - printf("DisplayEnd.x=%i\n" - "DisplayEnd.y=%i\n", - PreviousPSXDisplay.DisplayEnd.x, - PreviousPSXDisplay.DisplayEnd.y); - - printf("Double=%i\n" - "Height=%i\n", - PreviousPSXDisplay.Double, - PreviousPSXDisplay.Height); - - printf("Disabled=%i\n", PreviousPSXDisplay.Disabled); - */ - - image_width = PreviousPSXDisplay.Range.x1; - image_height = PreviousPSXDisplay.DisplayMode.y; - if (PSXDisplay.RGB24) { - image_depth = 32; - image_type = GL_UNSIGNED_INT_8_8_8_8_REV; - } else { - image_depth = 16; - image_type = GL_UNSIGNED_SHORT_1_5_5_5_REV; - //image_width >>= 1; - } - - if (image_width * image_height * (image_depth >> 3) > ((1024*512*2)/3)*4) - printf("Fatal error: desired dimension are too large! (%ix%i %ibpp)\n", - image_width, image_height, image_depth); - - for(i = 0; i < IMAGE_COUNT; i++) - image[i] = image_base + i * image_width * image_height * (image_depth >> 3); - - if(rect_texture) - { - image_width2 = image_width; - image_height2 = image_height; - image_tx = (float)image_width; - image_ty = (float)image_height; - - if(texture_range) glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT, IMAGE_COUNT * image_width * image_height * (image_depth >> 3), image_base); - else glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT, 0, NULL); - - for(i = 0; i < IMAGE_COUNT; i++) - { - if(!first) - { - GLuint dt = i+1; - glDeleteTextures(1, &dt); - } - - glDisable(GL_TEXTURE_2D); - glEnable(GL_TEXTURE_RECTANGLE_EXT); - glBindTexture(GL_TEXTURE_RECTANGLE_EXT, i+1); - - glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_STORAGE_HINT_APPLE , texture_hint); - glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, client_storage); - glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); - - glTexImage2D(GL_TEXTURE_RECTANGLE_EXT, 0, GL_RGBA, image_width, - image_height, 0, GL_BGRA, image_type, image[i]); - } - } - else - { - image_width2 = mylog2(image_width); - image_height2 = mylog2(image_height); - image_tx = (float)image_width/(float)image_width2; - image_ty = (float)image_height/(float)image_height2; - - glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT, 0, NULL); - if(texture_range) glTextureRangeAPPLE(GL_TEXTURE_2D, IMAGE_COUNT * image_width2 * image_height2 * (image_depth >> 3), image_base); - else glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL); - - for(i = 0; i < IMAGE_COUNT; i++) - { - if(!first) - { - GLuint dt = i+1; - glDeleteTextures(1, &dt); - } - - glDisable(GL_TEXTURE_RECTANGLE_EXT); - glEnable(GL_TEXTURE_2D); - glBindTexture(GL_TEXTURE_2D, i+1); - - //if(texture_range) glTextureRangeAPPLE(GL_TEXTURE_2D, IMAGE_COUNT * image_width2 * image_height2 * (image_depth >> 3), image_base); - //else glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL); - - glTexParameteri(GL_TEXTURE_RECTANGLE_EXT, GL_TEXTURE_STORAGE_HINT_APPLE , texture_hint); - glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, client_storage); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); - - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image_width2, - image_height2, 0, GL_BGRA, image_type, image[i]); - } - } - - [NSOpenGLContext clearCurrentContext]; - //[glLock unlock]; -} - -- (void)swapBuffer -{ - unsigned char * surf; - long x = PSXDisplay.DisplayPosition.x; - long y = PSXDisplay.DisplayPosition.y; - unsigned long lu; - unsigned short row,column; - unsigned short dx=(unsigned short)PSXDisplay.DisplayEnd.x;//PreviousPSXDisplay.Range.x1; - unsigned short dy=(unsigned short)PSXDisplay.DisplayEnd.y;//PreviousPSXDisplay.DisplayMode.y; - long lPitch; - - //printf("y=%i",PSXDisplay.DisplayPosition.y); - - if ([glLock tryLock]) { - // make sure the texture area is ready to be written to - glFinishObjectAPPLE(GL_TEXTURE, 2-whichImage); - - if ((image_width != PreviousPSXDisplay.Range.x1) || - (image_height != PreviousPSXDisplay.DisplayMode.y) || - ((PSXDisplay.RGB24 ? 32 : 16) != image_depth)) { - [self loadTextures:NO]; - } - - surf = image[1-whichImage]; - lPitch=image_width2<<(image_depth >> 4); - - if(PreviousPSXDisplay.Range.y0) // centering needed? - { - surf+=PreviousPSXDisplay.Range.y0*lPitch; - dy-=PreviousPSXDisplay.Range.y0; - } - - if(PSXDisplay.RGB24) - { - unsigned char * pD;unsigned int startxy; - - surf+=PreviousPSXDisplay.Range.x0<<2; - - for(column=0;column<dy;column++) - { - startxy = (1024 * (column + y)) + x; - pD = (unsigned char *)&psxVuw[startxy]; - - row = 0; - // make sure the reads are aligned - while ((int)pD & 0x3) { - *((unsigned long *)((surf)+(column*lPitch)+(row<<2))) = - (*(pD+0)<<16)|(*(pD+1)<<8)|*(pD+2); - - pD+=3; - row++; - } - - for(;row<dx;row+=4) - { - unsigned long lu1 = *((unsigned long *)pD); - unsigned long lu2 = *((unsigned long *)pD+1); - unsigned long lu3 = *((unsigned long *)pD+2); - unsigned long *dst = ((unsigned long *)((surf)+(column*lPitch)+(row<<2))); -#ifdef __POWERPC__ - *(dst)= - (((lu1>>24)&0xff)<<16)|(((lu1>>16)&0xff)<<8)|(((lu1>>8)&0xff)); - *(dst+1)= - (((lu1>>0)&0xff)<<16)|(((lu2>>24)&0xff)<<8)|(((lu2>>16)&0xff)); - *(dst+2)= - (((lu2>>8)&0xff)<<16)|(((lu2>>0)&0xff)<<8)|(((lu3>>24)&0xff)); - *(dst+3)= - (((lu3>>16)&0xff)<<16)|(((lu3>>8)&0xff)<<8)|(((lu3>>0)&0xff)); -#else - *(dst)= - (((lu1>>0)&0xff)<<16)|(((lu1>>8)&0xff)<<8)|(((lu1>>16)&0xff)); - *(dst+1)= - (((lu1>>24)&0xff)<<16)|(((lu2>>0)&0xff)<<8)|(((lu2>>8)&0xff)); - *(dst+2)= - (((lu2>>16)&0xff)<<16)|(((lu2>>24)&0xff)<<8)|(((lu3>>0)&0xff)); - *(dst+3)= - (((lu3>>8)&0xff)<<16)|(((lu3>>16)&0xff)<<8)|(((lu3>>24)&0xff)); -#endif - pD+=12; - } - - //for(;row<dx;row+=4) - /*while (pD&0x3) { - *((unsigned long *)((surf)+(column*lPitch)+(row<<2)))= - (*(pD+0)<<16)|(*(pD+1)<<8)|(*(pD+2)&0xff)); - pD+=3; - row++; - }*/ - } - } - else - { - int LineOffset,SurfOffset; - unsigned long * SRCPtr = (unsigned long *)(psxVuw + (y << 10) + x); - unsigned long * DSTPtr = - ((unsigned long *)surf) + (PreviousPSXDisplay.Range.x0 >> 1); - - dx >>= 1; - - LineOffset = 512 - dx; - SurfOffset = (lPitch >> 2) - dx; - - for(column=0;column<dy;column++) - { - for(row=0;row<dx;row++) - { -#ifdef __POWERPC__ - lu=GETLE16D(SRCPtr++); -#else - lu=*SRCPtr++; -#endif - *DSTPtr++= - ((lu << 10) & 0x7c007c00)| - ((lu) & 0x3e003e0)| - ((lu >> 10) & 0x1f001f); - } - SRCPtr += LineOffset; - DSTPtr += SurfOffset; - } - } - - // Swap image buffer - whichImage = 1 - whichImage; - - [self renderScreen]; - [glLock unlock]; - } -} - -- (void)clearBuffer:(BOOL)display -{ - if (display == NO) { - //[[self openGLContext] makeCurrentContext]; - //glClear(GL_COLOR_BUFFER_BIT); - //[self loadTextures:NO]; - } else { - noDisplay = YES; -// [self setNeedsDisplay:true]; - } -} -/* -- (void)mouseDown:(NSEvent *)theEvent -{ - PluginWindowController *controller = [[self window] windowController]; - - static unsigned long lastTime = 0; - unsigned long time; - - time = TickCount(); - - if (lastTime != 0) { - if (time - lastTime > GetDblTime()) { - if (isFullscreen) { - [[self openGLContext] clearDrawable]; - } else { - [[self openGLContext] setFullScreen]; - } - isFullscreen = 1-isFullscreen; - lastTime = 0; - return; - } - } - - lastTime = time; -}*/ - -@end diff --git a/macosx/plugins/DFXVideo/macsrc/PluginWindow.h b/macosx/plugins/DFXVideo/macsrc/PluginWindow.h deleted file mode 100644 index 38a8dfa..0000000 --- a/macosx/plugins/DFXVideo/macsrc/PluginWindow.h +++ /dev/null @@ -1,24 +0,0 @@ -/*************************************************************************** - PluginWindow.h - PeopsSoftGPU - - Created by Gil Pedersen on Wed April 21 2004. - Copyright (c) 2004 Gil Pedersen. - ***************************************************************************/ - -/*************************************************************************** - * * - * 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. * - * * - ***************************************************************************/ - -#import <Cocoa/Cocoa.h> - -@interface NetSfPeopsSoftGPUPluginWindow : NSWindow -{ -} -@end diff --git a/macosx/plugins/DFXVideo/macsrc/PluginWindow.m b/macosx/plugins/DFXVideo/macsrc/PluginWindow.m deleted file mode 100644 index ef4737f..0000000 --- a/macosx/plugins/DFXVideo/macsrc/PluginWindow.m +++ /dev/null @@ -1,46 +0,0 @@ -/*************************************************************************** - PluginWindow.m - PeopsSoftGPU - - Created by Gil Pedersen on Wed April 21 2004. - Copyright (c) 2004 Gil Pedersen. - ***************************************************************************/ - -/*************************************************************************** - * * - * 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. * - * * - ***************************************************************************/ - -#import "PluginWindow.h" - -@implementation NetSfPeopsSoftGPUPluginWindow -/* -- (BOOL)windowShouldClose:(id)sender -{ - [[NSNotificationCenter defaultCenter] postNotificationName:@"emuWindowDidClose" object:self]; - - return YES; -}*/ - -- (void)sendEvent:(NSEvent *)theEvent -{ - int type = [theEvent type]; - if (type == NSKeyDown || type == NSKeyUp) { - if (type == NSKeyDown && [theEvent keyCode] == 53 /* escape */) { - // reroute to menu event - [[NSApp mainMenu] performKeyEquivalent:theEvent]; - } - - // ignore all key Events - return; - } - - [super sendEvent:theEvent]; -} - -@end diff --git a/macosx/plugins/DFXVideo/macsrc/PluginWindowController.h b/macosx/plugins/DFXVideo/macsrc/PluginWindowController.h deleted file mode 100644 index ff9af25..0000000 --- a/macosx/plugins/DFXVideo/macsrc/PluginWindowController.h +++ /dev/null @@ -1,41 +0,0 @@ -/*************************************************************************** - PluginWindowController.h - PeopsSoftGPU - - Created by Gil Pedersen on Mon April 11 2004. - Copyright (c) 2004 Gil Pedersen. - ***************************************************************************/ - -/*************************************************************************** - * * - * 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. * - * * - ***************************************************************************/ - -#define PluginWindowController NetSfPeopsSoftGPUPluginWindowController - -#import <Cocoa/Cocoa.h> -#import "PluginGLView.h" - -@class PluginWindowController; - -extern NSWindow *gameWindow; -extern PluginWindowController *gameController; - -@interface PluginWindowController : NSWindowController -{ - IBOutlet NSOpenGLView *glView; - - NSWindow *fullWindow; -} - -+ (id)openGameView; -- (PluginGLView *)getOpenGLView; -- (BOOL)fullscreen; -- (void)setFullscreen:(BOOL)flag; - -@end diff --git a/macosx/plugins/DFXVideo/macsrc/PluginWindowController.m b/macosx/plugins/DFXVideo/macsrc/PluginWindowController.m deleted file mode 100644 index 48262e5..0000000 --- a/macosx/plugins/DFXVideo/macsrc/PluginWindowController.m +++ /dev/null @@ -1,227 +0,0 @@ -/*************************************************************************** - PluginWindowController.m - PeopsSoftGPU - - Created by Gil Pedersen on Tue April 12 2004. - Copyright (c) 2004 Gil Pedersen. - ***************************************************************************/ - -/*************************************************************************** - * * - * 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. * - * * - ***************************************************************************/ - -#import "PluginWindowController.h" -#import "PluginWindow.h" -#import "Carbon/Carbon.h" -#include "externals.h" -#undef BOOL - -NSWindow *gameWindow; -PluginWindowController *gameController; -NSRect windowFrame; - -@implementation PluginWindowController - -+ (id)openGameView -{ - if (gameWindow == nil) { - if (gameController == nil) { - gameController = [[PluginWindowController alloc] initWithWindowNibName:@"NetSfPeopsSoftGPUInterface"]; - } - gameWindow = [gameController window]; - } - - if (windowFrame.size.width != 0) { - [gameWindow setFrame:windowFrame display:NO]; - } else { - [gameWindow center]; - } - - [gameWindow makeKeyAndOrderFront:nil]; - [gameController showWindow:nil]; - - CGDirectDisplayID display = (CGDirectDisplayID)[[[[gameWindow screen] deviceDescription] objectForKey:@"NSScreenNumber"] longValue]; - if (CGDisplayIsCaptured(display)) { - [gameController setFullscreen:YES]; - } - - return gameController; -} - -- (PluginGLView *)getOpenGLView -{ - return (PluginGLView *)glView; -} - -- (void)dealloc -{ - if (fullWindow) { - [fullWindow orderOut:self]; - [fullWindow autorelease]; - fullWindow = nil; - } - - windowFrame = [[self window] frame]; - - [super dealloc]; -} - -// forget keyDownEvents -- (void)keyDown:(NSEvent *)theEvent -{ - // Not required any more -} - -- (void)mouseDown:(NSEvent *)theEvent -{ - if ([self fullscreen]) { - [self setFullscreen:NO]; - } -} - -- (BOOL)fullscreen -{ - return (fullWindow!=nil); -} - -- (void)setFullscreen:(BOOL)flag -{ - NSWindow *window = [self window]; - NSScreen *screen = [window screen]; - CGDirectDisplayID display = (CGDirectDisplayID)[[[screen deviceDescription] objectForKey:@"NSScreenNumber"] longValue]; - - NSDisableScreenUpdates(); - - if (flag) { - if (!CGDisplayIsCaptured(display)) { - CGDisplayCapture(display); - - CGDisplayCount count = 10; - CGDirectDisplayID displays[10]; - CGGetActiveDisplayList(10, displays, &count); - if (count == 1) { - CGDisplayHideCursor(display); - CGAssociateMouseAndMouseCursorPosition(NO); - } - - //[window orderOut:self]; - } - - int width = CGDisplayPixelsWide(display); - int height = CGDisplayPixelsHigh(display); - - // assume square pixel ratio on the monitor - if ((width*3)/4 < height) { - height = (width*3)/4; - } else { - width = (height*4)/3; - } - - fullWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect((CGDisplayPixelsWide(display)-width)/2, - (CGDisplayPixelsHigh(display)-height)/2, - width, height) - styleMask:NSBorderlessWindowMask - backing:NSBackingStoreRetained - defer:NO - screen:screen]; - - //[[glView openGLContext] setFullScreen]; - [[glView openGLContext] setView:[fullWindow contentView]]; - [glView reshape]; - //[[glView openGLContext] update]; - //[fullWindow setContentView:glView]; - - [fullWindow setBackgroundColor:[NSColor blackColor]]; - [fullWindow setHasShadow:NO]; - [fullWindow setDelegate:self]; - - [fullWindow setLevel:CGShieldingWindowLevel()]; - [fullWindow makeKeyAndOrderFront:self]; - - [[self window] makeKeyAndOrderFront:self]; - } else { - CGDisplayRelease(display); - //CGReleaseAllDisplays(); - - CGAssociateMouseAndMouseCursorPosition(YES); - CGDisplayShowCursor(display); - - if (fullWindow) { - [fullWindow orderOut:self]; - [fullWindow autorelease]; - fullWindow = nil; - - [[glView openGLContext] setView:glView]; - [glView reshape]; - //[window setContentView:glView]; - } - - [[self window] makeKeyAndOrderFront:self]; - } - - NSEnableScreenUpdates(); -} - -- (BOOL)windowShouldZoom:(NSWindow *)sender toFrame:(NSRect)newFrame -{ - [self setFullscreen:YES]; - - return NO; -} - -- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)proposedFrameSize -{ - if (!(([sender resizeFlags] & NSShiftKeyMask) == NSShiftKeyMask)) { - NSRect oldSize = [sender frame]; - NSRect viewSize = [glView frame]; - - float xDiff = NSWidth(oldSize) - NSWidth(viewSize); - float yDiff = NSHeight(oldSize) - NSHeight(viewSize); - - //if ((proposedFrameSize.height / proposedFrameSize.width) < (3.0/4.0)) - // proposedFrameSize.height = ((proposedFrameSize.width - xDiff) * 3.0) / 4.0 + yDiff; - //else - proposedFrameSize.width = ((proposedFrameSize.height - yDiff) * 4.0) / 3.0 + xDiff; - } - - return proposedFrameSize; -} - -- (void)windowWillMiniaturize:(NSNotification *)aNotification -{ - [[NSNotificationCenter defaultCenter] postNotificationName:@"emuWindowWantPause" object:self]; -} - -- (void)windowDidDeminiaturize:(NSNotification *)aNotification -{ - [[NSNotificationCenter defaultCenter] postNotificationName:@"emuWindowWantResume" object:self]; -} - -//- (void)windowDidBecomeMain:(NSNotification *)aNotification -/*- (void)windowDidBecomeKey:(NSNotification *)aNotification -{ - if (iWindowMode==0) { - [self setFullscreen:YES]; - } -}*/ - -- (BOOL)windowShouldClose:(id)sender -{ - if (fullWindow) { - return NO; - } - [[NSNotificationCenter defaultCenter] postNotificationName:@"emuWindowDidClose" object:self]; - [gameController autorelease]; - gameController = nil; - gameWindow = nil; - - return YES; -} - -@end diff --git a/macosx/plugins/DFXVideo/macsrc/drawgl.m b/macosx/plugins/DFXVideo/macsrc/drawgl.m deleted file mode 100644 index 17e7647..0000000 --- a/macosx/plugins/DFXVideo/macsrc/drawgl.m +++ /dev/null @@ -1,181 +0,0 @@ -/*************************************************************************** - drawgl.m - PeopsSoftGPU - - Created by Gil Pedersen on Sun April 18 2004. - Copyright (c) 2004 Gil Pedersen. - ***************************************************************************/ - -/*************************************************************************** - * * - * 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. * - * * - ***************************************************************************/ - -#import "PluginWindowController.h" -#import "PluginGLView.h" -#include "ExtendedKeys.h" -#include "externals.h" -#include "draw.h" -#include "gpu.h" -#include "menu.h" - -//////////////////////////////////////////////////////////////////////////////////// -// misc globals -//////////////////////////////////////////////////////////////////////////////////// - -int iResX; -int iResY; -long lLowerpart; -BOOL bIsFirstFrame = TRUE; -BOOL bCheckMask=FALSE; -unsigned short sSetMask=0; -unsigned long lSetMask=0; -int iDesktopCol=16; -int iShowFPS=0; -int iWinSize; -int iUseScanLines=0; -int iUseNoStretchBlt=0; -int iFastFwd=0; -int iDebugMode=0; -int iFVDisplay=0; -PSXPoint_t ptCursorPoint[8]; -unsigned short usCursorActive=0; -char * Xpixels; -char * pCaptionText; - -//static PluginWindowController *windowController; -static PluginGLView *glView; - -//////////////////////////////////////////////////////////////////////// - -void DoBufferSwap(void) // SWAP BUFFERS -{ -#if 1 - [glView swapBuffer]; -#else - static long long lastTickCount = -1; - static int skipCount = 0; - long long microTickCount; - long deltaTime; - - Microseconds((struct UnsignedWide *)µTickCount); - deltaTime = (long)(microTickCount - lastTickCount); - if (deltaTime <= (PSXDisplay.PAL ? 1000000/50 : 100000000 / 5994) || - skipCount >= 3) { - skipCount = 0; - [glView swapBuffer]; - } else { - skipCount++; - } - NSLog(@"count: %i", deltaTime); - lastTickCount = microTickCount; -#endif -} - - -//////////////////////////////////////////////////////////////////////// - -void DoClearScreenBuffer(void) // CLEAR DX BUFFER -{ - // clear the screen, and DON'T flush it - [glView clearBuffer:NO]; -} - - -//////////////////////////////////////////////////////////////////////// - -void DoClearFrontBuffer(void) // CLEAR DX BUFFER -{ - // clear the screen, and flush it - [glView clearBuffer:YES]; -} - -//////////////////////////////////////////////////////////////////////// - -unsigned long ulInitDisplay(void) // OPEN GAME WINDOW -{ - bUsingTWin=FALSE; - - InitMenu(); - - bIsFirstFrame = FALSE; - - if(iShowFPS) - { - //iShowFPS=0; - ulKeybits|=KEY_SHOWFPS; - szDispBuf[0]=0; - BuildDispMenu(0); - } - - PluginWindowController *windowController = [PluginWindowController openGameView]; - glView = [windowController getOpenGLView]; - - [[windowController window] setTitle:[NSString stringWithCString:pCaptionText]]; - - return (unsigned long)[windowController window]; -} - - -//////////////////////////////////////////////////////////////////////// - -void CloseDisplay(void) -{ - if (gameController) { - [gameController close]; - [gameController release]; - gameController = nil; - gameWindow = nil; - } -} - - -//////////////////////////////////////////////////////////////////////// - -void CreatePic(unsigned char * pMem) -{ -} - - -/////////////////////////////////////////////////////////////////////////////////////// - -void DestroyPic(void) -{ -} - - -/////////////////////////////////////////////////////////////////////////////////////// - -void DisplayPic(void) -{ -} - - -/////////////////////////////////////////////////////////////////////////////////////// - -void ShowGpuPic(void) -{ - // this is the default implementation... -} - -/////////////////////////////////////////////////////////////////////////////////////// - -void ShowTextGpuPic(void) -{ - // this is the default implementation... -} - - -void HandleKey(int keycode) -{ - switch (keycode) { - case GPU_FULLSCREEN_KEY: - [gameController setFullscreen:![gameController fullscreen]]; - break; - } -} |