Kodi Community Forum

Full Version: MilkDrop preset lock doesn't work (fix/workaround found)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
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:
  1. Press 'L' on the keyboard to lock the current preset
  2. Press 'P' on the keyboard to get the preset list and choose the preset you like
  3. Confirm your chosen preset remains locked
  4. Stop the music
  5. Start the music again
  6. The MilkDrop preset will be unlocked and it will randomly change

Kodi debug log shows the following errors.
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:Confusedet_setting_bool - invalid setting type
2019-12-25 18:34:23.718 T:2684   ERROR: kodi::General::ADDON::CAddonDll:Confusedet_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:
        <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):
        <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>
Is there some other better or more appropriate forum section in which I should report this info, so that it will be seen by the right people?