2019-12-25, 10:43
MilkDrop v2.0.4 exhibits this problem. I've reproduced it with Kodi v17.6 and v18.4, both on Windows 10 1903. I have not checked if MilkDrop 2 exhibits the same problem.
To produce the problem - while playing music with MilkDrop in fullscreen:
Kodi debug log shows the following errors.
The add-on file
C:\Users\USERNAME\AppData\Roaming\Kodi\addons\visualization.milkdrop\resources\settings.xml
seems to be the problem. Changing the settings definitions contained within fixes the issue.
From this:
To this (substitute your Windows username below):
To produce the problem - while playing music with MilkDrop in fullscreen:
- Press 'L' on the keyboard to lock the current preset
- Press 'P' on the keyboard to get the preset list and choose the preset you like
- Confirm your chosen preset remains locked
- Stop the music
- Start the music again
- The MilkDrop preset will be unlocked and it will randomly change
Kodi debug log shows the following errors.
txt:2019-12-25 18:34:08.832 T:2684 DEBUG: ADDON: Dll Initializing - MilkDrop
2019-12-25 18:34:08.832 T:2684 DEBUG: SECTION:LoadDLL(C:\Users\htpc\AppData\Roaming\Kodi\addons\visualization.milkdrop\visualization.milkdrop.dll)
2019-12-25 18:34:08.837 T:2684 DEBUG: CAddonSettings[visualization.milkdrop]: loading setting definitions
2019-12-25 18:34:08.837 T:2684 ERROR: CSetting: missing <control> tag of "lastpresetfolder"
2019-12-25 18:34:08.837 T:2684 WARNING: CSettingGroup: unable to read setting "lastpresetfolder"
2019-12-25 18:34:08.837 T:2684 ERROR: CSetting: missing <control> tag of "lastpresetidx"
2019-12-25 18:34:08.837 T:2684 WARNING: CSettingGroup: unable to read setting "lastpresetidx"
2019-12-25 18:34:08.837 T:2684 ERROR: CSetting: missing <control> tag of "lastlockedstatus"
2019-12-25 18:34:08.837 T:2684 WARNING: CSettingGroup: unable to read setting "lastlockedstatus"
2019-12-25 18:34:08.839 T:2684 DEBUG: CAddonSettings[visualization.milkdrop]: loading setting values
2019-12-25 18:34:08.839 T:2684 DEBUG: CSettingsManager: requested setting (lastlockedstatus) was not found.
2019-12-25 18:34:08.839 T:2684 DEBUG: CAddonSettings[visualization.milkdrop]: failed to find definition for setting lastlockedstatus. Creating a setting on-the-fly...
2019-12-25 18:34:08.840 T:2684 DEBUG: CSettingsManager: requested setting (lastpresetfolder) was not found.
2019-12-25 18:34:08.840 T:2684 DEBUG: CAddonSettings[visualization.milkdrop]: failed to find definition for setting lastpresetfolder. Creating a setting on-the-fly...
2019-12-25 18:34:08.840 T:2684 DEBUG: CSettingsManager: requested setting (lastpresetidx) was not found.
2019-12-25 18:34:08.840 T:2684 DEBUG: CAddonSettings[visualization.milkdrop]: failed to find definition for setting lastpresetidx. Creating a setting on-the-fly...
...
2019-12-25 18:34:08.877 T:2684 ERROR: kodi::General::ADDON::CAddonDll::get_setting_bool - setting 'lastlockedstatus' is not a boolean in 'MilkDrop'
2019-12-25 18:34:08.881 T:2684 ERROR: kodi::General::ADDON::CAddonDll::get_setting_int - setting 'lastpresetidx' is not a integer in 'MilkDrop'
...
2019-12-25 18:34:23.717 T:2684 ERROR: kodi::General::ADDON::CAddonDll:et_setting_bool - invalid setting type
2019-12-25 18:34:23.718 T:2684 ERROR: kodi::General::ADDON::CAddonDll:et_setting_int - invalid setting type
The add-on file
C:\Users\USERNAME\AppData\Roaming\Kodi\addons\visualization.milkdrop\resources\settings.xml
seems to be the problem. Changing the settings definitions contained within fixes the issue.
From this:
xml:<setting id="lastpresetfolder" type="string">
<visible>false</visible>
<default></default>
</setting>
<setting id="lastpresetidx" type="integer">
<visible>false</visible>
<default>0</default>
</setting>
<setting id="lastlockedstatus" type="boolean">
<visible>false</visible>
<default>false</default>
</setting>
To this (substitute your Windows username below):
xml:<setting id="lastpresetfolder" type="string">
<visible>false</visible>
<default>zip://C%3A%2FUsers%2FUSERNAME%2FAppData%2FRoaming%2FKodi%2Faddons%2Fvisualization.milkdrop%2Fpresets%2FWA51-presets(265).zip/</default>
<control type="edit" format="string" />
</setting>
<setting id="lastpresetidx" type="integer">
<visible>false</visible>
<default>0</default>
<control type="edit" format="string" />
</setting>
<setting id="lastlockedstatus" type="boolean">
<visible>false</visible>
<default>false</default>
<control type="toggle" />
</setting>