Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tracktion_DeviceManager does not save changed audio setup properly #27

Open
fab672000 opened this issue Oct 27, 2020 · 0 comments
Open

Comments

@fab672000
Copy link

fab672000 commented Oct 27, 2020

Easily reproduceable with the MidiRecordingDemo on Windows with current develop branch:

Just use the audio setup setting and change the combox box to another asio driver -> the previous ASIO driver selection will get saved instead of the current freshly selected one, and never saved again ; resulting in improper driver selection saved and restored on next run in the Settings.xml file for the MidiRecordingDemo app (in C:\Users<user>\AppData\Roaming\MidiRecordingDemo)

This happens because the asynchronous call indirectly call the saving before the new configuration setup is set in combo box:
More precisely:
updateOutputsComboBox() calls indirectly saveSettings() too early when device is about to start, but not after changing the device, resulting in the saveSettings() call to call the the audio setup before the combo new item has changed to the new config.

In order to reproduce and see the stack easily and the problem just set a breakpoint in void DeviceManager::saveSettings()
line 704:
*storage.setXmlProperty (SettingID::audio_device_setup, audioXml);

It will be called 2 times: once at startup, then once after the combo box is changed but too early ....

Hope this helps

PS: I checked that the save/restore code for the device manager works fine on waveform pro 11.0.26 and also 11.1.0 , so the lib code seems to be different / not reusing traktion engine API to handle the DeviceManager? Surprised.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant