diff options
4 files changed, 145 insertions, 409 deletions
diff --git a/addons/visualization.milkdrop/resources/language/English/strings.xml b/addons/visualization.milkdrop/resources/language/English/strings.xml index 64dab7bb31..f776d72480 100644 --- a/addons/visualization.milkdrop/resources/language/English/strings.xml +++ b/addons/visualization.milkdrop/resources/language/English/strings.xml @@ -11,4 +11,15 @@ <string id="30007">Maximum Refresh Rate</string> <string id="30008">Enable Stereo 3D</string> <string id="30009">Preset Pack</string> + <string id="30010">User Preset Folder </string> + <string id="30011">Preset Shuffle Mode</string> + + <string id="30020">WA51 Presets</string> + <string id="30021">Winamp Presets</string> + <string id="30022">User Defined Preset Folder</string> + + <!-- setting value formats --> + <string id="30050">%2.0f secs</string> + <string id="30051">%2.0f %%</string> + <string id="30052">%2.0f fps</string> </strings> diff --git a/addons/visualization.milkdrop/resources/language/Hungarian/strings.xml b/addons/visualization.milkdrop/resources/language/Hungarian/strings.xml index 73b16ed51d..b10a72525a 100644 --- a/addons/visualization.milkdrop/resources/language/Hungarian/strings.xml +++ b/addons/visualization.milkdrop/resources/language/Hungarian/strings.xml @@ -1,14 +1,26 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<strings> - <!-- beállítás feliratok --> - <string id="30000">Automatikus keverési idő</string> - <string id="30001">Idő a beállításkészletek között</string> - <string id="30002">Többlet véletlen idő</string> - <string id="30003">Anisotropic szűrés bekapcsolása</string> - <string id="30004">Éles váltások engedélyezése</string> - <string id="30005">Hangerőküszöb az éles váltásokhoz</string> - <string id="30006">Átlagos idő az éles váltások között</string> - <string id="30007">Maximális frissítési frekvencia</string> - <string id="30008">Sztereó 3D engedélyezése</string> - <string id="30009">Beállításkészlet-csomag</string> -</strings> +<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<strings>
+ <!-- beállítás feliratok -->
+ <string id="30000">Automatikus keverési idő</string>
+ <string id="30001">Idő a beállításkészletek között</string>
+ <string id="30002">Többlet véletlen idő</string>
+ <string id="30003">Anisotropic szűrés bekapcsolása</string>
+ <string id="30004">Éles váltások engedélyezése</string>
+ <string id="30005">Hangerőküszöb az éles váltásokhoz</string>
+ <string id="30006">Átlagos idő az éles váltások között</string>
+ <string id="30007">Maximális frissítési frekvencia</string>
+ <string id="30008">Sztereó 3D engedélyezése</string>
+ <string id="30009">Beállításkészlet-csomag</string>
+ <string id="30010">Saját-készlet mappa </string>
+ <string id="30011">Keverési mód</string>
+
+ <string id="30020">WA51 beállításkészlet</string>
+ <string id="30021">Winamp beállításkészlet</string>
+ <string id="30022">Felhasználói készlet</string>
+
+ <!-- beállítási érték formátumok -->
+ <string id="30050">%2.0f mp</string>
+ <string id="30051">%2.0f %%</string>
+ <string id="30052">%2.0f fps</string>
+
+</strings>
diff --git a/addons/visualization.milkdrop/resources/settings.xml b/addons/visualization.milkdrop/resources/settings.xml new file mode 100644 index 0000000000..6cd58f6047 --- /dev/null +++ b/addons/visualization.milkdrop/resources/settings.xml @@ -0,0 +1,16 @@ +<settings>
+ <setting id="lastpresetfolder" type="text" default="" visible="false" />
+ <setting id="lastpresetidx" type="integer" default="0" visible="false" />
+ <setting id="lastlockedstatus" type="bool" default="false" visible="false" />
+ <setting id="Preset Pack" type="enum" label="30009" lvalues="30020|30021|30022" default="0"/>
+ <setting id="User Preset Folder" type="folder" visible="eq(-1,2)" source="" label="30010" default=""/>
+ <setting id="Preset Shuffle Mode" type="bool" label="30011" default="true"/>
+ <setting id="Automatic Blend Time" type="rangeofnum" label="30000" rangestart="1" rangeend="10" elements="10" valueformat="30050" default="0"/>
+ <setting id="Time Between Presets" type="rangeofnum" label="30001" rangestart="5" rangeend="50" elements="10" valueformat="30050" default="0"/>
+ <setting id="Additional Random Time" type="rangeofnum" label="30002" rangestart="5" rangeend="50" elements="10" valueformat="30050" default="0"/>
+ <setting id="Enable Hard Cuts" type="bool" label="30004" default="false"/>
+ <setting id="Loudness Threshold For Hard Cuts" type="rangeofnum" enable="eq(-1,true)" label="30005" rangestart="0" rangeend="100" elements="11" valueformat="30051" default="0"/>
+ <setting id="Average Time Between Hard Cuts" type="rangeofnum" enable="eq(-2,true)" label="30006" rangestart="5" rangeend="120" elements="24" valueformat="30050" default="0"/>
+ <setting id="Maximum Refresh Rate" type="rangeofnum" label="30007" rangestart="20" rangeend="60" elements="9" valueformat="30052" default="6"/>
+ <setting id="Enable Stereo 3d" type="bool" label="30008" default="false"/>
+</settings>
diff --git a/xbmc/visualizations/Milkdrop/MilkdropXBMC.cpp b/xbmc/visualizations/Milkdrop/MilkdropXBMC.cpp index cfe2bb0bf5..7b54e92ef4 100644 --- a/xbmc/visualizations/Milkdrop/MilkdropXBMC.cpp +++ b/xbmc/visualizations/Milkdrop/MilkdropXBMC.cpp @@ -19,75 +19,60 @@ * */ -#include <windows.h> -#include <io.h> #include "vis_milkdrop/Plugin.h" #include "../../addons/include/xbmc_vis_dll.h" -#include "../../addons/include/xbmc_addon_cpp_dll.h" #include "XmlDocument.h" #include <string> #include <direct.h> - -#define strnicmp _strnicmp -#define strcmpi _strcmpi - CPlugin* g_plugin=NULL; char g_visName[512]; -#define PRESETS_DIR "special://xbmc/addons/visualization.milkdrop/presets" +#define PRESETS_DIR "zip://special%3A%2F%2Fxbmc%2Faddons%2Fvisualization.milkdrop%2Fpresets%2F" -char m_szPresetSave[256] = ""; -char g_packFolder[256] = "Milkdrop"; +bool g_UserPackFolder; std::string g_configFile; -// settings vector -std::vector<DllSetting> g_vecSettings; -StructSetting** g_structSettings; -unsigned int g_uiVisElements; - -int htoi(const char *str) /* Convert hex string to integer */ -{ - unsigned int digit, number = 0; - while (*str) - { - if (isdigit(*str)) - digit = *str - '0'; - else - digit = tolower(*str)-'a'+10; - number<<=4; - number+=digit; - str++; - } - return number; -} - +int lastPresetIndx =0; +char lastPresetDir[1024] = ""; +bool lastLockedStatus = false; +// Sets a new preset file or directory and make it active. Also recovers last state of the preset if it is the same as last time void SetPresetDir(const char *pack) { int len = strlen(pack); - if (len >= 4 && strcmpi(pack + len - 4, ".zip") == 0) + if (len >= 4 && strcmp(pack + len - 4, ".zip") == 0) { // Zip file - strcpy(g_plugin->m_szPresetDir, "zip://special%3A%2F%2Fxbmc%2Faddons%2Fvisualization.milkdrop%2Fpresets%2F"); + strcpy(g_plugin->m_szPresetDir, PRESETS_DIR); strcat(g_plugin->m_szPresetDir, pack); strcat(g_plugin->m_szPresetDir, "/"); } - else if (len >= 4 && strcmpi(pack + len - 4, ".rar") == 0) + else if (len >= 4 && strcmp(pack + len - 4, ".rar") == 0) { // Rar file - strcpy(g_plugin->m_szPresetDir, "zip://special%3A%2F%2Fxbmc%2Faddons%2Fvisualization.milkdrop%2Fpresets%2F"); + strcpy(g_plugin->m_szPresetDir, PRESETS_DIR); strcat(g_plugin->m_szPresetDir, pack); strcat(g_plugin->m_szPresetDir, "/"); } else { // Normal folder - strcpy(g_plugin->m_szPresetDir, PRESETS_DIR); - strcat(g_plugin->m_szPresetDir, "/"); - strcat(g_plugin->m_szPresetDir, pack); - strcat(g_plugin->m_szPresetDir, "/"); + strcpy(g_plugin->m_szPresetDir, pack); + } + if (strcmp (g_plugin->m_szPresetDir, lastPresetDir) == 0) + { + // If we have a valid last preset state AND the preset file(dir) is the same as last time + g_plugin->UpdatePresetList(); + g_plugin->m_bHoldPreset = lastLockedStatus; + g_plugin->m_nCurrentPreset = lastPresetIndx; + strcpy(g_plugin->m_szCurrentPresetFile, g_plugin->m_szPresetDir); + strcat(g_plugin->m_szCurrentPresetFile, g_plugin->m_pPresetAddr[g_plugin->m_nCurrentPreset]); + g_plugin->LoadPreset(g_plugin->m_szCurrentPresetFile, g_plugin->m_fBlendTimeUser); } + else + // If it is the first run or a newly chosen preset pack we choose a random preset as first + g_plugin->LoadRandomPreset(g_plugin->m_fBlendTimeUser); } void Preinit() @@ -105,34 +90,26 @@ extern "C" ADDON_STATUS Create(void* hdl, void* props) return STATUS_UNKNOWN; VIS_PROPS* visprops = (VIS_PROPS*)props; - strcpy(g_visName, visprops->name); - g_configFile = std::string(visprops->profile) + std::string("milkdrop.conf"); _mkdir(visprops->profile); - + Preinit(); g_plugin->PluginInitialize((LPDIRECT3DDEVICE9)visprops->device, visprops->x, visprops->y, visprops->width, visprops->height, visprops->pixelRatio); - return STATUS_NEED_SETTINGS; + return STATUS_NEED_SAVEDSETTINGS; // We need some settings to be saved later before we quit this plugin } extern "C" void Start(int iChannels, int iSamplesPerSec, int iBitsPerSample, const char* szSongName) -{ - -} +{} -void SaveSettings(); extern "C" void Stop() { if(g_plugin) { - SaveSettings(); g_plugin->PluginQuit(); delete g_plugin; g_plugin = NULL; } - g_vecSettings.clear(); - g_uiVisElements = 0; } unsigned char waves[2][576]; @@ -153,7 +130,6 @@ extern "C" void AudioData(const short* pAudioData, int iAudioDataLength, float * if (ipos >= 576) break; } } - } extern "C" void Render() @@ -202,311 +178,11 @@ extern "C" bool OnAction(long flags, const void *param) g_plugin->LoadRandomPreset(g_plugin->m_fBlendTimeUser); ret = true; } - /*if (ret) - SaveSettings();*/ - return ret; -} - -void FindPresetPacks() -{ - struct _finddata_t c_file; - long hFile; - int numPacks = 0; - DllSetting setting10(DllSetting::SPIN, "Preset Pack", "30009"); - char searchFolder[255]; - sprintf(searchFolder, "%s/*", PRESETS_DIR); - - if( (hFile = _findfirst(searchFolder, &c_file )) != -1L ) // note: returns filename -without- path - { - do - { - char szFilename[512]; - strcpy(szFilename, c_file.name); - - bool pack = false; - int len = strlen(c_file.name); - if (len < 4 || (strcmpi(c_file.name + len - 4, ".zip") != 0 && strcmpi(c_file.name + len - 4, ".rar") != 0)) - { - if (c_file.attrib & _A_SUBDIR && c_file.name[0] != '.') - { - pack = true; - } - } - else - { - pack = true; - } - - if (pack) - { - setting10.AddEntry(szFilename); - - if(strcmp(m_szPresetSave, "") == 0) - strcpy(m_szPresetSave, szFilename); - - if (strcmpi(m_szPresetSave, szFilename) == 0) - { - // Found current - setting10.current = numPacks; - } - numPacks++; - } - } - while(_findnext(hFile,&c_file) == 0); - - _findclose( hFile ); - } - - g_vecSettings.push_back(setting10); - + return ret; } void LoadSettings() -{ - XmlNode node; - CXmlDocument doc; - - char szXMLFile[1024]; - strcpy(szXMLFile,g_configFile.c_str()); - - // update our settings structure - // setup our settings structure (passable to GUI) - g_vecSettings.clear(); - g_uiVisElements = 0; - - // Load the config file - if (doc.Load(szXMLFile) >= 0) - { - node = doc.GetNextNode(XML_ROOT_NODE); - while(node > 0) - { - if (!strcmpi(doc.GetNodeTag(node),"PresetPack")) - { - char* nodeStr = doc.GetNodeText(node); - - // Check if its a zip or a folder - SetPresetDir(nodeStr); - // save dir so that we can resave the .xml file - strcpy(m_szPresetSave, nodeStr); - } - if (!strcmpi(doc.GetNodeTag(node),"PresetPackFolder")) - { - strcpy(g_packFolder, doc.GetNodeText(node)); - } - else if (!strcmpi(doc.GetNodeTag(node),"EnableRating")) - { - g_plugin->m_bEnableRating = !strcmpi(doc.GetNodeText(node),"true"); - } - else if (!strcmpi(doc.GetNodeTag(node),"InstaScan")) - { - g_plugin->m_bInstaScan = !strcmpi(doc.GetNodeText(node),"true"); - } - else if (!strcmpi(doc.GetNodeTag(node),"HardCutsDisabled")) - { - g_plugin->m_bHardCutsDisabled = !strcmpi(doc.GetNodeText(node),"true"); - } - else if (!strcmpi(doc.GetNodeTag(node),"TexSize")) - { - g_plugin->m_nTexSize = atoi(doc.GetNodeText(node)); - if (g_plugin->m_nTexSize != 256 && g_plugin->m_nTexSize != 512 && g_plugin->m_nTexSize != 1024 && g_plugin->m_nTexSize != 2048) - { - g_plugin->m_nTexSize = 1024; - } - } - else if (!strcmpi(doc.GetNodeTag(node),"MeshSize")) - { - g_plugin->m_nGridX = atoi(doc.GetNodeText(node)); - if (g_plugin->m_nGridX <= 8) - { - g_plugin->m_nGridX = 8; - } - - g_plugin->m_nGridY = g_plugin->m_nGridX*3/4; - - if (g_plugin->m_nGridX > MAX_GRID_X) - g_plugin->m_nGridX = MAX_GRID_X; - if (g_plugin->m_nGridY > MAX_GRID_Y) - g_plugin->m_nGridY = MAX_GRID_Y; - } - else if (!strcmpi(doc.GetNodeTag(node),"BlendTimeAuto")) - { - g_plugin->m_fBlendTimeAuto = (float)atof(doc.GetNodeText(node)); - } - else if (!strcmpi(doc.GetNodeTag(node),"TimeBetweenPresets")) - { - g_plugin->m_fTimeBetweenPresets = (float)atof(doc.GetNodeText(node)); - char txt[255]; - sprintf(txt, "Time between %d\n", g_plugin->m_fTimeBetweenPresets); - OutputDebugString(txt); - } - else if (!strcmpi(doc.GetNodeTag(node),"TimeBetweenPresetsRand")) - { - g_plugin->m_fTimeBetweenPresetsRand = (float)atof(doc.GetNodeText(node)); - } - else if (!strcmpi(doc.GetNodeTag(node),"HardCutLoudnessThresh")) - { - g_plugin->m_fHardCutLoudnessThresh = (float)atof(doc.GetNodeText(node)); - } - else if (!strcmpi(doc.GetNodeTag(node),"HardCutHalflife")) - { - g_plugin->m_fHardCutHalflife = (float)atof(doc.GetNodeText(node)); - } - else if (!strcmpi(doc.GetNodeTag(node),"MaxFPS")) - { - g_plugin->m_max_fps_fs = atoi(doc.GetNodeText(node)); - } - else if (!strcmpi(doc.GetNodeTag(node),"HoldPreset")) - { - g_plugin->m_bHoldPreset = atoi(doc.GetNodeText(node)) == 1; - } - else if (!strcmpi(doc.GetNodeTag(node),"CurrentPreset")) - { - g_plugin->m_nCurrentPreset = atoi(doc.GetNodeText(node)); - printf("loaded current preset = %i", g_plugin->m_nCurrentPreset); - } - else if (!strcmpi(doc.GetNodeTag(node),"Stereo3d")) - { - g_plugin->m_bAlways3D = !strcmpi(doc.GetNodeText(node),"true"); - } - else if (!strcmpi(doc.GetNodeTag(node),"LeftEyeCol")) - { - int col = htoi((doc.GetNodeText(node))); - char* cPtr = (char*)&col; - g_plugin->m_cLeftEye3DColor[0] = cPtr[3]; - g_plugin->m_cLeftEye3DColor[1] = cPtr[2]; - g_plugin->m_cLeftEye3DColor[2] = cPtr[1]; - } - else if (!strcmpi(doc.GetNodeTag(node),"RightEyeCol")) - { - int col = htoi((doc.GetNodeText(node))); - char* cPtr = (char*)&col; - g_plugin->m_cRightEye3DColor[0] = cPtr[3]; - g_plugin->m_cRightEye3DColor[1] = cPtr[2]; - g_plugin->m_cRightEye3DColor[2] = cPtr[1]; - } - node = doc.GetNextNode(node); - } - - doc.Close(); - FindPresetPacks(); - } - else - { - FindPresetPacks(); - if(strcmp(m_szPresetSave,"") != 0) - { - SetPresetDir(m_szPresetSave); - } - } - - g_plugin->UpdatePresetList(); - - DllSetting setting(DllSetting::SPIN, "Automatic Blend Time", "30000"); - for (int i=0; i < 50; i++) - { - char temp[10]; - sprintf(temp, "%2.1f secs", (float)(i + 1)/5); - setting.AddEntry(temp); - } - setting.current = (int)(g_plugin->m_fBlendTimeAuto * 5 - 1); - g_vecSettings.push_back(setting); - DllSetting setting2(DllSetting::SPIN, "Time Between Presets", "30001"); - for (int i=0; i < 55; i++) - { - char temp[10]; - sprintf(temp, "%i secs", i + 5); - setting2.AddEntry(temp); - } - setting2.current = (int)(g_plugin->m_fTimeBetweenPresets - 5); - g_vecSettings.push_back(setting2); - DllSetting setting3(DllSetting::SPIN, "Additional Random Time", "30002"); - for (int i=0; i < 55; i++) - { - char temp[10]; - sprintf(temp, "%i secs", i + 5); - setting3.AddEntry(temp); - } - setting3.current = (int)(g_plugin->m_fTimeBetweenPresetsRand - 5); - g_vecSettings.push_back(setting3); - DllSetting setting5(DllSetting::CHECK, "Enable Hard Cuts", "30004"); - setting5.current = g_plugin->m_bHardCutsDisabled ? 0 : 1; - g_vecSettings.push_back(setting5); - DllSetting setting6(DllSetting::SPIN, "Loudness Threshold For Hard Cuts", "30005"); - for (int i=0; i <= 100; i+=5) - { - char temp[10]; - sprintf(temp, "%i%%", i); - setting6.AddEntry(temp); - } - setting6.current = (int)((g_plugin->m_fHardCutLoudnessThresh - 1.25f) * 10.0f); - g_vecSettings.push_back(setting6); - DllSetting setting7(DllSetting::SPIN, "Average Time Between Hard Cuts", "30006"); - for (int i=0; i <= 115; i+=5) - { - char temp[10]; - sprintf(temp, "%i secs", i+5); - setting7.AddEntry(temp); - } - setting7.current = (int)((g_plugin->m_fHardCutHalflife - 5)/5); - g_vecSettings.push_back(setting7); - DllSetting setting8(DllSetting::SPIN, "Maximum Refresh Rate" ,"30007"); - for (int i=20; i <= 60; i+=5) - { - char temp[10]; - sprintf(temp, "%i fps", i); - setting8.AddEntry(temp); - } - setting8.current = (g_plugin->m_max_fps_fs - 20) / 5; - g_vecSettings.push_back(setting8); - - DllSetting setting9(DllSetting::CHECK, "Enable Stereo 3d" ,"30008"); - setting9.current = g_plugin->m_bAlways3D ? 1 : 0; - g_vecSettings.push_back(setting9); - -} - -void SaveSettings() -{ - char szXMLFile[1024]; - strcpy(szXMLFile,g_configFile.c_str()); - - WriteXML doc; - if (!doc.Open(szXMLFile, "visualisation")) - return; - - doc.WriteTag("PresetPackFolder", g_packFolder); - doc.WriteTag("PresetPack", m_szPresetSave); - doc.WriteTag("EnableRating", g_plugin->m_bEnableRating); - doc.WriteTag("InstaScan", g_plugin->m_bInstaScan); - doc.WriteTag("HardCutsDisabled", g_plugin->m_bHardCutsDisabled); - doc.WriteTag("TexSize", g_plugin->m_nTexSize); - doc.WriteTag("MeshSize", g_plugin->m_nGridX); - doc.WriteTag("BlendTimeAuto", g_plugin->m_fBlendTimeAuto); - doc.WriteTag("TimeBetweenPresets", g_plugin->m_fTimeBetweenPresets); - doc.WriteTag("TimeBetweenPresetsRand", g_plugin->m_fTimeBetweenPresetsRand); - - doc.WriteTag("HardCutLoudnessThresh", g_plugin->m_fHardCutLoudnessThresh); - doc.WriteTag("HardCutHalflife", g_plugin->m_fHardCutHalflife); - doc.WriteTag("MaxFPS", g_plugin->m_max_fps_fs); - doc.WriteTag("HoldPreset", g_plugin->m_bHoldPreset ? 1 : 0); - doc.WriteTag("CurrentPreset", g_plugin->m_nCurrentPreset); - doc.WriteTag("Stereo3d", g_plugin->m_bAlways3D ? true : false); - - unsigned int col; - char* c = (char*)&col; - c[0] = 0; - c[1] = g_plugin->m_cLeftEye3DColor[2]; - c[2] = g_plugin->m_cLeftEye3DColor[1]; - c[3] = g_plugin->m_cLeftEye3DColor[0]; - doc.WriteTag("LeftEyeCol", col, "%08X"); - c[0] = 0; - c[1] = g_plugin->m_cRightEye3DColor[2]; - c[2] = g_plugin->m_cRightEye3DColor[1]; - c[3] = g_plugin->m_cRightEye3DColor[0]; - doc.WriteTag("RightEyeCol", col, "%08X"); - - doc.Close(); -} +{} //-- GetPresets --------------------------------------------------------------- // Return a list of presets to XBMC for display @@ -572,10 +248,7 @@ extern "C" ADDON_STATUS GetStatus() extern "C" unsigned int GetSettings(StructSetting ***sSet) { - Preinit(); - g_uiVisElements = DllUtils::VecToStruct(g_vecSettings, &g_structSettings); - *sSet = g_structSettings; - return g_uiVisElements; + return 0; } //-- FreeSettings -------------------------------------------------------------- @@ -584,7 +257,6 @@ extern "C" unsigned int GetSettings(StructSetting ***sSet) extern "C" void FreeSettings() { - DllUtils::FreeStruct(g_uiVisElements, &g_structSettings); } //-- UpdateSetting ------------------------------------------------------------ @@ -595,53 +267,78 @@ extern "C" ADDON_STATUS SetSetting(const char* id, const void* value) if (!id || !value) return STATUS_UNKNOWN; - Preinit(); - - if (strcmpi(id, "Use Preset") == 0) + if (strcmp(id, "###GetSavedSettings") == 0) // We have some settings to be saved in the settings.xml file + { + if (strcmp((char*)value, "0") == 0) + { + strcpy((char*)id, "lastpresetfolder"); + strcpy((char*)value, g_plugin->m_szPresetDir); + } + if (strcmp((char*)value, "1") == 0) + { + strcpy((char*)id, "lastlockedstatus"); + strcpy((char*)value, (g_plugin->m_bHoldPreset ? "true" : "false")); + } + if (strcmp((char*)value, "2") == 0) + { + strcpy((char*)id, "lastpresetidx"); + sprintf ((char*)value, "%i", g_plugin->m_nCurrentPreset); + } + if (strcmp((char*)value, "3") == 0) + { + strcpy((char*)id, "###End"); + } + return STATUS_OK; + } + // It is now time to set the settings got from xmbc + if (strcmp(id, "Use Preset") == 0) OnAction(34, &value); - else if (strcmpi(id, "Automatic Blend Time") == 0) - g_plugin->m_fBlendTimeAuto = (float)(*(int*)value + 1) / 5.0f; - else if (strcmpi(id, "Time Between Presets") == 0) - g_plugin->m_fTimeBetweenPresets = (float)(*(int*)value + 5); - else if (strcmpi(id, "Additional Random Time") == 0) - g_plugin->m_fTimeBetweenPresetsRand = (float)(*(int*)value + 5); - else if (strcmpi(id, "Enable Hard Cuts") == 0) - g_plugin->m_bHardCutsDisabled = *(int*)value == 0; - else if (strcmpi(id, "Loudness Threshold For Hard Cuts") == 0) - g_plugin->m_fHardCutLoudnessThresh = (float)(*(int*)value)/10.0f + 1.25f; - else if (strcmpi(id, "Average Time Between Hard Cuts") == 0) + else if (strcmp(id, "Automatic Blend Time") == 0) + g_plugin->m_fBlendTimeAuto = (float)(*(int*)value + 1); + else if (strcmp(id, "Time Between Presets") == 0) + g_plugin->m_fTimeBetweenPresets = (float)(*(int*)value*5 + 5); + else if (strcmp(id, "Additional Random Time") == 0) + g_plugin->m_fTimeBetweenPresetsRand = (float)(*(int*)value*5 + 5); + else if (strcmp(id, "Enable Hard Cuts") == 0) + g_plugin->m_bHardCutsDisabled = *(bool*)value == false; + else if (strcmp(id, "Loudness Threshold For Hard Cuts") == 0) + g_plugin->m_fHardCutLoudnessThresh = (float)(*(int*)value)/5.0f + 1.25f; + else if (strcmp(id, "Average Time Between Hard Cuts") == 0) g_plugin->m_fHardCutHalflife = (float)*(int*)value*5 + 5; - else if (strcmpi(id, "Maximum Refresh Rate") == 0) + else if (strcmp(id, "Maximum Refresh Rate") == 0) g_plugin->m_max_fps_fs = *(int*)value*5 + 20; - else if (strcmpi(id, "Enable Stereo 3d") == 0) - g_plugin->m_bAlways3D = *(int*)value == 1; - else if (strcmpi(id, "Preset Pack") == 0) + else if (strcmp(id, "Enable Stereo 3d") == 0) + g_plugin->m_bAlways3D = *(bool*)value; + else if (strcmp(id, "lastlockedstatus") == 0) + lastLockedStatus = *(bool*)value; + else if (strcmp(id, "lastpresetidx") == 0) + lastPresetIndx = *(int*)value; + else if (strcmp(id, "lastpresetfolder") == 0) + strcpy(lastPresetDir, (char*)value); + else if (strcmp(id, "Preset Shuffle Mode") == 0) + g_plugin->m_bSequentialPresetOrder = !*(bool*)value; + else if (strcmp(id, "Preset Pack") == 0) { - - if(!g_vecSettings.empty() && !g_vecSettings[0].entry.empty() && *(int*)value < g_vecSettings[0].entry.size()) - { - if(strncmp(m_szPresetSave, g_vecSettings[0].entry[*(int*)value], sizeof(m_szPresetSave)) != 0) + if (*(int*)value == 0) { - // Check if its a zip or a folder - SetPresetDir(g_vecSettings[0].entry[*(int*)value]); - - // save dir so that we can resave the .xml file - sprintf(m_szPresetSave, "%s", g_vecSettings[0].entry[*(int*)value]); - - g_plugin->m_bHoldPreset = false; // Disable locked preset as its no longer there - g_plugin->UpdatePresetList(); - - // set current preset index to -1 because current preset is no longer in the list - g_plugin->m_nCurrentPreset = -1; - g_plugin->LoadRandomPreset(g_plugin->m_fBlendTimeUser); + g_UserPackFolder = false;; + SetPresetDir ("WA51-presets(265).zip"); } + else if (*(int*)value == 1) + { + g_UserPackFolder = false; + SetPresetDir ("Winamp-presets(436).zip"); } + else if (*(int*)value == 2) + g_UserPackFolder = true; + } + else if (strcmp(id, "User Preset Folder") ==0 ) + { + if (g_UserPackFolder) SetPresetDir ((char*)value); } else return STATUS_UNKNOWN; - SaveSettings(); - return STATUS_OK; } @@ -651,4 +348,4 @@ extern "C" ADDON_STATUS SetSetting(const char* id, const void* value) extern "C" unsigned int GetSubModules(char ***names) { return 0; // this vis supports 0 sub modules -}
\ No newline at end of file +} |