]> git.sesse.net Git - vlc/commitdiff
macosx: completed audio effects panel implementation
authorFelix Paul Kühne <fkuehne@videolan.org>
Mon, 25 Apr 2011 22:31:47 +0000 (00:31 +0200)
committerFelix Paul Kühne <fkuehne@videolan.org>
Mon, 25 Apr 2011 22:32:02 +0000 (00:32 +0200)
NEWS
extras/package/macosx/Resources/English.lproj/AudioEffects.nib/designable.nib
extras/package/macosx/Resources/English.lproj/AudioEffects.nib/keyedobjects.nib
modules/gui/macosx/AudioEffects.h
modules/gui/macosx/AudioEffects.m
modules/gui/macosx/intf.m

diff --git a/NEWS b/NEWS
index 9d6001aaf839306af4d32298c986060e27ca40f6..8566d5e8b2584492bc4cdfca673cbfaf8c11a264 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -55,6 +55,7 @@ Interfaces
  * Skins2: fullscreen controller support, relative placement support
    and important cleanups and optimisations
  * ncurses: heavy refactor of the complete interface
+ * Mac OS X: new Audio Effects panel adding Compressor and Spatializer filters
  * The rc and telnet lua interfaces were merged into a new "cli" interface
  * removal of old telnet interface in favor of the new lua CLI
  * removal of http interface in favor of luahttp
index 777459037feb5562292d2aaafe4e0e46913c360e..83b1f81092594cf3aeac4773a56612645629d7d7 100644 (file)
@@ -2,10 +2,10 @@
 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
   <data>
     <int key="IBDocument.SystemTarget">1060</int>
-    <string key="IBDocument.SystemVersion">11A419</string>
+    <string key="IBDocument.SystemVersion">11A430e</string>
     <string key="IBDocument.InterfaceBuilderVersion">851</string>
-    <string key="IBDocument.AppKitVersion">1115.2</string>
-    <string key="IBDocument.HIToolboxVersion">549.00</string>
+    <string key="IBDocument.AppKitVersion">1117</string>
+    <string key="IBDocument.HIToolboxVersion">552.00</string>
     <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
       <bool key="EncodedWithXMLCoder">YES</bool>
       <object class="NSArray" key="dict.sortedKeys">
@@ -21,7 +21,7 @@
     </object>
     <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
       <bool key="EncodedWithXMLCoder">YES</bool>
-      <integer value="84"/>
+      <integer value="86"/>
     </object>
     <object class="NSArray" key="IBDocument.PluginDependencies">
       <bool key="EncodedWithXMLCoder">YES</bool>
@@ -69,7 +69,7 @@
                 <object class="BGHUDTabViewItem" id="459886568">
                   <string key="NSIdentifier">equalizer</string>
                   <object class="NSView" key="NSView" id="327218412">
-                    <reference key="NSNextResponder" ref="876119583"/>
+                    <nil key="NSNextResponder"/>
                     <int key="NSvFlags">256</int>
                     <object class="NSMutableArray" key="NSSubviews">
                       <bool key="EncodedWithXMLCoder">YES</bool>
                         <reference key="NSSuperview" ref="327218412"/>
                         <bool key="NSEnabled">YES</bool>
                         <object class="NSTextFieldCell" key="NSCell" id="954229439">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67763712</int>
                           <int key="NSCellFlags2">71565312</int>
                           <string key="NSContents">0 dB</string>
                           <reference key="NSSupport" ref="22"/>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="1033603998">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="315969382">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="952935049">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="259517504">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="314108466">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="57982058">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="1023325097">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="1061795325">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="668690250">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="149612815">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="1005956915">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                       </object>
                     </object>
                     <string key="NSFrame">{{10, 33}, {404, 178}}</string>
-                    <reference key="NSSuperview" ref="876119583"/>
                     <string key="NSReuseIdentifierKey">_NS:799</string>
                   </object>
                   <string key="NSLabel">Graphic Equalizer</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="848483206">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="137950649">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="38419774">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="610746211">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="713767167">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="1060145376">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="417624963">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                           <string key="themeKey">gradientTheme</string>
                         </object>
                       </object>
+                      <object class="NSButton" id="235290804">
+                        <reference key="NSNextResponder" ref="605508444"/>
+                        <int key="NSvFlags">268</int>
+                        <string key="NSFrame">{{341, 157}, {46, 17}}</string>
+                        <reference key="NSSuperview" ref="605508444"/>
+                        <string key="NSReuseIdentifierKey">_NS:43</string>
+                        <bool key="NSEnabled">YES</bool>
+                        <object class="BGHUDButtonCell" key="NSCell" id="846216840">
+                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags2">134479872</int>
+                          <string key="NSContents">Reset</string>
+                          <reference key="NSSupport" ref="22"/>
+                          <string key="NSCellIdentifier">_NS:43</string>
+                          <reference key="NSControlView" ref="235290804"/>
+                          <int key="NSButtonFlags">-2030288641</int>
+                          <int key="NSButtonFlags2">36</int>
+                          <object class="NSImage" key="NSNormalImage">
+                            <int key="NSImageFlags">550174720</int>
+                            <string key="NSSize">{1, 1}</string>
+                            <object class="NSMutableArray" key="NSReps">
+                              <bool key="EncodedWithXMLCoder">YES</bool>
+                              <object class="NSArray">
+                                <bool key="EncodedWithXMLCoder">YES</bool>
+                                <integer value="0"/>
+                                <object class="NSBitmapImageRep">
+                                  <object class="NSData" key="NSTIFFRepresentation">
+                                    <bytes key="NS.bytes">TU0AKgAAAAoAAAAOAQAAAwAAAAEAAQAAAQEAAwAAAAEAAQAAAQIAAwAAAAIACAAIAQMAAwAAAAEAAQAA
+AQYAAwAAAAEAAQAAAREABAAAAAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAAQAA
+ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABh3MABwAABXwAAAC4
+AAAAAAAABXxhcHBsAiAAAG1udHJHUkFZWFlaIAfQAAIADgAMAAAAAGFjc3BBUFBMAAAAAG5vbmUAAAAA
+AAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAABWRlc2MAAADAAAAAb2RzY20AAAEwAAAD7mNwcnQAAAUgAAAAOHd0cHQAAAVY
+AAAAFGtUUkMAAAVsAAAADmRlc2MAAAAAAAAAFUdlbmVyaWMgR3JheSBQcm9maWxlAAAAAAAAAAAAAAAV
+R2VuZXJpYyBHcmF5IFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAABtbHVjAAAAAAAAABMAAAAMcHRCUgAAACoAAAD0ZnJGVQAAACoAAAEeemhUVwAAABAAAAFI
+aXRJVAAAAC4AAAFYbmJOTwAAACwAAAGGa29LUgAAABgAAAGyZGVERQAAADoAAAHKc3ZTRQAAAC4AAAIE
+emhDTgAAABAAAAIyamFKUAAAABYAAAJCcHRQTwAAADgAAAJYbmxOTAAAACoAAAKQZXNFUwAAACgAAAK6
+ZmlGSQAAACwAAALicGxQTAAAADYAAAMOcnVSVQAAACYAAANEYXJFRwAAACgAAANqZW5VUwAAACgAAAOS
+ZGFESwAAADQAAAO6AFAAZQByAGYAaQBsACAAQwBpAG4AegBhACAARwBlAG4A6QByAGkAYwBvAFAAcgBv
+AGYAaQBsACAAZwDpAG4A6QByAGkAcQB1AGUAIABnAHIAaQBzkBp1KHBwlo6Ccl9pY8+P8ABQAHIAbwBm
+AGkAbABvACAAZwByAGkAZwBpAG8AIABnAGUAbgBlAHIAaQBjAG8ARwBlAG4AZQByAGkAcwBrACAAZwBy
+AOUAdABvAG4AZQBwAHIAbwBmAGkAbMd8vBgAIABHAHIAYQB5ACDVBLhc0wzHfABBAGwAbABnAGUAbQBl
+AGkAbgBlAHMAIABHAHIAYQB1AHMAdAB1AGYAZQBuAC0AUAByAG8AZgBpAGwARwBlAG4AZQByAGkAcwBr
+ACAAZwByAOUAcwBrAGEAbABlAHAAcgBvAGYAaQBsZm6QGnBwXqZjz4/wZYdO9k4AgiwwsDDsMKQw1zDt
+MNUwoTCkMOsAUABlAHIAZgBpAGwAIABnAGUAbgDpAHIAaQBjAG8AIABkAGUAIABjAGkAbgB6AGUAbgB0
+AG8AcwBBAGwAZwBlAG0AZQBlAG4AIABnAHIAaQBqAHMAcAByAG8AZgBpAGUAbABQAGUAcgBmAGkAbAAg
+AGcAcgBpAHMAIABnAGUAbgDpAHIAaQBjAG8AWQBsAGUAaQBuAGUAbgAgAGgAYQByAG0AYQBhAHAAcgBv
+AGYAaQBpAGwAaQBVAG4AaQB3AGUAcgBzAGEAbABuAHkAIABwAHIAbwBmAGkAbAAgAHMAegBhAHIAbwFb
+AGMAaQQeBDEESQQ4BDkAIARBBDUEQARLBDkAIAQ/BEAEPgREBDgEOwRMBkUGRAZBACAGKgY5BjEGSgZB
+ACAARwByAGEAeQAgBicGRAY5BicGRQBHAGUAbgBlAHIAaQBjACAARwByAGEAeQAgAFAAcgBvAGYAaQBs
+AGUARwBlAG4AZQByAGUAbAAgAGcAcgDlAHQAbwBuAGUAYgBlAHMAawByAGkAdgBlAGwAcwBlAAB0ZXh0
+AAAAAENvcHlyaWdodCAyMDA3IEFwcGxlIEluYy4sIGFsbCByaWdodHMgcmVzZXJ2ZWQuAFhZWiAAAAAA
+AADzUQABAAAAARbMY3VydgAAAAAAAAABAc0AAA</bytes>
+                                  </object>
+                                </object>
+                              </object>
+                            </object>
+                            <object class="NSColor" key="NSColor" id="1050243882">
+                              <int key="NSColorSpace">3</int>
+                              <bytes key="NSWhite">MCAwAA</bytes>
+                            </object>
+                          </object>
+                          <string key="NSAlternateContents"/>
+                          <string key="NSKeyEquivalent"/>
+                          <int key="NSPeriodicDelay">200</int>
+                          <int key="NSPeriodicInterval">25</int>
+                          <string key="themeKey">gradientTheme</string>
+                          <int key="BGButtonType">7</int>
+                        </object>
+                      </object>
                     </object>
                     <string key="NSFrame">{{10, 33}, {404, 178}}</string>
                     <string key="NSReuseIdentifierKey">_NS:809</string>
                 <object class="NSTabViewItem" id="231247297">
                   <string key="NSIdentifier">spatializer</string>
                   <object class="NSView" key="NSView" id="322923036">
-                    <nil key="NSNextResponder"/>
+                    <reference key="NSNextResponder" ref="876119583"/>
                     <int key="NSvFlags">256</int>
                     <object class="NSMutableArray" key="NSSubviews">
                       <bool key="EncodedWithXMLCoder">YES</bool>
                           <int key="BGButtonType">3</int>
                         </object>
                       </object>
+                      <object class="NSButton" id="188755332">
+                        <reference key="NSNextResponder" ref="322923036"/>
+                        <int key="NSvFlags">268</int>
+                        <string key="NSFrame">{{341, 157}, {46, 17}}</string>
+                        <reference key="NSSuperview" ref="322923036"/>
+                        <string key="NSReuseIdentifierKey">_NS:43</string>
+                        <bool key="NSEnabled">YES</bool>
+                        <object class="BGHUDButtonCell" key="NSCell" id="995442362">
+                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags2">134479872</int>
+                          <string key="NSContents">Reset</string>
+                          <reference key="NSSupport" ref="22"/>
+                          <string key="NSCellIdentifier">_NS:43</string>
+                          <reference key="NSControlView" ref="188755332"/>
+                          <int key="NSButtonFlags">-2030288641</int>
+                          <int key="NSButtonFlags2">36</int>
+                          <object class="NSImage" key="NSNormalImage">
+                            <int key="NSImageFlags">550174720</int>
+                            <string key="NSSize">{1, 1}</string>
+                            <object class="NSMutableArray" key="NSReps">
+                              <bool key="EncodedWithXMLCoder">YES</bool>
+                              <object class="NSArray">
+                                <bool key="EncodedWithXMLCoder">YES</bool>
+                                <integer value="0"/>
+                                <object class="NSBitmapImageRep">
+                                  <object class="NSData" key="NSTIFFRepresentation">
+                                    <bytes key="NS.bytes">TU0AKgAAAAoAAAAOAQAAAwAAAAEAAQAAAQEAAwAAAAEAAQAAAQIAAwAAAAIACAAIAQMAAwAAAAEAAQAA
+AQYAAwAAAAEAAQAAAREABAAAAAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAAQAA
+ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABh3MABwAABXwAAAC4
+AAAAAAAABXxhcHBsAiAAAG1udHJHUkFZWFlaIAfQAAIADgAMAAAAAGFjc3BBUFBMAAAAAG5vbmUAAAAA
+AAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAABWRlc2MAAADAAAAAb2RzY20AAAEwAAAD7mNwcnQAAAUgAAAAOHd0cHQAAAVY
+AAAAFGtUUkMAAAVsAAAADmRlc2MAAAAAAAAAFUdlbmVyaWMgR3JheSBQcm9maWxlAAAAAAAAAAAAAAAV
+R2VuZXJpYyBHcmF5IFByb2ZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAABtbHVjAAAAAAAAABMAAAAMcHRCUgAAACoAAAD0ZnJGVQAAACoAAAEeemhUVwAAABAAAAFI
+aXRJVAAAAC4AAAFYbmJOTwAAACwAAAGGa29LUgAAABgAAAGyZGVERQAAADoAAAHKc3ZTRQAAAC4AAAIE
+emhDTgAAABAAAAIyamFKUAAAABYAAAJCcHRQTwAAADgAAAJYbmxOTAAAACoAAAKQZXNFUwAAACgAAAK6
+ZmlGSQAAACwAAALicGxQTAAAADYAAAMOcnVSVQAAACYAAANEYXJFRwAAACgAAANqZW5VUwAAACgAAAOS
+ZGFESwAAADQAAAO6AFAAZQByAGYAaQBsACAAQwBpAG4AegBhACAARwBlAG4A6QByAGkAYwBvAFAAcgBv
+AGYAaQBsACAAZwDpAG4A6QByAGkAcQB1AGUAIABnAHIAaQBzkBp1KHBwlo6Ccl9pY8+P8ABQAHIAbwBm
+AGkAbABvACAAZwByAGkAZwBpAG8AIABnAGUAbgBlAHIAaQBjAG8ARwBlAG4AZQByAGkAcwBrACAAZwBy
+AOUAdABvAG4AZQBwAHIAbwBmAGkAbMd8vBgAIABHAHIAYQB5ACDVBLhc0wzHfABBAGwAbABnAGUAbQBl
+AGkAbgBlAHMAIABHAHIAYQB1AHMAdAB1AGYAZQBuAC0AUAByAG8AZgBpAGwARwBlAG4AZQByAGkAcwBr
+ACAAZwByAOUAcwBrAGEAbABlAHAAcgBvAGYAaQBsZm6QGnBwXqZjz4/wZYdO9k4AgiwwsDDsMKQw1zDt
+MNUwoTCkMOsAUABlAHIAZgBpAGwAIABnAGUAbgDpAHIAaQBjAG8AIABkAGUAIABjAGkAbgB6AGUAbgB0
+AG8AcwBBAGwAZwBlAG0AZQBlAG4AIABnAHIAaQBqAHMAcAByAG8AZgBpAGUAbABQAGUAcgBmAGkAbAAg
+AGcAcgBpAHMAIABnAGUAbgDpAHIAaQBjAG8AWQBsAGUAaQBuAGUAbgAgAGgAYQByAG0AYQBhAHAAcgBv
+AGYAaQBpAGwAaQBVAG4AaQB3AGUAcgBzAGEAbABuAHkAIABwAHIAbwBmAGkAbAAgAHMAegBhAHIAbwFb
+AGMAaQQeBDEESQQ4BDkAIARBBDUEQARLBDkAIAQ/BEAEPgREBDgEOwRMBkUGRAZBACAGKgY5BjEGSgZB
+ACAARwByAGEAeQAgBicGRAY5BicGRQBHAGUAbgBlAHIAaQBjACAARwByAGEAeQAgAFAAcgBvAGYAaQBs
+AGUARwBlAG4AZQByAGUAbAAgAGcAcgDlAHQAbwBuAGUAYgBlAHMAawByAGkAdgBlAGwAcwBlAAB0ZXh0
+AAAAAENvcHlyaWdodCAyMDA3IEFwcGxlIEluYy4sIGFsbCByaWdodHMgcmVzZXJ2ZWQuAFhZWiAAAAAA
+AADzUQABAAAAARbMY3VydgAAAAAAAAABAc0AAA</bytes>
+                                  </object>
+                                </object>
+                              </object>
+                            </object>
+                            <reference key="NSColor" ref="1050243882"/>
+                          </object>
+                          <string key="NSAlternateContents"/>
+                          <string key="NSKeyEquivalent"/>
+                          <int key="NSPeriodicDelay">200</int>
+                          <int key="NSPeriodicInterval">25</int>
+                          <string key="themeKey">gradientTheme</string>
+                          <int key="BGButtonType">7</int>
+                        </object>
+                      </object>
                       <object class="NSTextField" id="276679293">
                         <reference key="NSNextResponder" ref="322923036"/>
                         <int key="NSvFlags">256</int>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="75159425">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="754498492">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="62457534">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="647680886">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                         <string key="NSReuseIdentifierKey">_NS:191</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="35114134">
-                          <int key="NSCellFlags">67239424</int>
+                          <int key="NSCellFlags">67501824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:191</string>
                       </object>
                     </object>
                     <string key="NSFrame">{{10, 33}, {404, 178}}</string>
+                    <reference key="NSSuperview" ref="876119583"/>
                   </object>
                   <string key="NSLabel">Spatializer</string>
                   <reference key="NSColor" ref="423257821"/>
                         <string key="NSReuseIdentifierKey">_NS:209</string>
                         <bool key="NSEnabled">YES</bool>
                         <object class="BGHUDSliderCell" key="NSCell" id="427048854">
-                          <int key="NSCellFlags">-2080244224</int>
+                          <int key="NSCellFlags">-2079981824</int>
                           <int key="NSCellFlags2">131072</int>
                           <string key="NSContents"/>
                           <string key="NSCellIdentifier">_NS:209</string>
                   <reference key="NSTabView" ref="876119583"/>
                 </object>
               </object>
-              <reference key="NSSelectedTabViewItem" ref="459886568"/>
+              <reference key="NSSelectedTabViewItem" ref="231247297"/>
               <object class="NSFont" key="NSFont">
                 <string key="NSName">LucidaGrande</string>
                 <double key="NSSize">13</double>
               <nil key="themeKey"/>
               <object class="NSMutableArray" key="NSSubviews">
                 <bool key="EncodedWithXMLCoder">YES</bool>
-                <reference ref="327218412"/>
+                <reference ref="322923036"/>
               </object>
             </object>
           </object>
           </object>
           <int key="connectionID">600</int>
         </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">comp_enable:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="360813730"/>
+          </object>
+          <int key="connectionID">601</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">comp_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="1026127583"/>
+          </object>
+          <int key="connectionID">602</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">comp_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="259964095"/>
+          </object>
+          <int key="connectionID">603</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">comp_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="930805085"/>
+          </object>
+          <int key="connectionID">604</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">comp_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="328850867"/>
+          </object>
+          <int key="connectionID">605</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">comp_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="287960640"/>
+          </object>
+          <int key="connectionID">606</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">comp_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="979247831"/>
+          </object>
+          <int key="connectionID">607</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">comp_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="452050343"/>
+          </object>
+          <int key="connectionID">608</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">spat_enable:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="1069564620"/>
+          </object>
+          <int key="connectionID">609</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">spat_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="741495357"/>
+          </object>
+          <int key="connectionID">610</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">spat_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="1031346102"/>
+          </object>
+          <int key="connectionID">611</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">spat_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="617363316"/>
+          </object>
+          <int key="connectionID">612</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">spat_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="534023896"/>
+          </object>
+          <int key="connectionID">613</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">spat_sliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="765211162"/>
+          </object>
+          <int key="connectionID">614</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">filter_enableHeadPhoneVirt:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="150505351"/>
+          </object>
+          <int key="connectionID">615</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">filter_enableVolumeNorm:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="743541601"/>
+          </object>
+          <int key="connectionID">616</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">filter_volNormSliderUpdated:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="955449777"/>
+          </object>
+          <int key="connectionID">617</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">resetCompressorValues:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="235290804"/>
+          </object>
+          <int key="connectionID">624</int>
+        </object>
+        <object class="IBConnectionRecord">
+          <object class="IBActionConnection" key="connection">
+            <string key="label">resetSpatializerValues:</string>
+            <reference key="source" ref="687991793"/>
+            <reference key="destination" ref="188755332"/>
+          </object>
+          <int key="connectionID">625</int>
+        </object>
       </object>
       <object class="IBMutableOrderedSet" key="objectRecords">
         <object class="NSArray" key="orderedObjects">
               <reference ref="735455617"/>
               <reference ref="927121169"/>
               <reference ref="1026127583"/>
+              <reference ref="235290804"/>
             </object>
             <reference key="parent" ref="121148662"/>
           </object>
               <reference ref="1016514058"/>
               <reference ref="251897079"/>
               <reference ref="406416483"/>
+              <reference ref="188755332"/>
             </object>
             <reference key="parent" ref="231247297"/>
           </object>
             <reference key="object" ref="687991793"/>
             <reference key="parent" ref="0"/>
           </object>
+          <object class="IBObjectRecord">
+            <int key="objectID">618</int>
+            <reference key="object" ref="188755332"/>
+            <object class="NSMutableArray" key="children">
+              <bool key="EncodedWithXMLCoder">YES</bool>
+              <reference ref="995442362"/>
+            </object>
+            <reference key="parent" ref="322923036"/>
+          </object>
+          <object class="IBObjectRecord">
+            <int key="objectID">619</int>
+            <reference key="object" ref="995442362"/>
+            <reference key="parent" ref="188755332"/>
+          </object>
+          <object class="IBObjectRecord">
+            <int key="objectID">621</int>
+            <reference key="object" ref="235290804"/>
+            <object class="NSMutableArray" key="children">
+              <bool key="EncodedWithXMLCoder">YES</bool>
+              <reference ref="846216840"/>
+            </object>
+            <reference key="parent" ref="605508444"/>
+          </object>
+          <object class="IBObjectRecord">
+            <int key="objectID">622</int>
+            <reference key="object" ref="846216840"/>
+            <reference key="parent" ref="235290804"/>
+          </object>
         </object>
       </object>
       <object class="NSMutableDictionary" key="flattenedProperties">
           <string>347.IBPluginDependency</string>
           <string>348.IBPluginDependency</string>
           <string>353.IBPluginDependency</string>
+          <string>618.IBPluginDependency</string>
+          <string>618.IBViewBoundsToFrameTransform</string>
+          <string>619.IBPluginDependency</string>
+          <string>621.IBPluginDependency</string>
+          <string>621.IBViewBoundsToFrameTransform</string>
+          <string>622.IBPluginDependency</string>
           <string>80.IBAttributePlaceholdersKey</string>
           <string>80.IBPluginDependency</string>
           <string>80.IBViewBoundsToFrameTransform</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <string>com.binarymethod.BGHUDAppKitPlugin</string>
           <object class="NSAffineTransform">
-            <bytes key="NSTransformStruct">P4AAAL+AAABDOgAAw2MAAA</bytes>
+            <bytes key="NSTransformStruct">P4AAAL+AAABBYAAAwy0AAA</bytes>
           </object>
           <string>BGHUDLabel</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <boolean value="YES"/>
           <string>com.binarymethod.BGHUDAppKitPlugin</string>
           <object class="NSAffineTransform">
-            <bytes key="NSTransformStruct">P4AAAL+AAABDtoAAw0sAAA</bytes>
+            <bytes key="NSTransformStruct">P4AAAL+AAABDQQAAwxUAAA</bytes>
           </object>
           <string>BGHUDLabel</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <string>com.binarymethod.BGHUDAppKitPlugin</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
           <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+          <string>com.binarymethod.BGHUDAppKitPlugin</string>
+          <object class="NSAffineTransform">
+            <bytes key="NSTransformStruct">P4AAAL+AAABDqoAAwywAAA</bytes>
+          </object>
+          <string>com.binarymethod.BGHUDAppKitPlugin</string>
+          <string>com.binarymethod.BGHUDAppKitPlugin</string>
+          <object class="NSAffineTransform">
+            <bytes key="NSTransformStruct">P4AAAL+AAABDsAAAwxcAAA</bytes>
+          </object>
+          <string>com.binarymethod.BGHUDAppKitPlugin</string>
           <object class="NSMutableDictionary">
             <string key="NS.key.0">InitialTabViewItem</string>
             <object class="IBInitialTabViewItemAttribute" key="NS.object.0">
         </object>
       </object>
       <nil key="sourceID"/>
-      <int key="maxID">600</int>
+      <int key="maxID">625</int>
     </object>
     <object class="IBClassDescriber" key="IBDocument.Classes">
       <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+">
             <bool key="EncodedWithXMLCoder">YES</bool>
             <object class="NSArray" key="dict.sortedKeys">
               <bool key="EncodedWithXMLCoder">YES</bool>
+              <string>comp_enable:</string>
+              <string>comp_sliderUpdated:</string>
               <string>eq_bandSliderUpdated:</string>
               <string>eq_changePreset:</string>
               <string>eq_enable:</string>
               <string>eq_preampSliderUpdated:</string>
               <string>eq_twopass:</string>
+              <string>filter_enableHeadPhoneVirt:</string>
+              <string>filter_enableVolumeNorm:</string>
+              <string>filter_volNormSliderUpdated:</string>
+              <string>resetCompressorValues:</string>
+              <string>resetSpatializerValues:</string>
+              <string>spat_enable:</string>
+              <string>spat_sliderUpdated:</string>
+              <string>toggleWindow:</string>
             </object>
             <object class="NSMutableArray" key="dict.values">
               <bool key="EncodedWithXMLCoder">YES</bool>
               <string>id</string>
               <string>id</string>
               <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
             </object>
           </object>
           <object class="NSMutableDictionary" key="actionInfosByName">
             <bool key="EncodedWithXMLCoder">YES</bool>
             <object class="NSArray" key="dict.sortedKeys">
               <bool key="EncodedWithXMLCoder">YES</bool>
+              <string>comp_enable:</string>
+              <string>comp_sliderUpdated:</string>
               <string>eq_bandSliderUpdated:</string>
               <string>eq_changePreset:</string>
               <string>eq_enable:</string>
               <string>eq_preampSliderUpdated:</string>
               <string>eq_twopass:</string>
+              <string>filter_enableHeadPhoneVirt:</string>
+              <string>filter_enableVolumeNorm:</string>
+              <string>filter_volNormSliderUpdated:</string>
+              <string>resetCompressorValues:</string>
+              <string>resetSpatializerValues:</string>
+              <string>spat_enable:</string>
+              <string>spat_sliderUpdated:</string>
+              <string>toggleWindow:</string>
             </object>
             <object class="NSMutableArray" key="dict.values">
               <bool key="EncodedWithXMLCoder">YES</bool>
+              <object class="IBActionInfo">
+                <string key="name">comp_enable:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">comp_sliderUpdated:</string>
+                <string key="candidateClassName">id</string>
+              </object>
               <object class="IBActionInfo">
                 <string key="name">eq_bandSliderUpdated:</string>
                 <string key="candidateClassName">id</string>
                 <string key="name">eq_twopass:</string>
                 <string key="candidateClassName">id</string>
               </object>
+              <object class="IBActionInfo">
+                <string key="name">filter_enableHeadPhoneVirt:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">filter_enableVolumeNorm:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">filter_volNormSliderUpdated:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">resetCompressorValues:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">resetSpatializerValues:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">spat_enable:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">spat_sliderUpdated:</string>
+                <string key="candidateClassName">id</string>
+              </object>
+              <object class="IBActionInfo">
+                <string key="name">toggleWindow:</string>
+                <string key="candidateClassName">id</string>
+              </object>
             </object>
           </object>
           <object class="NSMutableDictionary" key="outlets">
             </object>
             <object class="NSMutableArray" key="dict.values">
               <bool key="EncodedWithXMLCoder">YES</bool>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSButton</string>
-              <string>NSSlider</string>
-              <string>NSSlider</string>
-              <string>NSSlider</string>
-              <string>NSSlider</string>
-              <string>NSSlider</string>
-              <string>NSSlider</string>
-              <string>NSSlider</string>
-              <string>NSSlider</string>
-              <string>NSSlider</string>
-              <string>NSSlider</string>
-              <string>NSButton</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSButton</string>
-              <string>NSButton</string>
-              <string>NSButton</string>
-              <string>NSButton</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSTextField</string>
-              <string>NSTextField</string>
-              <string>NSSlider</string>
-              <string>NSButton</string>
               <string>id</string>
-              <string>NSWindow</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
+              <string>id</string>
             </object>
           </object>
           <object class="NSMutableDictionary" key="toOneOutletInfosByName">
               <bool key="EncodedWithXMLCoder">YES</bool>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band1_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band1_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band1_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band2_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band2_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band2_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band3_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band3_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band3_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band4_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band4_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band4_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band5_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band5_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band5_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band6_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band6_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band6_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band7_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band7_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_band7_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_comp_enable_ckb</string>
-                <string key="candidateClassName">NSButton</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_band10_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_band1_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_band2_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_band3_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_band4_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_band5_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_band6_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_band7_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_band8_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_band9_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_enable_ckb</string>
-                <string key="candidateClassName">NSButton</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_preamp_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_preamp_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_presets_popup</string>
-                <string key="candidateClassName">NSButton</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_eq_twopass_ckb</string>
-                <string key="candidateClassName">NSButton</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_filter_headPhone_ckb</string>
-                <string key="candidateClassName">NSButton</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_filter_normLevel_ckb</string>
-                <string key="candidateClassName">NSButton</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_filter_normLevel_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_filter_normLevel_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band1_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band1_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band1_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band2_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band2_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band2_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band3_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band3_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band3_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band4_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band4_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band4_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band5_fld</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band5_lbl</string>
-                <string key="candidateClassName">NSTextField</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_band5_sld</string>
-                <string key="candidateClassName">NSSlider</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_spat_enable_ckb</string>
-                <string key="candidateClassName">NSButton</string>
+                <string key="candidateClassName">id</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_tableView</string>
               </object>
               <object class="IBToOneOutletInfo">
                 <string key="name">o_window</string>
-                <string key="candidateClassName">NSWindow</string>
+                <string key="candidateClassName">id</string>
               </object>
             </object>
           </object>
index 2cb5d58699aed590a5f56e0aa5a0d08f75c786ac..82c229ed7bb2c31fa8c3498ea2fa9dbed1ee1213 100644 (file)
Binary files a/extras/package/macosx/Resources/English.lproj/AudioEffects.nib/keyedobjects.nib and b/extras/package/macosx/Resources/English.lproj/AudioEffects.nib/keyedobjects.nib differ
index df92da74ff1219e081a99a0c1a460c2e4a9bb30f..a7e11b3bf3d7a4942d81b5b22e127d35c4b17925 100644 (file)
@@ -29,6 +29,7 @@
     /* generic */
     IBOutlet id o_tableView;
     IBOutlet id o_window;
+    intf_thread_t *p_intf;
 
     /* Equalizer */
     IBOutlet id o_eq_enable_ckb;
@@ -49,6 +50,7 @@
 
     /* Compressor */
     IBOutlet id o_comp_enable_ckb;
+    IBOutlet id o_comp_reset_btn;
     IBOutlet id o_comp_band1_sld;
     IBOutlet id o_comp_band1_fld;
     IBOutlet id o_comp_band1_lbl;
@@ -73,6 +75,7 @@
     
     /* Spatializer */
     IBOutlet id o_spat_enable_ckb;
+    IBOutlet id o_spat_reset_btn;
     IBOutlet id o_spat_band1_sld;
     IBOutlet id o_spat_band1_fld;
     IBOutlet id o_spat_band1_lbl;
 /* generic */
 + (VLCAudioEffects *)sharedInstance;
 - (IBAction)toggleWindow:(id)sender;
+- (void)setAudioFilter: (char *)psz_name on:(BOOL)b_on;
+- (void)savePrefs;
 
 /* Equalizer */
 - (void)setupEqualizer;
 - (IBAction)eq_preampSliderUpdated:(id)sender;
 - (IBAction)eq_twopass:(id)sender;
 
+/* Compressor */
+- (void)resetCompressor;
+- (IBAction)resetCompressorValues:(id)sender;
+- (IBAction)comp_enable:(id)sender;
+- (IBAction)comp_sliderUpdated:(id)sender;
+
+/* Spatializer */
+- (void)resetSpatializer;
+- (IBAction)resetSpatializerValues:(id)sender;
+- (IBAction)spat_enable:(id)sender;
+- (IBAction)spat_sliderUpdated:(id)sender;
+
+/* Filter */
+- (void)resetAudioFilters;
+- (IBAction)filter_enableHeadPhoneVirt:(id)sender;
+- (IBAction)filter_enableVolumeNorm:(id)sender;
+- (IBAction)filter_volNormSliderUpdated:(id)sender;
+
 @end
index 608434b5cacf15e9289cf9f1df6b176a41af24cd..1356d1c4689155f96142ced1c03e26b6cc9d73cf 100644 (file)
@@ -27,8 +27,8 @@
 # import "config.h"
 #endif
 
-#import "AudioEffects.h"
 #import "intf.h"
+#import "AudioEffects.h"
 #import "../../audio_filter/equalizer_presets.h"
 
 #import <vlc_common.h>
@@ -52,6 +52,7 @@ static VLCAudioEffects *_o_sharedInstance = nil;
     if (_o_sharedInstance) {
         [self dealloc];
     } else {
+        p_intf = VLCIntf;
         _o_sharedInstance = [super init];
     }
     
@@ -71,6 +72,7 @@ static VLCAudioEffects *_o_sharedInstance = nil;
     
     /* Compressor */
     [o_comp_enable_ckb setTitle:_NS("Enable dynamic range compressor")];
+    [o_comp_reset_btn setTitle:_NS("Reset")];
     [o_comp_band1_lbl setStringValue:_NS("RMS/peak")];;
     [o_comp_band2_lbl setStringValue:_NS("Attack")];
     [o_comp_band3_lbl setStringValue:_NS("Release")];
@@ -81,6 +83,7 @@ static VLCAudioEffects *_o_sharedInstance = nil;
     
     /* Spatializer */
     [o_spat_enable_ckb setTitle:_NS("Enable Spatializer")];
+    [o_spat_reset_btn setTitle:_NS("Reset")];
     [o_spat_band1_lbl setStringValue:_NS("Size")];
     [o_spat_band2_lbl setStringValue:_NS("Width")];
     [o_spat_band3_lbl setStringValue:_NS("Wet")];
@@ -101,6 +104,9 @@ static VLCAudioEffects *_o_sharedInstance = nil;
     [o_window setExcludedFromWindowsMenu:YES];
 
     [self setupEqualizer];
+    [self resetCompressor];
+    [self resetSpatializer];
+    [self resetAudioFilters];
 }
 
 - (IBAction)toggleWindow:(id)sender
@@ -111,18 +117,71 @@ static VLCAudioEffects *_o_sharedInstance = nil;
         [o_window makeKeyAndOrderFront:sender];
 }
 
+- (void)setAudioFilter: (char *)psz_name on:(BOOL)b_on
+{
+    char *psz_tmp;
+    aout_instance_t * p_aout = getAout();
+    if( p_aout )
+        psz_tmp = var_GetNonEmptyString( p_aout, "audio-filter" );
+    else
+        psz_tmp = config_GetPsz( p_intf, "audio-filter" );        
+    
+    if( b_on )
+    {
+        if(! psz_tmp)
+            config_PutPsz( p_intf, "audio-filter", psz_name );
+        else if( (NSInteger)strstr( psz_tmp, psz_name ) == NO )
+        {
+            psz_tmp = (char *)[[NSString stringWithFormat: @"%s:%s", psz_tmp, psz_name] UTF8String];
+            config_PutPsz( p_intf, "audio-filter", psz_tmp );
+        }
+    } else {
+        if( psz_tmp )
+        {
+            psz_tmp = (char *)[[[NSString stringWithUTF8String: psz_tmp] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:[NSString stringWithFormat:@":%s",psz_name]]] UTF8String];
+            psz_tmp = (char *)[[[NSString stringWithUTF8String: psz_tmp] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:[NSString stringWithFormat:@"%s:",psz_name]]] UTF8String];
+            psz_tmp = (char *)[[[NSString stringWithUTF8String: psz_tmp] stringByTrimmingCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:[NSString stringWithUTF8String:psz_name]]] UTF8String];
+            config_PutPsz( p_intf, "audio-filter", psz_tmp );
+        }
+    }
+
+    if( p_aout ) {
+        aout_EnableFilter( pl_Get( p_intf ), psz_name, b_on );
+        vlc_object_release( p_aout );
+    }
+}
+
+- (void)savePrefs
+{
+    /* save settings for some of our modules */
+    int returnedValue;
+    NSArray * theModules;
+    theModules = [[NSArray alloc] initWithObjects: @"main", @"headphone", @"normvol", @"headphone_channel_mixer", @"compressor", @"spatializer", nil];
+
+    for( int x = 0; x < [theModules count]; x++ )
+    {
+        returnedValue = config_SaveConfigFile( p_intf, [[theModules objectAtIndex: x] UTF8String] );
+
+        if (returnedValue != 0)
+            msg_Err(p_intf, "unable to save settings for '%s' (%i)", [[theModules objectAtIndex: x] UTF8String], returnedValue);
+    }
+
+    msg_Dbg(p_intf, "AudioFilters: saved certain preferences successfully");
+    [theModules release];
+}
+
 #pragma mark -
 #pragma mark Equalizer
-static bool GetFiltersStatus( intf_thread_t *p_intf,
+static bool GetEqualizerStatus( intf_thread_t *p_custom_intf,
                              char *psz_name )
 {
     char *psz_parser, *psz_string = NULL;
     vlc_object_t *p_object = VLC_OBJECT(getAout());
     if( p_object == NULL )
-        p_object = vlc_object_hold(pl_Get( p_intf ));
+        p_object = vlc_object_hold(pl_Get( p_custom_intf ));
     
-    if( (BOOL)config_GetInt( p_intf, "macosx-eq-keep" ) == YES )
-        psz_string = config_GetPsz( p_intf, "audio-filter" );
+    if( (BOOL)config_GetInt( p_custom_intf, "macosx-eq-keep" ) == YES )
+        psz_string = config_GetPsz( p_custom_intf, "audio-filter" );
     
     if(! psz_string )
         psz_string = var_GetNonEmptyString( p_object, "audio-filter" );
@@ -203,12 +262,11 @@ static bool GetFiltersStatus( intf_thread_t *p_intf,
 
 - (void)equalizerUpdated
 {
-    intf_thread_t *p_intf = VLCIntf;
     float f_preamp, f_band[10];
     char *psz_bands, *psz_bands_init, *p_next;
     bool b_2p;
     int i;
-    bool b_enabled = GetFiltersStatus( p_intf, (char *)"equalizer" );
+    bool b_enabled = GetEqualizerStatus( p_intf, (char *)"equalizer" );
     vlc_object_t *p_object = VLC_OBJECT(getAout());
     
     if( p_object == NULL )
@@ -300,12 +358,11 @@ static bool GetFiltersStatus( intf_thread_t *p_intf,
 
 - (IBAction)eq_enable:(id)sender
 {
-    aout_EnableFilter( pl_Get( VLCIntf ), (char *)"equalizer", [sender state]);
+    [self setAudioFilter: "equalizer" on:[sender state]];
 }
 
 - (IBAction)eq_bandSliderUpdated:(id)sender
 {
-    intf_thread_t *p_intf = VLCIntf;
     vlc_object_t *p_object = VLC_OBJECT(getAout());
     
     if( p_object == NULL )
@@ -339,8 +396,6 @@ static bool GetFiltersStatus( intf_thread_t *p_intf,
 }
 - (IBAction)eq_changePreset:(id)sender
 {
-    intf_thread_t *p_intf = VLCIntf;
-    int i;
     vlc_object_t *p_object= VLC_OBJECT(getAout());
     if( p_object == NULL )
         p_object = vlc_object_hold(pl_Get( p_intf ));
@@ -349,7 +404,7 @@ static bool GetFiltersStatus( intf_thread_t *p_intf,
     
     NSString *preset = @"";
     const char *psz_values;
-    for( i = 0; i < 10; i++ )
+    for( int i = 0; i < 10; i++ )
     {
         preset = [preset stringByAppendingFormat:@"%.1f ", eqz_preset_10b[[sender indexOfSelectedItem]]->f_amp[i] ];
     }
@@ -376,7 +431,6 @@ static bool GetFiltersStatus( intf_thread_t *p_intf,
 }
 - (IBAction)eq_preampSliderUpdated:(id)sender
 {
-    intf_thread_t *p_intf = VLCIntf;
     float f_preamp = [sender floatValue] ;
 
     vlc_object_t *p_object = VLC_OBJECT(getAout());
@@ -398,7 +452,6 @@ static bool GetFiltersStatus( intf_thread_t *p_intf,
 }
 - (IBAction)eq_twopass:(id)sender
 {
-    intf_thread_t *p_intf = VLCIntf;
     bool b_2p = [sender state] ? true : false;
     aout_instance_t *p_aout = getAout();
     vlc_object_t *p_object= VLC_OBJECT(p_aout);
@@ -421,13 +474,225 @@ static bool GetFiltersStatus( intf_thread_t *p_intf,
 
 #pragma mark -
 #pragma mark Compressor
+- (void)resetCompressor
+{
+    char * psz_afilters;
+    psz_afilters = config_GetPsz( p_intf, "audio-filter" );
+    if( psz_afilters ) {
+        [o_comp_enable_ckb setState: (NSInteger)strstr( psz_afilters, "compressor" ) ];
+        free( psz_afilters );
+    } 
+    else
+        [o_comp_enable_ckb setState: NSOffState];
+
+    [o_comp_band1_sld setFloatValue: config_GetFloat( p_intf, "compressor-rms-peak" )];
+    [o_comp_band1_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [o_comp_band1_sld floatValue]]];
+    [o_comp_band2_sld setFloatValue: config_GetFloat( p_intf, "compressor-attack" )];
+    [o_comp_band2_fld setStringValue:[NSString localizedStringWithFormat:@"%2.1f ms", [o_comp_band2_sld floatValue]]];
+    [o_comp_band3_sld setFloatValue: config_GetFloat( p_intf, "compressor-release" )];
+    [o_comp_band3_fld setStringValue:[NSString localizedStringWithFormat:@"%3.1f ms", [o_comp_band3_sld floatValue]]];
+    [o_comp_band4_sld setFloatValue: config_GetFloat( p_intf, "compressor-threshold" )];
+    [o_comp_band4_fld setStringValue:[NSString localizedStringWithFormat:@"%2.1f dB", [o_comp_band4_sld floatValue]]];
+    [o_comp_band5_sld setFloatValue: config_GetFloat( p_intf, "compressor-ratio" )];
+    [o_comp_band5_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f:1", [o_comp_band5_sld floatValue]]];
+    [o_comp_band6_sld setFloatValue: config_GetFloat( p_intf, "compressor-knee" )];
+    [o_comp_band6_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f dB", [o_comp_band6_sld floatValue]]];
+    [o_comp_band7_sld setFloatValue: config_GetFloat( p_intf, "compressor-makeup-gain" )];
+    [o_comp_band7_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f dB", [o_comp_band7_sld floatValue]]];
+}
+
+- (IBAction)resetCompressorValues:(id)sender
+{
+    config_PutFloat( p_intf, "compressor-rms-peak", 0.000000 );
+    config_PutFloat( p_intf, "compressor-attack", 25.000000 );
+    config_PutFloat( p_intf, "compressor-release", 100.000000 );
+    config_PutFloat( p_intf, "compressor-threshold", -11.000000 );
+    config_PutFloat( p_intf, "compressor-ratio", 8.000000 );
+    config_PutFloat( p_intf, "compressor-knee", 2.500000 );
+    config_PutFloat( p_intf, "compressor-makeup-gain", 7.000000 );
+
+    aout_instance_t * p_aout = getAout();
+    if (p_aout) {
+        var_SetFloat( p_aout, "compressor-rms-peak", 0.000000 );
+        var_SetFloat( p_aout, "compressor-attack", 25.000000 );
+        var_SetFloat( p_aout, "compressor-release", 100.000000 );
+        var_SetFloat( p_aout, "compressor-threshold", -11.000000 );
+        var_SetFloat( p_aout, "compressor-ratio", 8.000000 );
+        var_SetFloat( p_aout, "compressor-knee", 2.500000 );
+        var_SetFloat( p_aout, "compressor-makeup-gain", 7.000000 );
+        vlc_object_release( p_aout );
+    }
+    [self resetCompressor];
+}
+
+- (IBAction)comp_enable:(id)sender
+{
+    [self setAudioFilter:"compressor" on:[sender state]];
+}
 
+- (IBAction)comp_sliderUpdated:(id)sender
+{
+    aout_instance_t * p_aout = getAout();
+    char * value;
+    if( sender == o_comp_band1_sld )
+        value = "compressor-rms-peak";
+    else if( sender == o_comp_band2_sld )
+        value = "compressor-attack";
+    else if( sender == o_comp_band3_sld )
+        value = "compressor-release";
+    else if( sender == o_comp_band4_sld )
+        value = "compressor-threshold";
+    else if( sender == o_comp_band5_sld )
+        value = "compressor-ratio";
+    else if( sender == o_comp_band6_sld )
+        value = "compressor-knee";
+    else if( sender == o_comp_band7_sld )
+        value = "compressor-makeup-gain";
+
+    if( p_aout ) {
+        var_SetFloat( p_aout, value, [sender floatValue] );
+        vlc_object_release( p_aout );
+    }
+    config_PutFloat( p_intf, value, [sender floatValue] );
+
+    if( sender == o_comp_band1_sld )
+        [o_comp_band1_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [sender floatValue]]];
+    else if( sender == o_comp_band2_sld )
+        [o_comp_band2_fld setStringValue:[NSString localizedStringWithFormat:@"%2.1f ms", [sender floatValue]]];
+    else if( sender == o_comp_band3_sld )
+        [o_comp_band3_fld setStringValue:[NSString localizedStringWithFormat:@"%3.1f ms", [sender floatValue]]];
+    else if( sender == o_comp_band4_sld )
+        [o_comp_band4_fld setStringValue:[NSString localizedStringWithFormat:@"%2.1f dB", [sender floatValue]]];
+    else if( sender == o_comp_band5_sld )
+        [o_comp_band5_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f:1", [sender floatValue]]];
+    else if( sender == o_comp_band6_sld )
+        [o_comp_band6_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f dB", [sender floatValue]]];
+    else if( sender == o_comp_band7_sld )
+        [o_comp_band7_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f dB", [sender floatValue]]];
+}
 
 #pragma mark -
 #pragma mark Spatializer
+- (void)resetSpatializer
+{
+    char * psz_afilters;
+    psz_afilters = config_GetPsz( p_intf, "audio-filter" );
+    if( psz_afilters ) {
+        [o_spat_enable_ckb setState: (NSInteger)strstr( psz_afilters, "spatializer" ) ];
+        free( psz_afilters );
+    } 
+    else
+        [o_spat_enable_ckb setState: NSOffState];
+    
+    [o_spat_band1_sld setFloatValue: config_GetFloat( p_intf, "spatializer-roomsize" )];
+    [o_spat_band1_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [o_spat_band1_sld floatValue]]];
+    [o_spat_band2_sld setFloatValue: config_GetFloat( p_intf, "spatializer-width" )];
+    [o_spat_band2_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [o_spat_band2_sld floatValue]]];
+    [o_spat_band3_sld setFloatValue: config_GetFloat( p_intf, "spatializer-wet" )];
+    [o_spat_band3_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [o_spat_band3_sld floatValue]]];
+    [o_spat_band4_sld setFloatValue: config_GetFloat( p_intf, "spatializer-dry" )];
+    [o_spat_band4_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [o_spat_band4_sld floatValue]]];
+    [o_spat_band5_sld setFloatValue: config_GetFloat( p_intf, "spatializer-damp" )];
+    [o_spat_band5_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [o_spat_band5_sld floatValue]]];
+}
+
+- (IBAction)resetSpatializerValues:(id)sender
+{
+    config_PutFloat( p_intf, "spatializer-roomsize", 1.050000 );
+    config_PutFloat( p_intf, "spatializer-width", 10.000000 );
+    config_PutFloat( p_intf, "spatializer-wet", 3.000000 );
+    config_PutFloat( p_intf, "spatializer-dry", 2.000000 );
+    config_PutFloat( p_intf, "spatializer-damp", 1.000000 );
+
+    aout_instance_t * p_aout = getAout();
+    if (p_aout) {
+        var_SetFloat( p_aout, "spatializer-roomsize", 1.050000 );
+        var_SetFloat( p_aout, "spatializer-width", 10.000000 );
+        var_SetFloat( p_aout, "spatializer-wet", 3.000000 );
+        var_SetFloat( p_aout, "spatializer-dry", 2.000000 );
+        var_SetFloat( p_aout, "spatializer-damp", 1.000000 );
+        vlc_object_release( p_aout );
+    }
+    [self resetSpatializer];
+}
 
+- (IBAction)spat_enable:(id)sender
+{
+    [self setAudioFilter:"spatializer" on:[sender state]];    
+}
+
+- (IBAction)spat_sliderUpdated:(id)sender
+{
+    aout_instance_t * p_aout = getAout();
+    char * value;
+    if( sender == o_spat_band1_sld )
+        value = "spatializer-roomsize";
+    else if( sender == o_spat_band2_sld )
+        value = "spatializer-width";
+    else if( sender == o_spat_band3_sld )
+        value = "spatializer-wet";
+    else if( sender == o_spat_band4_sld )
+        value = "spatializer-dry";
+    else if( sender == o_spat_band5_sld )
+        value = "spatializer-damp";
+    
+    if( p_aout ) {
+        var_SetFloat( p_aout, value, [sender floatValue] );
+        vlc_object_release( p_aout );
+    }
+    config_PutFloat( p_intf, value, [sender floatValue] );
+    
+    if( sender == o_spat_band1_sld )
+        [o_spat_band1_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [sender floatValue]]];
+    else if( sender == o_spat_band2_sld )
+        [o_spat_band2_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [sender floatValue]]];
+    else if( sender == o_spat_band3_sld )
+        [o_spat_band3_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [sender floatValue]]];
+    else if( sender == o_spat_band4_sld )
+        [o_spat_band4_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [sender floatValue]]];
+    else if( sender == o_spat_band5_sld )
+        [o_spat_band5_fld setStringValue:[NSString localizedStringWithFormat:@"%1.1f", [sender floatValue]]];
+}
 
 #pragma mark -
 #pragma mark Filter
+- (void)resetAudioFilters
+{
+    char * psz_afilters;
+    psz_afilters = config_GetPsz( p_intf, "audio-filter" );
+    if( psz_afilters )
+    {
+        [o_filter_headPhone_ckb setState: (NSInteger)strstr( psz_afilters, "headphone" ) ];
+        [o_filter_normLevel_ckb setState: (NSInteger)strstr( psz_afilters, "normvol" ) ];
+        free( psz_afilters );
+    } else {
+        [o_filter_headPhone_ckb setState: NSOffState];
+        [o_filter_normLevel_ckb setState: NSOffState];
+    }
+    [o_filter_normLevel_sld setFloatValue: config_GetFloat( p_intf, "norm-max-level" )];
+}
+
+- (IBAction)filter_enableHeadPhoneVirt:(id)sender
+{
+    [self setAudioFilter: "headphone" on:[sender state]];
+}
+
+- (IBAction)filter_enableVolumeNorm:(id)sender
+{
+    [self setAudioFilter: "normvol" on:[sender state]];    
+}
+
+- (IBAction)filter_volNormSliderUpdated:(id)sender
+{
+    aout_instance_t * p_aout= getAout();
+
+    if( p_aout )
+    {
+        var_SetFloat( p_aout, "norm-max-level", [o_filter_normLevel_sld floatValue] );
+        vlc_object_release( p_aout );
+    }
+
+    config_PutFloat( p_intf, "norm-max-level", [o_filter_normLevel_sld floatValue] );
+}
 
 @end
index 4ca6be915faeb061c189231158a297c262aa8d17..31804862e0456f552c80df0610ed4af6046febee 100644 (file)
@@ -821,6 +821,7 @@ static VLCMain *_o_sharedMainInstance = nil;
     /* save the prefs if they were changed in the extended panel */
     if(o_extended && [o_extended configChanged])
         [o_extended savePrefs];
+    [o_audioeffects savePrefs];
 
     /* unsubscribe from the interactive dialogues */
     dialog_Unregister( p_intf );