## Build 3.42 is available at the location listed below

(NOTE: this is a rebuild of 3.42)

\\builds\PreRelease\nForce\Win2K\MCP1_WDM\3.42

## Summary of changes since last labeled build

- 731667: VAPU - add local pointers to many routines for the 2D voice array, so that it is easier to read the code, easier to debug the code, the code looks cleaner, the code is shorter and of course faster. Non functional change.
- 731017: Added some ASSERT and VERIFY checks.
- 731014: Added #ifdef _DEBUG code around taskbar icon support so debug builds will always exit if taskbar icon support is enabled.
- 730906: Clearing the info array before each driver query.
- 730868: added $(BUILDDIR)\tools\wtl70\include as additional include dirs
- 730854: fixes brush orgs for dialogs which have a title bar
- 730719: Added support in VAPU for SoundStorm's preset EQs
- 730621: updated OnCtlColor to use SetBrushOrg instead of creating separate offset brushes for each control. Switched main views to use a default gradient brush stored in mainfrm. Other dialogs create their own gradient brushes. All dialogs still use the same OnCtlColor routine.
- 730479: fixes bug where nvmixer GUI is not restored when it is not in the foreground or is minimized. Also fixed issue where rclicking on the tray icon brings the GUI to the foreground.
- 730260: Changed DBG_VAPU_TEMP to DBG_VAPU_TRACK_SSLS for obvious reasons.
- 730034: Noise issue is fixed and HCT tests now run (mostly) with no hangs.
- 729639: Partial update for Environment page. Code renders the cube that will be used for the room.
- 729581: Added Direct3D framework to Environment view. It's creating the window, and rendering the geometry (very basic cube) but is not sizing the room based on the decay time.
- 729457: Modified the single instance code to not look for both the window class name and title bar name. nvMixer is created with a unique class name so there is no reason to also look for the Window titlebar name as well. This would be a problem with RTL languages.
- 729444: added support for listing the last two speaker modes.
- 729402: Added PreTranslateMessage support so keyboard mnemonics now function. Added drop shadow support to the main window for XP systems. Lastly, added code to always exit nvMixer in the debug builds even if the Taskbar icon support is enabled.
- 729170: Added Rear Speaker Encoding and Phase Shift Wizard steps.
- 729163: Added support for Rear Speaker Encoding Modes.
- 729158: Removed unused #defines and cleaned up the resources.
- 729107: Sepearate CFLAGS added for 64bit linux compilation. This is commented now. Have to select the appropriate CFLAGS from Makefile based on the linux bit.
- 729065: Removed dead version of remote debug application.
- 729062: Fixed remaining network communication problems.
- 728857: Added support to display and process the application shortcuts. Checks for shortcuts in the first spot it finds... checks HKCU\NvMixer, then HKCU\SoundStorm, then HKLM\NvMixer.
- 728728: Moved localized files into individual folders to follow the same format as nvMixer.
- 728433: Closed a few NULL pointer loopholes when allocation of the audio device fails and the device is removed
- 728352: Made it so that GetPosition will try for a valid position 5 times at most and returns the last valid position if an error is encountered after 5 tries.
- 727800: Adding one more parameter to the ioctl structure to return the Driver version to the application.
- 727765: All bmp files are converted to xpm format and renamed as .h files and included in the c file. This helps to build images into the binary. No need to worry about finding files are runtime.
- 727438: Updated reverb presets:
- 727418: Test program for the VAPU spectrum analyzer.
- 727179: Updates related to the tray icon.
- 727139: Disabled monitoring of the SPDIF input when SPDIF input is unlocked, it was causing noise.
- 726914: Changed default state of digitized input to off. Also fixed bug where the value of the control in the cache was not correctly set at init time if it was disabled via the inf. This change was made to minimize the chance of noise on the input as well as prevent any degradation of memory performance from features that may not be used.
- 726761: hooked up support for the tray icon. Added support for NVIDIA NvMixer, Master Volume, Enable/Disable Night Mode, Show/Hide Tray Icon and About NVMixer.
- 726628: Set minimum buffer size for ASIO when using the virtual APU so that it does not underrun
- 726541: updated to use localized strings for error messages. Added Get and Set night mode methods for use by tray icon
- 726338: Added Preset MessageBox prompts to the string table.
- 726335: Moved Global Reverb code out of Surround Settings dialog and into NvAudioMod.dll.
- 725870: code added to enable and disable analog/digital output selection from application.
- 725861: Fixed build break in AMD64. If block didn't work as expected.
- 725516: Changed version numbering scheme to use versioning as recommend on the following MS website: http://www.microsoft.com/whdc/hwtest/search/details.aspx?ID=466. It states here that for DX9 and XP driver support, the version number of the driver should be between 6.14.01.0000 and 6.14.01.9999. I slightly modified that scheme and combined it with the normal OS Major.Os Minor.DriverVersion.QFE scheme so that our new version number will be 6.14.DriverVersion.Nightly.
- 725460: Updates to support Ulead Photo Explorer
- 724789: Correction added for the premix volume settings. Register values are
- 724684: Another reworking of the network code to make it ansynchronus and use windows messages when packets are received, connections are established, and connections are accepted. This works much better as synchronous methods seem to lock up the application since the message handler gets blocked waiting for the command result from the server. Now its just set to fire and forget. When it gets the result, it figures out what to do.
- 724529: updated window class name for this version of the software. Also fixed stop to be Escape (instead of Ctrl-Escape)
- 724212: Added initial support for ULEAD Photo Explorer (version 8.0 demo available on web)
- 723858: Added reference device ID for CK8
- 723349: Premix volumes are scaled based on Master volume.
- 723279: Updated application to open the driver, redid much of the client/server code so that the server code is just passing the calls to the driver instead of doing much of the work. There are a few problems introduced into the networking code with these changes.
- 722991: Update to support additional features useful for NV40 debugging. Added a "load (binary file) into physical memory" and "batch command mode" which can process NVPCI batch files within a single load of the NVPCI executable.
- 722096: Fixed window flashing when Meters view is collapsed or expanded.
- 722086: Fixed the ACI only premix sliders to use the individual channel properties instead of the uniform property.
- 721900: Improved the rear 3D sound imaging for VAPU
- 721768: VAPU - Starve condition updates.
- 721590: Modified nvack to set the default format of audio recording to CD Quality. This fixes various issues with the Realtek codecs that have DC offset and cause 8 bit recording to sound very bad.
- 721157: Added code to not display the Meters button and collapse the Meters view if the APU is not present.
- 721150: Changed CinemaSurround to CineSurround.
- 721149: Added ACI only volume premix support.
- 720855: VAPU-
- 720846: changes added in driver code to support the ioctls for nvaudio GUI.
- 720837: Restored multi-channel output for all reverb DSp test files. Somewhere, a change
- 720836: Added clearing of GP Read+Write mix buffers 0-5 to eliminate whining during dsp
- 720832: Main page is completely functional .
- 720816: GP tools: files to clear out "whiny" mix buffers during DSP development.
- 720723: Moved the positions of the notifiers being cleared, the game seems to like them better there. Added a call to make sure that when we starve, we try to get more mappings. Removed other code that was making Mafia run worse. The only stuttering I hear now is not a result of the kmixer starving from what I can tell. When the stuttering occurs, we are no longer in a constant state of starvation.
- 720543: Updated to support the "restore settings to system defaults" feature.
- 720308: Added framework for Custom Drawn slider controls.
- 720218: Changed update of surround delay time so it doesn't reinitialize all the surround modes in the driver
- 720198: Removed some tests for parameter changes that were preventing surround modes from being set consistently.
- 718728: Corrected code to not synchronize Recording Control with Digitized Input in ACI only mode.
- 714788: Reduced late reverb maximum level from +20 dB to +10 dB to reduce
- 714786: Fixed various surround mode and speaker configuration setting problems
- 714760: Write high level parameter date to debug area for DSP modules:
- 714741: Check-in of binaries for latest changes in DSP tools.
- 714740: Added function to print DSP module high level parameters to WinICE or
- 714525: Fixed issue with DirectSound SetSpeakeronfiguration API not correctly setting 6 channel mode reliably.
- 713778: Updated version to 3.42
- 713766: Updated DriverVer to 05/12/2003
- 713763: Updated version for 3.42
- 713758: Updated version to 3.42
- 713737: Fix for Sony codec initilization failure.
- 713610: Tools for viewing DSP info in system memory without WinICE.
- 713398: Fixes VU Meter drawing problem where the meter band was being drawn in the wrong position.
- 713118: Removed more tabs
- 713042: Removed tabs inadvertantly added in last check in
- 712951: VAPU- Removed the old HRTF based 3D, that was not used and did not work and was slow. We now have John's 3D only, which is working. Nv3D.cpp/h and InterpTable.cpp/.h are no longer needed. Many variables removed, structures cleaned up etc..
- 712932: 3D HRTF performance optimization. Write directly to HRTF Target memory without using method queue.
- 712819: Reduced rate of polling for command queue in the global DSP processor so that C1 disconnect will disconnect.
- 712174: Added a pause when the kmixer stream starved. It gets resumed the next time more PRDs are submitted. It seems that just disable interrupts on the voice is not enough as submitting the next round of PRDs immediately causes an interrupt unless the voice is paused. This seems to fix the remaining problems with Mafia on my setup. We still starve but its not even audible.
- 711996: adding more functions to common lib.
- 711994: Implementation of a routine to improve the rear 3d effect for VAPU NV3ds
- 711974: Chased down memory address definition problem between resman, audio driver and DSP
- 711935: Removed all of the Tabs from this file that DVSBuilder complained about.
- 711861: VAPU- More debug code.
- 711403: update to disable OK button until a non empty string is present in the edit box.
- 711329: Steve's last checkin broke VAPU, by not checking an optional pointer before using it, causing a page fault.
- 711262: Corrected error when writing a WaveFile from the driver based on streaming data (obscure function that I enabled for use). The Format.cbSize was not being set correctly (or at all actually) in the wave header.
- 711230: Restored voice FIFO check for VAPU GetPosition call. I had removed it since all methods in the fifo are assumed to be complete before the position call is made, but I'll put it back for safety reasons.
- 711205: More fixes for bug #79329.
- 711184: adding back files with the correct case in the path (Apps instead of apps)
- 711181: incorrect case used in path (apps instead of Apps)...
- 710794: added support for mixer presets
- 710692: Added special handling for the Digitize Input checkbox. It's actually the opposite of what the Mixer control does. The Mixer control is a Mute All button, so selecting it disables Digitized Input whereas nvMixers button is an enabler.
- 710487: Updated to use CControlBrushManager for gradient background.
- 710418: Added preset prompts.
- 710286: Input selection logic fully complete. The recording input and digitized input correlation is complete and mutes the digitized input if a selected recording input is not found.
- 710282: Removed registry entry to select last input that nvMixer remembers using since this actually changes the active input.
- 709565: Adding autogenerated release notes script
- 707923: Fix version number for next time.
- 707888: Updated version to 342
- 707879: Updated version to 3.42
- 707273: Updated version to 3.42
- 707248: Updated DriverVer to 05/06/2003
- 707242: Updated version for 3.42
- 707230: Updated version to 3.42
- 706994: Fix for ac3 playback - if the ac3 data is coming with AFMT_S16_LE format, verifying the data for ac3 signature and set it as ac3passthrough.
- 706382: Added registry string for last selected input.
- 706377: Enabled the virtual rear mixdown routine and modified the create center, xtc and virtual position routines in terminator.
- 706128: * Added handler for the Input combobox selection change.
- 706112: Fix for bug 79329. There was a synchronization problem with the kernel mixer stream where the release entry could be updated twice if an interrupt was missed which would cause some list entries not to be released. When this happens, it would cause the kernel stream to have a constant buzz.
- 706088: Changed Mixer struct to contain a generic CButton instead of a CBitmapToggleButton to accomodate the regular Mic Boost button.
- 705905: Added Multichannel support to Sigmatel and ADI codec.
- 705439: Layout for main and Information pages are done.
- 705433: Modified Volume Setup page. The Input section now has two radio button options below the slider, Digitize Input and Mic Boost. These use to exist in the dropdown list, but could not function properly that way.
- 705403: Updated timer code to use static const member for the timer ID.
- 705237: VAPU-
- 704845: Updated sources file to point at DirectX9 DDK. nvmcp.sys was already pointing to DX9 DDK and this change allowed me to remove some DX7 and DX8 DDK files from my clientspec to free up some disk space
- 704158: Temporary fix for 79154.
- 703968: Updated version to 3.41
- 703914: Updated DriverVer to 05/02/2003

## Bugs worked on since last labeled build

- Bug 80308 : 727139
- Bug 79869 : 712819
- Bug 79239 : 720723
- Bug 79329 : 706112 712174 711205
- Bug 82392 : 725460 724212
- Bug 80377 : 713737

## Details of changes since last labeled build

Change 731667 by jweintraub@jweintraub-home on 2003/05/27 10:54:13
VAPU - add local pointers to many routines for the 2D voice array, so that it is easier to read the code, easier to debug the code, the code looks cleaner, the code is shorter and of course faster. Non functional change.

Change 731017 by tblanchard@tblanchard-xp on 2003/05/23 23:33:18
Summary: Added some ASSERT and VERIFY checks.

Change 731014 by tblanchard@tblanchard-xp on 2003/05/23 23:30:29
Summary: Added #ifdef _DEBUG code around taskbar icon support so debug builds will always exit if taskbar icon support is enabled.

Change 730906 by vinodg@vinod_audio on 2003/05/23 19:12:37
Clearing the info array before each driver query.

Change 730868 by mpereira@PEGASUS on 2003/05/23 18:43:37
added $(BUILDDIR)\tools\wtl70\include as additional include dirs

Change 730854 by mpereira@PEGASUS on 2003/05/23 18:38:53
Summary: fixes brush orgs for dialogs which have a title bar
Bugid: none

Change 730719 by jnorris@jnorris-nf420 on 2003/05/23 17:29:07
Summary: Added support in VAPU for SoundStorm's preset EQs
All the parameter EQ in VAPU uses 2 biquads and 2 shelf filters (= 3 Biquads). All the of the SoundStorm preset EQ are represent in this form except comb1 and comb2. To support these EQ we need to use 4 biquads that will be added later. Also added a routine to calculate the EQ curves so they can be plotted.

Change 730621 by mpereira@PEGASUS on 2003/05/23 16:37:40
Summary: updated OnCtlColor to use SetBrushOrg instead of creating separate offset brushes for each control. Switched main views to use a default gradient brush stored in mainfrm. Other dialogs create their own gradient brushes. All dialogs still use the same OnCtlColor routine.
Bugid: none

Change 730479 by mpereira@PEGASUS on 2003/05/23 15:24:17
Summary: fixes bug where nvmixer GUI is not restored when it is not in the foreground or is minimized. Also fixed issue where rclicking on the tray icon brings the GUI to the foreground.
Bugid: none

Change 730260 by jweintraub@jweintraub-home on 2003/05/23 13:55:11
Changed DBG_VAPU_TEMP to DBG_VAPU_TRACK_SSLS for obvious reasons.

Change 730034 by jweintraub@jweintraub-home on 2003/05/23 11:23:09
VAPU- More Noise issue fixes!
1.) Changed the way the data is processed yet again. Now we write data ahead of the ACI play pointer, but only on the first interrupt for each voice, at which point we will load up 7 blocks of data, so we are ahead in case any interrupts are missed after the voice is started. All subsequent interrupts we only move one block of data, unless interrupts are skipped (as before). This allows the voice to begin within 2 interrupt periods of VoiceOn and allows us to pass the startup latency test in the KsPosAudio HCT test.
2.) Because we now write to ACI blocks that were previously written but not yet played (when a new voice is started), I had to make the functions that write the ACI buffer (3 different ones) work 2 ways, an overwrite (normal) or an accumulated write. Otherwise a small glitch occurs (35ms, 7 interrupt periods * 5.3ms per interrupt) when ever a new voice begins.
3.) All of the the starvation handling code has been rewritten. Since now we cache ahead data in the ACI buffer, when we run out of data from the voice's SSLs, we will starve for up to 7 periods, as that much data is already loaded into the ACI buffer. So starvation at the end of the stream is not an error and is necessary now until all of the data is played so that the SSLs can then be properly released. The stream can also continue and come out of starve if more SSLs are received after starve has begun.
4.) All SSLs are now released after the data is done being played, not after we consume it for processing as before. This meant I had to calculate which ACI block actually contained an SSL crossing, and release the SSL after that block was completed (played). ReleasedCompletedSSLs and GetInputData are changed to handle this, plus a new routine for detection.
5.) g_OldNoisyWay variable....is no longer used and has been removed, including its old functionality.
6.) Changed all 'bool' declarations to NVA_BOOL, as I was tired on the 1 byte annoyances (only a handful of em).
7.) Moved 3 debug print level definitions out of nvaudio.h and put them into dout.h where they belong. I enabled some debug output accidentally that were not defined where they should be. DBG_FX, DBG_RESOURCES and DBG_EP_PERF.
8.) Removed some debug output that is not needed and can easily be reproduced. Also fixed up the ErrorChecking code (disabled) to properly work with this checkin. Added some new checks and changed some old ones.
Tests: DS Tests all run except 15.2 (fix next). KsPosAudio all run individually. No hangs anymore in either test suite.
Preformace: No idea yet...need to investigate and probably fix a few areas...
Summary: Noise issue is fixed and HCT tests now run (mostly) with no hangs.

Change 729639 by tblanchard@tblanchard-xp on 2003/05/23 00:37:43
Summary: Partial update for Environment page. Code renders the cube that will be used for the room.

Change 729581 by tblanchard@tblanchard-xp on 2003/05/22 22:18:04
Summary: Added Direct3D framework to Environment view. It's creating the window, and rendering the geometry (very basic cube) but is not sizing the room based on the decay time.

Change 729457 by tblanchard@tblanchard-xp on 2003/05/22 19:42:01
Summary: Modified the single instance code to not look for both the window class name and title bar name. nvMixer is created with a unique class name so there is no reason to also look for the Window titlebar name as well. This would be a problem with RTL languages.

Change 729444 by mpereira@PEGASUS on 2003/05/22 19:32:35
Summary: added support for listing the last two speaker modes.
save the last two settings in the registry
remove the placeholders and add the entries to the popup menu
update the main GUI and send the parameters to the driver
Bugid: none

Change 729402 by tblanchard@tblanchard-xp on 2003/05/22 19:02:41
Summary: Added PreTranslateMessage support so keyboard mnemonics now function. Added drop shadow support to the main window for XP systems. Lastly, added code to always exit nvMixer in the debug builds even if the Taskbar icon support is enabled.

Change 729170 by tblanchard@tblanchard-xp on 2003/05/22 17:27:10
Summary: Added Rear Speaker Encoding and Phase Shift Wizard steps.

Change 729163 by tblanchard@tblanchard-xp on 2003/05/22 17:23:16
Summary: Added support for Rear Speaker Encoding Modes.

Change 729158 by tblanchard@tblanchard-xp on 2003/05/22 17:20:49
Summary: Removed unused #defines and cleaned up the resources.

Change 729107 by vinodg@vinod_audio on 2003/05/22 16:59:24
Sepearate CFLAGS added for 64bit linux compilation. This is commented now. Have to select the appropriate CFLAGS from Makefile based on the linux bit.

Change 729065 by sholmes@wilbur on 2003/05/22 16:48:34
Removed dead version of remote debug application.

Change 729062 by sholmes@wilbur on 2003/05/22 16:46:35
Fixed remaining network communication problems.
Added remote debugging interface to the driver.
Added ability to turn on/off record of the kmixer stream at runtime in the driver. Used this to verify that the data we were getting from kmixer was bad from the Mafia game.

Change 728857 by mpereira@PEGASUS on 2003/05/22 15:23:07
Summary: Added support to display and process the application shortcuts. Checks for shortcuts in the first spot it finds... checks HKCU\NvMixer, then HKCU\SoundStorm, then HKLM\NvMixer.
Bugid: none

Change 728728 by tblanchard@tblanchard-xp on 2003/05/22 14:32:35
Summary: Moved localized files into individual folders to follow the same format as nvMixer.

Change 728433 by speterson@spetersondev on 2003/05/22 12:09:33
Summary: Closed a few NULL pointer loopholes when allocation of the audio device fails and the device is removed

Change 728352 by sholmes@wilbur on 2003/05/22 11:31:51
Made it so that GetPosition will try for a valid position 5 times at most and returns the last valid position if an error is encountered after 5 tries.

Change 727800 by vinodg@vinod_audio on 2003/05/21 19:10:49
Adding one more parameter to the ioctl structure to return the Driver version to the application.

Change 727765 by vinodg@vinod_audio on 2003/05/21 18:49:17
All bmp files are converted to xpm format and renamed as .h files and included in the c file. This helps to build images into the binary. No need to worry about finding files are runtime.
Error Dialog boxes are also added.

Change 727438 by gklimanis@gklimanis-driverpull on 2003/05/21 16:20:19
Updated reverb presets:
1) fixed concert hall problem
2) The default routing changed, so now, reverb testing is done in the 1 input,
4 output configuration to avoid the whine from uncleared mix bins that are
mixed in parallel to the reverb output.

Change 727418 by jnorris@jnorris-nf420 on 2003/05/21 16:02:39
Summary: Test program for the VAPU spectrum analyzer.
For the moment there are 10 bands so we can determine the CPU usage. The spectrum analyzer is defined in SpecAnal.cpp and just uses 2nd order band pass filters spaced an octave apart.
Jeff: We may need to add some smoothing if it flickers to much but the algorithm is contained in SpecAnal.cpp. It returns the dB value in GetSpectrumdB.

Change 727179 by mpereira@PEGASUS on 2003/05/21 14:54:37
Summary: Updates related to the tray icon.
Single instanced the app.
Added support for "-h" command line parameter which for use in the Startup Group. -h will cause the app to load hidden and just show the the tray icon. If the tray icon is disabled, it just exits. If there is a prev instance, it still just exits.
Added a system control menu (so you can rclick on the taskbar)
Added a system control handler to change the close to a HideWindow when the tray icon is enabled
Bugid: none

Change 727139 by speterson@spetersondev on 2003/05/21 14:44:20
Summary: Disabled monitoring of the SPDIF input when SPDIF input is unlocked, it was causing noise.
Bugid: 80308

Change 726914 by sholmes@wilbur on 2003/05/21 13:39:57
Summary:
Changed default state of digitized input to off. Also fixed bug where the value of the control in the cache was not correctly set at init time if it was disabled via the inf. This change was made to minimize the chance of noise on the input as well as prevent any degradation of memory performance from features that may not be used.

Change 726761 by mpereira@PEGASUS on 2003/05/21 12:02:30
Summary: hooked up support for the tray icon. Added support for NVIDIA NvMixer, Master Volume, Enable/Disable Night Mode, Show/Hide Tray Icon and About NVMixer.
TODO: User Presets and Application Shortcuts
Bugid: none

Change 726628 by speterson@spetersondev on 2003/05/21 10:57:39
Summary: Set minimum buffer size for ASIO when using the virtual APU so that it does not underrun
and changed the way buffers are rleased to be more immune to starvation.

Change 726541 by mpereira@PEGASUS on 2003/05/21 10:15:32
Summary: updated to use localized strings for error messages. Added Get and Set night mode methods for use by tray icon
Bugid: None

Change 726338 by tblanchard@tblanchard-xp on 2003/05/21 01:25:46
Summary: Added Preset MessageBox prompts to the string table.

Change 726335 by tblanchard@tblanchard-xp on 2003/05/21 01:02:35
Summary: Moved Global Reverb code out of Surround Settings dialog and into NvAudioMod.dll.
The global reverb is used in three places:
1) Surround Settings Dialog
2) Environment View
3) Speaker Wizard
Added three new methods to INVAudio:
1) CreateGlobalReverbManager()
2) DestroyGlobalReverbManager()
3) SetGlobalReverb()

Change 725870 by vinodg@vinod_audio on 2003/05/20 16:31:30
code added to enable and disable analog/digital output selection from application.

Change 725861 by sholmes@wilbur on 2003/05/20 16:26:45
Fixed build break in AMD64. If block didn't work as expected.
Reviewed By: Me

Change 725516 by sholmes@wilbur on 2003/05/20 13:54:46
BUDID: 82470
Summary:
Changed version numbering scheme to use versioning as recommend on the following MS website: http://www.microsoft.com/whdc/hwtest/search/details.aspx?ID=466. It states here that for DX9 and XP driver support, the version number of the driver should be between 6.14.01.0000 and 6.14.01.9999. I slightly modified that scheme and combined it with the normal OS Major.Os Minor.DriverVersion.QFE scheme so that our new version number will be 6.14.DriverVersion.Nightly.
Updated the batch files so that all the save/restore environment variables is much cleaner. Also fixed the file version so that it says the driver was built by NVIDIA instead of WinDDK.
Reviewer: Me

Change 725460 by mpereira@PEGASUS on 2003/05/20 13:27:47
Summary: Updates to support Ulead Photo Explorer
Changed window name to be "Ulead Slideshow Window"
Changed replay and advance back to pg up and pg down (they were incorrectly marked as rotate in the function table)
Bugid: 82392

Change 724789 by vinodg@vinod_audio on 2003/05/19 18:55:36
Correction added for the premix volume settings. Register values are
stored properly in the driver based on GUI changes.

Change 724684 by sholmes@wilbur on 2003/05/19 17:50:04
Another reworking of the network code to make it ansynchronus and use windows messages when packets are received, connections are established, and connections are accepted. This works much better as synchronous methods seem to lock up the application since the message handler gets blocked waiting for the command result from the server. Now its just set to fire and forget. When it gets the result, it figures out what to do.

Change 724529 by mpereira@PEGASUS on 2003/05/19 16:29:02
Summary: updated window class name for this version of the software. Also fixed stop to be Escape (instead of Ctrl-Escape)
Bugid: None

Change 724212 by mpereira@PEGASUS on 2003/05/19 13:48:18
Summary: Added initial support for ULEAD Photo Explorer (version 8.0 demo available on web)
The keyboard mapping for the demo download don't seem to match the table provided by ULEAD
Bugid: 82392

Change 723858 by speterson@spetersondev on 2003/05/19 09:17:37
Summary: Added reference device ID for CK8

Change 723349 by vinodg@vinod_audio on 2003/05/16 18:41:55
Premix volumes are scaled based on Master volume.
Correction add for mic boost functionality.
Info page is functional.
Todo:- Store the premix register volume in memory. Add few more params to info page.

Change 723279 by sholmes@wilbur on 2003/05/16 18:07:54
Updated application to open the driver, redid much of the client/server code so that the server code is just passing the calls to the driver instead of doing much of the work. There are a few problems introduced into the networking code with these changes.
Fixed it so the network code would atleast talk to a remote server (instead of just the localhost) and open a handle on the driver. Driver code not check it yet.
Correct small bug the nvaxapi.h where the API number was the same number as OpenAL. No big deal as it is actually implemented by the bus driver, but it should have a unique number just the same,

Change 722991 by mpereira@PEGASUS on 2003/05/16 15:35:16
Summary: Update to support additional features useful for NV40 debugging. Added a "load (binary file) into physical memory" and "batch command mode" which can process NVPCI batch files within a single load of the NVPCI executable.
-b filename
-m physbase filename
Bugid: None

Change 722096 by tblanchard@tblanchard-xp on 2003/05/15 22:17:25
Summary: Fixed window flashing when Meters view is collapsed or expanded.
Changed the WNDCLASSEX structure used to create the main window to not use the CS_HREDRAW and CS_VREDRAW flags. This causes Windows to invalidate the entire window and send a repaint message anytime the horizontal or vertical size of the window is changed.
Also, since the background of the client area is never seen (because the client area is always filled with the child view dialogs), I changed the background brush to NULL which causes Windows to not erase the client area when a repaint is required.

Change 722086 by tblanchard@tblanchard-xp on 2003/05/15 22:01:14
Summary: Fixed the ACI only premix sliders to use the individual channel properties instead of the uniform property.
Unlike all of the other mixer controls that have a single control for a single channel, the ACI only premix sliders do not. The single control for Surround and Master need to be processed as multiple channels instead of a uniform control. These needed to be processed per channel and then mapped to the appropriate control in nvMixer. Since there is no way for me to identify which channel is index 0 and 1, I am always assuming 0 is left, and 1 is right when I make the mixerSetControlDetails() and mixerGetControlDetails() since that's what works on my Windows XP system.
Also, I yanked the "Vague" source code since its assumptions fail in ACI only mode. Since the only vague controls we use are Aux and Video I just compare the string names and assign them to the controls.
*** ASSumption ***
Are "Aux" and "Video" localized?!? Meaning are these strings provided by Microsoft or us? I'm pretty sure, but would like confirmation on the following strings as well (in ACI only mode).
"Surround"
"Center"
"Subwoofer"

Change 721900 by jnorris@jnorris-nf420 on 2003/05/15 17:48:46
Summary: Improved the rear 3D sound imaging for VAPU

Change 721768 by jweintraub@jweintraub-home on 2003/05/15 16:29:08
VAPU - Starve condition updates.
Modified code to properly detect and process the correct data at the end of a stream. The VAPU loads an input buffer on each interrupt with an approximate amount of data (usually more than needed by a little), based on the sample rate, but does not know how much of it will actually be consumed until the sample rate converter has completed. If there is not enough data to fill the input buffer he sees it as a starve condition, although it may not truely be. It also now only consumes the amount of data that was valid in the buffer, not the entire useful amount of the frame. The frame-fill is now completed with zero-padding if not enough data is available to fill it. Previously...if there was any starve condition at all, the frame was just skipped and silence was played, now it will play this partial bit if data at the end of the stream. This was never really audible, but maybe, hard to say.
Next up: Rethink the startup latency issue!

Change 721590 by speterson@spetersondev on 2003/05/15 14:41:55
Summary: Modified nvack to set the default format of audio recording to CD Quality. This fixes various issues with the Realtek codecs that have DC offset and cause 8 bit recording to sound very bad.

Change 721157 by tblanchard@tblanchard-xp on 2003/05/15 02:11:39
Summary: Added code to not display the Meters button and collapse the Meters view if the APU is not present.

Change 721150 by tblanchard@tblanchard-xp on 2003/05/15 01:41:42
Summary: Changed CinemaSurround to CineSurround.

Change 721149 by tblanchard@tblanchard-xp on 2003/05/15 01:32:38
Summary: Added ACI only volume premix support.

Change 720855 by jweintraub@jweintraub-home on 2003/05/14 18:23:54
VAPU-
1.) Finally fixed the noise issue when playing wave files with mplayer2 or Windows Media Player. The fix is an extension to the changes added to handle missed interrupts. Because now we have 8 chunks of memory associated with the ACI playback, and we write data behind the ACI pointer, we need not start incrementing the ACI period count per voice until the ACI actually catches up to the real data. We also will not begin to release used up SSLs until the data is actually played. This affects startup latency..which I need to rethink.
2.) Added code to release any remaining SSLs at the end of a stream after VoiceOff is received.
3.) Added a SGE Release (g_sge) structure array to be compared with the current SGE (g_sge), This saves each PRD as its added and as its released, the 2 arrays can easily be compared. Both fall under the VAPU_HISTORY debug code, that is disabled by default.
4.) Some cleanup to the SRC code, as I was verifying the code I came across a few things that were not needed or needed to be enhanced. This includes the CalculatePitch function in vp.cpp.
5.) Modified SetHrtfFilter routine, since we dont use HRTF any more, and since there is no APU, this function can no longer be executed (especially with Scott's latest changes which cause page faults in VAPU). Moved the VAPU stuff to the top of that function (i.e. updating of azimuth and elevation), and then just return. This will also make the 3D updates faster, eliminating all of the now unnecessary table lookup code.
6.) Fixed an HCT error (locks up entire system), where a stream would starve before it actually began playing. I now let it start and worry about starving once its playing (as previous).
7.) Fixed another HCT bug (KsPosAudio test 16:26.1.5) which caused a page fault. This occurred when trying to access a PRD, when the PRDCount for the particular SSL was zero. This is now a new starve condition.
8.) Added ACI buffer defines for the first and last buffer, so that changing the ACI buffer space in the future will be simpler.
Currently all of the HCTs are not 100% yet....In DirectSound 4 tests fail (4-11,12,18,19, though 11 and 18 run sometimes) all exactly the same way by locking the machine up tight (cant even access softICE). All of the rest of the DS tests run error free. All of the WaveOut tests run, and only 1 KsPosAudio test fails 16:26.1.1 startup latency).
Important Note:
There is a bit called g_OldNoisyWay (in nvmcp) that is set to true in vp.cpp. To get the new code 'without the noise' to function, just set this global bit in softICE to a zero. Until I get the HCTs to run error free I am disabling the fix.

Change 720846 by vinodg@vinod_audio on 2003/05/14 18:20:25
changes added in driver code to support the ioctls for nvaudio GUI.

Change 720837 by gklimanis@gklimanis-driverpull on 2003/05/14 18:17:27
Restored multi-channel output for all reverb DSp test files. Somewhere, a change
forced all of these to left-channel only output. Friggin' mono !

Change 720836 by gklimanis@gklimanis-driverpull on 2003/05/14 18:16:42
Added clearing of GP Read+Write mix buffers 0-5 to eliminate whining during dsp
fx development.

Change 720832 by vinodg@vinod_audio on 2003/05/14 18:13:57
Main page is completely functional .
To do - scale the premix volume based on master vol and info page.

Change 720816 by gklimanis@gklimanis-driverpull on 2003/05/14 18:04:10
GP tools: files to clear out "whiny" mix buffers during DSP development.
Individual control over each Read+Write mix bin.
Plus, some batch files to clear out groups for IO1, IO2 and IO4 based fx.

Change 720723 by sholmes@wilbur on 2003/05/14 17:07:06
BUGID: 79239
Summary:
Moved the positions of the notifiers being cleared, the game seems to like them better there. Added a call to make sure that when we starve, we try to get more mappings. Removed other code that was making Mafia run worse. The only stuttering I hear now is not a result of the kmixer starving from what I can tell. When the stuttering occurs, we are no longer in a constant state of starvation.

Change 720543 by mpereira@PEGASUS on 2003/05/14 15:19:06
Updated to support the "restore settings to system defaults" feature.
Added a RestoreSystemDefaults method to all the views.
Added CMainFrame::RestoreSystemDefaults which calls all the views restore methods.
Updated InformationView::OnSystemDefaults handler to call the main frame handler
Updated EqualizerView restore method to destroy and recreate the HW equalizer presets. (User presets are preserved)
Updated the EqualizerPreset class to add support for restore functionality

Change 720308 by tblanchard@tblanchard-xp on 2003/05/14 13:26:19
Summary: Added framework for Custom Drawn slider controls.

Change 720218 by speterson@spetersondev on 2003/05/14 12:30:34
Summary: Changed update of surround delay time so it doesn't reinitialize all the surround modes in the driver

Change 720198 by speterson@spetersondev on 2003/05/14 12:18:23
Summary: Removed some tests for parameter changes that were preventing surround modes from being set consistently.

Change 718728 by tblanchard@tblanchard-xp on 2003/05/13 19:18:00
Summary: Corrected code to not synchronize Recording Control with Digitized Input in ACI only mode.
Code also hides the Digitize Input check box if APU is not present.

Change 714788 by gklimanis@gklimanis-driverpull on 2003/05/13 16:36:11
Reduced late reverb maximum level from +20 dB to +10 dB to reduce
overloading, noticed in the Matrix game (Morpheus chase scene, in
which a 20 second reverb decay time was used.

Change 714786 by speterson@spetersondev on 2003/05/13 16:34:49
Summary: Fixed various surround mode and speaker configuration setting problems

Change 714760 by gklimanis@gklimanis-driverpull on 2003/05/13 16:23:23
Write high level parameter date to debug area for DSP modules:
(currently, only useful for regular and i3dl2 reverb)
1. reverb_util.cpp/h : added function to write reverb/io3dl2 reverb
high level parameter date to system memory
to help debug the Matrix game reverb problem.
2. DSP_util.cpp/h : moved DSP module debug entry list in scratch memory,
and expanded to accomodate high level parameter
data.
3. Audiofx.cpp/h : writes high level parameter data to debug entry lists
for Update() and SetModule_SmallState2(), used by
UpdateModule().

Change 714741 by gklimanis@gklimanis-driverpull on 2003/05/13 16:12:14
Check-in of binaries for latest changes in DSP tools.
If you use the command line module viewer and other DSP build tools,
update to these binaries.

Change 714740 by gklimanis@gklimanis-driverpull on 2003/05/13 16:12:06
Added function to print DSP module high level parameters to WinICE or
file/console.
Also, changed default IO1, IO2 routings in hopes of restoring
the proper APU routing to the console-based DSP tools. So far,
only have one channel going.

Change 714525 by speterson@spetersondev on 2003/05/13 14:00:07
Summary: Fixed issue with DirectSound SetSpeakeronfiguration API not correctly setting 6 channel mode reliably.

Change 713778 by builder@BUILDERNV4_16 on 2003/05/12 19:49:28
Updated version to 3.42

Change 713766 by builder@BUILDERNV4_16 on 2003/05/12 19:35:28
Updated DriverVer to 05/12/2003

Change 713763 by builder@BUILDERNV4_16 on 2003/05/12 19:35:17
Updated version for 3.42

Change 713758 by builder@BUILDERNV4_16 on 2003/05/12 19:35:07
Updated version to 3.42

Change 713737 by speterson@spetersondev on 2003/05/12 19:19:19
Summary: Fix for Sony codec initilization failure.
BUGID: 80377

Change 713610 by gklimanis@gklimanis-driverpull on 2003/05/12 17:45:20
Tools for viewing DSP info in system memory without WinICE.

Change 713398 by tblanchard@tblanchard-xp on 2003/05/12 16:09:11
Summary: Fixes VU Meter drawing problem where the meter band was being drawn in the wrong position.

Change 713118 by speterson@spetersondev on 2003/05/12 13:04:26
Summary: Removed more tabs

Change 713042 by speterson@spetersondev on 2003/05/12 12:17:59
Summary: Removed tabs inadvertantly added in last check in
Reviewed by speterson

Change 712951 by jweintraub@jweintraub-home on 2003/05/12 11:33:44
VAPU- Removed the old HRTF based 3D, that was not used and did not work and was slow. We now have John's 3D only, which is working. Nv3D.cpp/h and InterpTable.cpp/.h are no longer needed. Many variables removed, structures cleaned up etc..

Change 712932 by speterson@spetersondev on 2003/05/12 11:19:45
Summary: 3D HRTF performance optimization. Write directly to HRTF Target memory without using method queue.
Modified voice off routine so that we directly write to the voice structure. This avoids the interupt
required since VoiceOff is implemented as a software method in the resman anyway to work around HW issues.
Direct writing of SSL structures, bypassing the method Q
Reviewed by speterson

Change 712819 by speterson@spetersondev on 2003/05/12 10:09:33
Summary: Reduced rate of polling for command queue in the global DSP processor so that C1 disconnect will disconnect.
Bugid: 79869

Change 712174 by sholmes@wilbur on 2003/05/10 00:22:41
BUGID: 79329
Summary:
Added a pause when the kmixer stream starved. It gets resumed the next time more PRDs are submitted. It seems that just disable interrupts on the voice is not enough as submitting the next round of PRDs immediately causes an interrupt unless the voice is paused. This seems to fix the remaining problems with Mafia on my setup. We still starve but its not even audible.
Removed the MOUT code from nvaudio.cpp where it was always writing to the debug buffer to make sure that wasn't also causing/preventing problems with Mafia.

Change 711996 by vinodg@vinod_audio on 2003/05/09 18:14:58
adding more functions to common lib.
Speaker selection,Main output volume sliders,Record selection are fully functional now.
To do :- Support Mute, Premix volumes and information page.

Change 711994 by jnorris@jnorris-nf420 on 2003/05/09 18:14:43
Summary: Implementation of a routine to improve the rear 3d effect for VAPU NV3ds
Added a matlab file (rear.m) that plots and calculates the positional filters

Change 711974 by gklimanis@gklimanis-driverpull on 2003/05/09 18:06:18
Chased down memory address definition problem between resman, audio driver and DSP
kernel. Cool !
Reviewed by Gints Klimanis III
Reviewed by: Gints Klimanis III
Reviewer: Gints Klimanis III

Change 711935 by jweintraub@jweintraub-home on 2003/05/09 17:47:05
Removed all of the Tabs from this file that DVSBuilder complained about.

Change 711861 by jweintraub@jweintraub-home on 2003/05/09 17:06:31
VAPU- More debug code.
1.) Added a new history tracking define "VAPU_HISTORY" to enable tracking of GetPosition info, Interrupts, PRDs etc.. within the VAPU code.
2.) Added code to track the History of all GetPosition calls for a particular voice.
3.) Added code to track all PRDs written and released for a particular voice.
4.) Added code to track all relevant information for all interrupts for a particular voice.
5.) Add code to verify that the Elapsed time calculated based on ACI interrupts does not drift from the real time elapsed since the particular stream began. There is drift which may be the issue, but a fix!!!!!.
6.) All VAPU error checking is now under the same define as the History tracking. More error checking added.

Change 711403 by mpereira@PEGASUS on 2003/05/09 13:34:30
update to disable OK button until a non empty string is present in the edit box.

Change 711329 by jweintraub@jweintraub-home on 2003/05/09 12:34:37
Steve's last checkin broke VAPU, by not checking an optional pointer before using it, causing a page fault.

Change 711262 by jweintraub@jweintraub-home on 2003/05/09 11:55:11
Corrected error when writing a WaveFile from the driver based on streaming data (obscure function that I enabled for use). The Format.cbSize was not being set correctly (or at all actually) in the wave header.

Change 711230 by sholmes@wilbur on 2003/05/09 11:45:21
Restored voice FIFO check for VAPU GetPosition call. I had removed it since all methods in the fifo are assumed to be complete before the position call is made, but I'll put it back for safety reasons.

Change 711205 by sholmes@wilbur on 2003/05/09 11:22:00
BUGID: 79329
Summary:
More fixes for bug #79329.
Release all the buffers queued in nvmcp.sys when we starve. This fixes the continuous major glitching that never corrects. There is still a small buzzing that happens on occasions but general gets fixed the next time the stream starves. Since when we starve its generally for a period longer than 10ms, which is about what is queued up so we probably should have played this data anyways in that time.
Returned position reads to read them directly from the voice structure to speed up the position calls.
Added position integrity checks that were just in debug statements to release code. Under heavy loads, the APU is sometimes returning a bogus position. The position seems to be a bogus offset in the PRD. Timewise, the offset would be correct if I had really programmed that length for the PRD. When this happens, I just reread the position from the hardware.
Updated the memory writes to include a timestamp that can be enabled/disabled via gDebugTimeLog global variable.
Updated the debug extension to print things out from top to bottom instead of bottom to top. Retained the old version via a /r option. Also modified it to take a debug buffer size. Someday will make it so it reads the values of the symbols so the parameters won't be necessary but the documentation on how to do that isn't clear.

Change 711184 by mpereira@PEGASUS on 2003/05/09 11:13:14
adding back files with the correct case in the path (Apps instead of apps)

Change 711181 by mpereira@PEGASUS on 2003/05/09 11:11:59
incorrect case used in path (apps instead of Apps)...

Change 710794 by mpereira@PEGASUS on 2003/05/08 22:12:37
added support for mixer presets
moved user presets preferences to registry. allows user to add, rename and remove presets (including hw presets)
added checks for invalid names, etc

Change 710692 by tblanchard@tblanchard-xp on 2003/05/08 19:39:02
Added special handling for the Digitize Input checkbox. It's actually the opposite of what the Mixer control does. The Mixer control is a Mute All button, so selecting it disables Digitized Input whereas nvMixers button is an enabler.

Change 710487 by tblanchard@tblanchard-xp on 2003/05/08 17:13:53
Updated to use CControlBrushManager for gradient background.

Change 710418 by tblanchard@tblanchard-xp on 2003/05/08 16:53:57
Added preset prompts.

Change 710286 by tblanchard@tblanchard-xp on 2003/05/08 15:58:48
Input selection logic fully complete. The recording input and digitized input correlation is complete and mutes the digitized input if a selected recording input is not found.

Change 710282 by tblanchard@tblanchard-xp on 2003/05/08 15:56:39
Removed registry entry to select last input that nvMixer remembers using since this actually changes the active input.

Change 709565 by speterson@spetersondev on 2003/05/08 10:36:25
Adding autogenerated release notes script

Change 707923 by kwhite@KWHITE-DT on 2003/05/07 12:42:37
Fix version number for next time.

Change 707888 by builder@BUILDERNV4_1 on 2003/05/07 12:19:23
Updated version to 342

Change 707879 by builder@BUILDERNV4_1 on 2003/05/07 12:12:26
Updated version to 3.42

Change 707273 by builder@BUILDERNV4_16 on 2003/05/06 18:16:27
Updated version to 3.42

Change 707248 by builder@BUILDERNV4_16 on 2003/05/06 18:02:01
Updated DriverVer to 05/06/2003

Change 707242 by builder@BUILDERNV4_16 on 2003/05/06 18:01:46
Updated version for 3.42

Change 707230 by builder@BUILDERNV4_16 on 2003/05/06 17:59:09
Updated version to 3.42

Change 706994 by vinodg@vinod_audio on 2003/05/06 16:03:04
Fix for ac3 playback - if the ac3 data is coming with AFMT_S16_LE format, verifying the data for ac3 signature and set it as ac3passthrough.

Change 706382 by tblanchard@tblanchard-xp on 2003/05/06 10:58:19
Added registry string for last selected input.

Change 706377 by jnorris@jnorris-nf420 on 2003/05/06 10:55:30
Enabled the virtual rear mixdown routine and modified the create center, xtc and virtual position routines in terminator.

Change 706128 by tblanchard@tblanchard-xp on 2003/05/06 02:43:27
* Added handler for the Input combobox selection change.
* Added method to select an Input on startup. The method checks the registry to see if the application was previously run and retrieves the last selection the user made. If no Input is found in the registry then it will just select the first item from the Input combobox.
* Properly populates the Input combobox with all of the Recording Inputs.

Change 706112 by sholmes@wilbur on 2003/05/06 01:27:28
Fix for bug 79329. There was a synchronization problem with the kernel mixer stream where the release entry could be updated twice if an interrupt was missed which would cause some list entries not to be released. When this happens, it would cause the kernel stream to have a constant buzz.
Also changed notifiers and position so that it always happens on the last voice making up a stream. Otherwise it possible that slaved voices may not have completed the processing when buffers and positions are computed.

Change 706088 by tblanchard@tblanchard-xp on 2003/05/06 00:31:39
Changed Mixer struct to contain a generic CButton instead of a CBitmapToggleButton to accomodate the regular Mic Boost button.

Change 705905 by vinodg@vinod_audio on 2003/05/05 19:02:23
Added Multichannel support to Sigmatel and ADI codec.
Added code for downmix the data based on speaker selection and wave channels.
It is not enabled in this checkin.

Change 705439 by vinodg@vinod_audio on 2003/05/05 14:54:03
Layout for main and Information pages are done.

Change 705433 by tblanchard@tblanchard-xp on 2003/05/05 14:51:33
Modified Volume Setup page. The Input section now has two radio button options below the slider, Digitize Input and Mic Boost. These use to exist in the dropdown list, but could not function properly that way.
The Mic Boost button is hooked up and working correctly, but all the inputs are incorrectly being mapped to the Stereo Mix line control. Next checkin will address this.

Change 705403 by tblanchard@tblanchard-xp on 2003/05/05 14:41:39
Updated timer code to use static const member for the timer ID.

Change 705237 by jweintraub@jweintraub-home on 2003/05/05 13:07:09
VAPU-
1.) Changed the ACI playback buffers. Previously there were 4 PRDs, divided in half to act as a ping-pong buffer between interrupts. But interrupts were being missed (sometimes as many as 5 consecutively) and data was not being written to the correct location within the ACI, and data would be replayed due to the missing interrupts. Now the playback buffer is made up of 16 PRDs in 8 groups (i.e. 8 unique interrupts with unique tags). If any interrupts are missed (up to seven consecutve, over 37ms), the process code will catch up and write the amount of data that is needed (normally only 1 of the 8 groups of PRDs are updated per period, but the misses do occur, though not regularly).
2.) More modifications to the error detection code.
Note: The above (#1), while needed, does not correct the drifting issue and I dont yet know why :( ....yet

Change 704845 by speterson@spetersondev on 2003/05/05 08:09:16
Updated sources file to point at DirectX9 DDK. nvmcp.sys was already pointing to DX9 DDK and this change allowed me to remove some DX7 and DX8 DDK files from my clientspec to free up some disk space

Change 704158 by vinodg@vinod_audio on 2003/05/02 19:22:35
Temporary fix for 79154.
As spdif supports only 48Khz samplerate, we are restricting the hardware to play through 48Khz only. This caused issue with the games QA3 and UT2003. As a temporary solution adding a module parameter to disable the spdif support ( which enable the variable samplerate support) while playing these games. By default the spdif is on.

Change 703968 by builder@BUILDERNV4_16 on 2003/05/02 17:09:24
Updated version to 3.41

Change 703914 by builder@BUILDERNV4_16 on 2003/05/02 16:55:35
Updated DriverVer to 05/02/2003