]> git.sesse.net Git - vlc/commitdiff
mozilla: fix building for win32 (events not implemented yet)
authorJean-Paul Saman <jean-paul.saman@m2x.nl>
Thu, 25 Feb 2010 15:05:39 +0000 (16:05 +0100)
committerJean-Paul Saman <jean-paul.saman@m2x.nl>
Thu, 4 Mar 2010 12:04:55 +0000 (13:04 +0100)
ifdef the dependency on pthread for windows. It restricts pthread usage to XP_UNIX only. The events object should be extended to support MacOS X and Win32 too, this will be done in coming commits.

Signed-off-by: Jean-Paul Saman <jean-paul.saman@m2x.nl>
projects/mozilla/vlcplugin.cpp
projects/mozilla/vlcplugin.h

index 335616187847504c5a2734565bb8c9ce2323e354..895d7a2f4a57d1af9de3d056bd36783aa1203ee4 100644 (file)
 #include "control/npolibvlc.h"
 
 #include <ctype.h>
-#include <pthread.h>
+#if defined(XP_UNIX)
+# include <pthread.h>
+#else
+#warning "locking not implemented for this platform"
+#endif
+
 #include <stdio.h>
 
 /*****************************************************************************
@@ -88,14 +93,34 @@ static bool boolValue(const char *value) {
              !strcasecmp(value, "yes") );
 }
 
+bool EventObj::init()
+{
+#if defined(XP_UNIX)
+    return pthread_mutex_init(&mutex, NULL) == 0;
+#else
+#warning "locking not implemented for this platform"
+#endif
+}
+
+EventObj::~EventObj()
+{
+#if defined(XP_UNIX)
+    pthread_mutex_destroy(&mutex);
+#else
+#warning "locking not implemented for this platform"
+#endif
+}
 
 void EventObj::deliver(NPP browser)
 {
     NPVariant result;
     NPVariant params[1];
 
+#if defined(XP_UNIX)
     pthread_mutex_lock(&mutex);
-
+#else
+#warning "locking not implemented for this platform"
+#endif
     for( ev_l::iterator i=_elist.begin();i!=_elist.end();++i )
     {
         libvlc_event_type_t event = *i;
@@ -114,8 +139,11 @@ void EventObj::deliver(NPP browser)
         }
     }
     _elist.clear();
-
+#if defined(XP_UNIX)
     pthread_mutex_unlock(&mutex);
+#else
+#warning "locking not implemented for this platform"
+#endif
 }
 
 void VlcPlugin::eventAsync(void *param)
@@ -126,18 +154,24 @@ void VlcPlugin::eventAsync(void *param)
 
 void EventObj::callback(const libvlc_event_t* event)
 {
+#if defined(XP_UNIX)
     pthread_mutex_lock(&mutex);
-
+#else
+#warning "locking not implemented for this platform"
+#endif
     if( have_event(event->type) )
         _elist.push_back(event->type);
-
+#if defined(XP_UNIX)
     pthread_mutex_unlock(&mutex);
+#else
+#warning "locking not implemented for this platform"
+#endif
 }
 
 void VlcPlugin::event_callback(const libvlc_event_t* event, void *param)
 {
     VlcPlugin *plugin = (VlcPlugin*)param;
-#ifdef XP_UNIX
+#if defined(XP_UNIX)
     plugin->events.callback(event);
     NPN_PluginThreadAsyncCall(plugin->getBrowser(), eventAsync, plugin);
 #else
index 3e85840deaffd3c20548be2eb67193e3675e8ce7..4c9a11cf294c75426e7ed83075f58e28075ac4bf 100644 (file)
@@ -135,8 +135,8 @@ private:
     void *_ud;
 public:
     EventObj(): _em(NULL)  { /* deferred to init() */ }
-    bool init() { return pthread_mutex_init(&mutex, NULL) == 0; }
-    ~EventObj() { pthread_mutex_destroy(&mutex); }
+    bool init();
+    ~EventObj();
 
     void deliver(NPP browser);
     void callback(const libvlc_event_t*);
@@ -151,7 +151,9 @@ private:
     lr_l _llist;
     ev_l _elist;
 
+#if defined(XP_UNIX)
     pthread_mutex_t mutex;
+#endif
 
     bool ask_for_event(event_t e);
     void unask_for_event(event_t e);