]> git.sesse.net Git - vlc/blobdiff - activex/persistpropbag.cpp
don't poll volume-change, change volumecontrol to use signal from
[vlc] / activex / persistpropbag.cpp
index 3fd06fbf28856877570401f9f4494f417ea6cc70..b53c5113fc3631f718fa5a632deb3bac862d345e 100644 (file)
@@ -167,6 +167,44 @@ STDMETHODIMP VLCPersistPropertyBag::Load(LPPROPERTYBAG pPropBag, LPERRORLOG pErr
         _p_instance->setVolume(V_I4(&value));
         VariantClear(&value);
     }
+
+    V_VT(&value) = VT_I4;
+    if( S_OK == pPropBag->Read(OLESTR("starttime"), &value, pErrorLog) )
+    {
+        _p_instance->setStartTime(V_I4(&value));
+        VariantClear(&value);
+    }
+
+    V_VT(&value) = VT_BSTR;
+    if( S_OK == pPropBag->Read(OLESTR("baseurl"), &value, pErrorLog) )
+    {
+        _p_instance->setBaseURL(V_BSTR(&value));
+        VariantClear(&value);
+    }
+
+    V_VT(&value) = VT_I4;
+    if( S_OK == pPropBag->Read(OLESTR("backcolor"), &value, pErrorLog) )
+    {
+        _p_instance->setBackColor(V_I4(&value));
+        VariantClear(&value);
+    }
+    else
+    {
+        /*
+        ** try alternative syntax
+        */
+        V_VT(&value) = VT_BSTR;
+        if( S_OK == pPropBag->Read(OLESTR("bgcolor"), &value, pErrorLog) )
+        {
+            long backcolor;
+            if( swscanf(V_BSTR(&value), L"#%lX", &backcolor) )
+            {
+                _p_instance->setBackColor(backcolor);
+            }
+            VariantClear(&value);
+        }
+    }
+
     return _p_instance->onLoad();
 };
 
@@ -212,9 +250,24 @@ STDMETHODIMP VLCPersistPropertyBag::Save(LPPROPERTYBAG pPropBag, BOOL fClearDirt
     pPropBag->Write(OLESTR("Volume"), &value);
     VariantClear(&value);
 
+    V_VT(&value) = VT_I4;
+    V_I4(&value) = _p_instance->getStartTime();
+    pPropBag->Write(OLESTR("StartTime"), &value);
+    VariantClear(&value);
+
+    V_VT(&value) = VT_BSTR;
+    V_BSTR(&value) = SysAllocStringLen(_p_instance->getBaseURL(),
+                            SysStringLen(_p_instance->getBaseURL()));
+    pPropBag->Write(OLESTR("BaseURL"), &value);
+    VariantClear(&value);
+
+    V_VT(&value) = VT_I4;
+    V_I4(&value) = _p_instance->getBackColor();
+    pPropBag->Write(OLESTR("BackColor"), &value);
+    VariantClear(&value);
+
     if( fClearDirty )
         _p_instance->setDirty(FALSE);
 
     return S_OK;
 };
-