]> git.sesse.net Git - vlc/commitdiff
- mozilla: most properties in vlc.audio object don't require an active input, be...
authorDamien Fouilleul <damienf@videolan.org>
Tue, 20 Mar 2007 11:51:12 +0000 (11:51 +0000)
committerDamien Fouilleul <damienf@videolan.org>
Tue, 20 Mar 2007 11:51:12 +0000 (11:51 +0000)
mozilla/control/npolibvlc.cpp
mozilla/control/nporuntime.h

index 12e3cc1cc1eccbedc522325614c24da9c9b910d2..f0971020dec090696ed2902e4172b358ddbfa2b0 100755 (executable)
@@ -200,20 +200,11 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::getProperty(int index, NPVari
         libvlc_exception_t ex;\r
         libvlc_exception_init(&ex);\r
 \r
-        libvlc_input_t *p_input = libvlc_playlist_get_input(p_plugin->getVLC(), &ex);\r
-        if( libvlc_exception_raised(&ex) )\r
-        {\r
-            NPN_SetException(this, libvlc_exception_get_message(&ex));\r
-            libvlc_exception_clear(&ex);\r
-            return INVOKERESULT_GENERIC_ERROR;\r
-        }\r
-\r
         switch( index )\r
         {\r
             case ID_audio_mute:\r
             {\r
                 vlc_bool_t muted = libvlc_audio_get_mute(p_plugin->getVLC(), &ex);\r
-                libvlc_input_free(p_input);\r
                 if( libvlc_exception_raised(&ex) )\r
                 {\r
                     NPN_SetException(this, libvlc_exception_get_message(&ex));\r
@@ -226,7 +217,6 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::getProperty(int index, NPVari
             case ID_audio_volume:\r
             {\r
                 int volume = libvlc_audio_get_volume(p_plugin->getVLC(), &ex);\r
-                libvlc_input_free(p_input);\r
                 if( libvlc_exception_raised(&ex) )\r
                 {\r
                     NPN_SetException(this, libvlc_exception_get_message(&ex));\r
@@ -238,6 +228,13 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::getProperty(int index, NPVari
             }\r
             case ID_audio_track:\r
             {\r
+                libvlc_input_t *p_input = libvlc_playlist_get_input(p_plugin->getVLC(), &ex);\r
+                if( libvlc_exception_raised(&ex) )\r
+                {\r
+                    NPN_SetException(this, libvlc_exception_get_message(&ex));\r
+                    libvlc_exception_clear(&ex);\r
+                    return INVOKERESULT_GENERIC_ERROR;\r
+                }\r
                 int track = libvlc_audio_get_track(p_input, &ex);\r
                 libvlc_input_free(p_input);\r
                 if( libvlc_exception_raised(&ex) )\r
@@ -252,7 +249,6 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::getProperty(int index, NPVari
             case ID_audio_channel:\r
             {\r
                 int channel = libvlc_audio_get_channel(p_plugin->getVLC(), &ex);\r
-                libvlc_input_free(p_input);\r
                 if( libvlc_exception_raised(&ex) )\r
                 {\r
                     NPN_SetException(this, libvlc_exception_get_message(&ex));\r
@@ -265,7 +261,6 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::getProperty(int index, NPVari
             default:\r
                 ;\r
         }\r
-        libvlc_input_free(p_input);\r
     }\r
     return INVOKERESULT_GENERIC_ERROR;\r
 }\r
@@ -279,14 +274,6 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::setProperty(int index, const
         libvlc_exception_t ex;\r
         libvlc_exception_init(&ex);\r
 \r
-        libvlc_input_t *p_input = libvlc_playlist_get_input(p_plugin->getVLC(), &ex);\r
-        if( libvlc_exception_raised(&ex) )\r
-        {\r
-            NPN_SetException(this, libvlc_exception_get_message(&ex));\r
-            libvlc_exception_clear(&ex);\r
-            return INVOKERESULT_GENERIC_ERROR;\r
-        }\r
-\r
         switch( index )\r
         {\r
             case ID_audio_mute:\r
@@ -294,7 +281,6 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::setProperty(int index, const
                 {\r
                     libvlc_audio_set_mute(p_plugin->getVLC(),\r
                                           NPVARIANT_TO_BOOLEAN(value), &ex);\r
-                    libvlc_input_free(p_input);\r
                     if( libvlc_exception_raised(&ex) )\r
                     {\r
                         NPN_SetException(this, libvlc_exception_get_message(&ex));\r
@@ -305,7 +291,6 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::setProperty(int index, const
                 }\r
                 return INVOKERESULT_INVALID_VALUE;\r
             case ID_audio_volume:\r
-                libvlc_input_free(p_input);\r
                 if( isNumberValue(value) )\r
                 {\r
                     libvlc_audio_set_volume(p_plugin->getVLC(),\r
@@ -322,6 +307,13 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::setProperty(int index, const
             case ID_audio_track:\r
                 if( isNumberValue(value) )\r
                 {\r
+                    libvlc_input_t *p_input = libvlc_playlist_get_input(p_plugin->getVLC(), &ex);\r
+                    if( libvlc_exception_raised(&ex) )\r
+                    {\r
+                        NPN_SetException(this, libvlc_exception_get_message(&ex));\r
+                        libvlc_exception_clear(&ex);\r
+                        return INVOKERESULT_GENERIC_ERROR;\r
+                    }\r
                     libvlc_audio_set_track(p_input,\r
                                            numberValue(value), &ex);\r
                     libvlc_input_free(p_input);\r
@@ -333,10 +325,8 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::setProperty(int index, const
                     }\r
                     return INVOKERESULT_NO_ERROR;\r
                 }\r
-                libvlc_input_free(p_input);\r
                 return INVOKERESULT_INVALID_VALUE;\r
             case ID_audio_channel:\r
-                libvlc_input_free(p_input);\r
                 if( isNumberValue(value) )\r
                 {\r
                     libvlc_audio_set_channel(p_plugin->getVLC(),\r
@@ -353,7 +343,6 @@ RuntimeNPObject::InvokeResult LibvlcAudioNPObject::setProperty(int index, const
             default:\r
                 ;\r
         }\r
-        libvlc_input_free(p_input);\r
     }\r
     return INVOKERESULT_GENERIC_ERROR;\r
 }\r
index 70d89170774b8f70b1350aea5c3a7b9d4a6dd8f0..f2f7fc2b8d529af6aa13edb916c0eb74ad21be89 100755 (executable)
@@ -88,7 +88,7 @@ protected:
         _instance(instance)
     {
         _class = const_cast<NPClass *>(aClass);
-        //referenceCount = 1;
+        referenceCount = 1;
     };
     virtual ~RuntimeNPObject() {};