]> git.sesse.net Git - vlc/blobdiff - activex/persistpropbag.cpp
Works this time
[vlc] / activex / persistpropbag.cpp
index f70a665c9c86adf6da265f063b1b466abcfdbaa3..ef6531a6833eb7f359962609495841ca40994f7b 100644 (file)
@@ -17,7 +17,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 #include "plugin.h"
@@ -161,13 +161,27 @@ STDMETHODIMP VLCPersistPropertyBag::Load(LPPROPERTYBAG pPropBag, LPERRORLOG pErr
         }
     }
 
-    int i_vlc = _p_instance->getVLCObject();
     V_VT(&value) = VT_I4;
     if( S_OK == pPropBag->Read(OLESTR("volume"), &value, pErrorLog) )
     {
-        VLC_VolumeSet(i_vlc, V_I4(&value));
+        _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);
+    }
+
     return _p_instance->onLoad();
 };
 
@@ -208,18 +222,24 @@ STDMETHODIMP VLCPersistPropertyBag::Save(LPPROPERTYBAG pPropBag, BOOL fClearDirt
     pPropBag->Write(OLESTR("Visible"), &value);
     VariantClear(&value);
 
-    int i_vlc = _p_instance->getVLCObject();
-    if( i_vlc )
-    {
-        V_VT(&value) = VT_I4;
-        V_I4(&value) = VLC_VolumeGet(i_vlc);
-        pPropBag->Write(OLESTR("Volume"), &value);
-        VariantClear(&value);
-    }
+    V_VT(&value) = VT_I4;
+    V_I4(&value) = _p_instance->getVolume();
+    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);
 
     if( fClearDirty )
         _p_instance->setDirty(FALSE);
 
     return S_OK;
 };
-