Author: tack
Date: Fri Dec 29 17:20:22 2006
New Revision: 2307

Modified:
   trunk/xine/src/__init__.py
   trunk/xine/src/event_queue.c

Log:
Some event cleanup; remove unnecessary dependency on kaa.metadata


Modified: trunk/xine/src/__init__.py
==============================================================================
--- trunk/xine/src/__init__.py  (original)
+++ trunk/xine/src/__init__.py  Fri Dec 29 17:20:22 2006
@@ -2,10 +2,10 @@
 import threading
 import math
 import logging
- 
+
 import _xine
 import kaa
-from kaa import display, notifier, metadata
+from kaa import display, notifier
 from kaa.version import Version
 from constants import *
  
@@ -455,13 +455,17 @@
             "event": notifier.Signal()
         }
         self.event_queue = self.new_event_queue()
-        kaa.signals["step"].connect_weak(self._poll_events)
-        #self.event_queue._queue.event_callback = 
notifier.WeakCallback(self._obj_callback)
+        kaa.signals["step"].connect_weak(self.flush_events)
+        #self.event_queue._obj.event_callback = 
notifier.WeakCallback(self._obj_callback)
 
-    def _poll_events(self):
+    def flush_events(self):
         event = self.event_queue.get_event()
-        if event:
-            self.signals["event"].emit(_wrap_xine_object(event))
+        while event:
+            self.signals["event"].emit(event)
+            event = self.event_queue.get_event()
+
+    def get_event(self):
+        return self.event_queue.get_event()
 
     def open(self, mrl):
         return self._obj.open(mrl)
@@ -755,7 +759,7 @@
         super(EventQueue, self).__init__(obj)
 
     def get_event(self):
-        return self._obj.get_event()
+        return _wrap_xine_object(self._obj.get_event())
 
 class Event(Wrapper):
     def __init__(self, obj):

Modified: trunk/xine/src/event_queue.c
==============================================================================
--- trunk/xine/src/event_queue.c        (original)
+++ trunk/xine/src/event_queue.c        Fri Dec 29 17:20:22 2006
@@ -9,6 +9,7 @@
     Xine_Event_Queue_PyObject *queue;
 } xine_event_queue_listener_data;
 
+#if 0 // unstable, figure out why.
 void _xine_event_queue_listener_callback(void *_data, const xine_event_t 
*event)
 {
     xine_event_queue_listener_data *data = (xine_event_queue_listener_data 
*)_data;
@@ -22,13 +23,16 @@
         pyevent = pyxine_new_event_pyobject(data->queue->xine, data->queue, 
(xine_event_t *)event, 1);
         args = Py_BuildValue("(O)", pyevent);
         result = PyEval_CallObject(*data->callback, args);
+        if (!result)
+            PyErr_Print();
+        else
+            Py_DECREF(result);   
         Py_DECREF(args);   
         Py_DECREF(pyevent);   
-        Py_DECREF(result);   
     }
     PyGILState_Release(gstate);
 }
-
+#endif
 
 // Owner must be a Stream object
 Xine_Event_Queue_PyObject *

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to