enhance log for xv grab/stop/ungrab
authorBoram Park <boram1288.park@samsung.com>
Wed, 29 May 2013 05:07:54 +0000 (14:07 +0900)
committerBoram Park <boram1288.park@samsung.com>
Mon, 17 Jun 2013 08:44:34 +0000 (17:44 +0900)
Change-Id: I511ab1a328509ed599869c5288481f9186badc75

module/xdbg_module_evlog.c

index 42141ce..5e3ac20 100644 (file)
@@ -56,6 +56,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include <xacestr.h>
 #include <X11/Xatom.h>
 #include <X11/extensions/XI2proto.h>
+#include <X11/extensions/Xvproto.h>
 #include <windowstr.h>
 
 #include <xdbg.h>
@@ -490,13 +491,59 @@ _traceACoreEvents (CallbackListPtr *pcbl, pointer unused, pointer calldata)
 static void
 _traceAExtEvents (CallbackListPtr *pcbl, pointer unused, pointer calldata)
 {
-    if (xev_trace_on == FALSE)
-        return;
-
     XaceExtAccessRec *rec = calldata;
+    ClientPtr client;
 
     XDBG_RETURN_IF_FAIL (rec != NULL);
 
+    client = rec->client;
+    REQUEST (xReq);
+
+    if (stuff && stuff->reqType >= EXTENSION_BASE)
+    {
+        ExtensionEntry *xext = CheckExtension (XvName);
+        if (xext && stuff->reqType == xext->base)
+        {
+            ModuleClientInfo *info = GetClientInfo (client);
+            XDBG_RETURN_IF_FAIL (info != NULL);
+
+            switch (stuff->data)
+            {
+            case xv_GrabPort:
+                {
+                    xvGrabPortReq *req = (xvGrabPortReq *)client->requestBuffer;
+                    XDBG_INFO (MXDBG, "%s(port:%d), %s(%d)\n",
+                               LookupRequestName (stuff->reqType, stuff->data), req->port,
+                               info->command, info->pid);
+                    break;
+                }
+            case xv_UngrabPort:
+                {
+                    xvUngrabPortReq *req = (xvUngrabPortReq *)client->requestBuffer;
+                    XDBG_INFO (MXDBG, "%s(port:%d), %s(%d)\n",
+                               LookupRequestName (stuff->reqType, stuff->data), req->port,
+                               info->command, info->pid);
+                    break;
+                }
+            case xv_StopVideo:
+                {
+                    xvStopVideoReq *req = (xvStopVideoReq *)client->requestBuffer;
+                    XDBG_INFO (MXDBG, "%s(port:%d,drawable:0x%lx), %s(%d)\n",
+                               LookupRequestName (stuff->reqType, stuff->data),
+                               req->port, req->drawable,
+                               info->command, info->pid);
+                    break;
+                }
+            default:
+                break;
+
+            }
+        }
+    }
+
+    if (xev_trace_on == FALSE)
+        return;
+
     evtPrint (REQUEST, rec->client, NULL);
 }
 
@@ -564,6 +611,7 @@ xDbgModuleEvlogInstallHooks (XDbgModule *pMod)
     ret &= AddCallback (&EventCallback, _traceEvent, NULL);
     ret &= XaceRegisterCallback (XACE_PROPERTY_ACCESS, _traceProperty, NULL);
     ret &= XaceRegisterCallback (XACE_RESOURCE_ACCESS, _traceResource, NULL);
+    ret &= XaceRegisterCallback (XACE_EXT_DISPATCH, _traceAExtEvents, NULL);
 
     /*Disable Visibility Event*/
     ret &= XaceRegisterCallback (XACE_RECEIVE_ACCESS, _traceReceive, NULL);
@@ -591,6 +639,7 @@ xDbgModuleEvlogUninstallHooks (XDbgModule *pMod)
     DeleteCallback (&EventCallback, _traceEvent, NULL);
     XaceDeleteCallback (XACE_PROPERTY_ACCESS, _traceProperty, NULL);
     XaceDeleteCallback (XACE_RESOURCE_ACCESS, _traceResource, NULL);
+    XaceDeleteCallback (XACE_EXT_DISPATCH, _traceAExtEvents, NULL);
 }
 
 void
@@ -639,7 +688,6 @@ xDbgModuleEvlogPrintEvents (XDbgModule *pMod, Bool on, const char * client_name,
         ret &= AddCallback (&FlushCallback, _traceFlush, NULL);
         ret &= AddCallback (&ReplyCallback, _traceAReply, NULL);
         ret &= XaceRegisterCallback (XACE_CORE_DISPATCH, _traceACoreEvents, NULL);
-        ret &= XaceRegisterCallback (XACE_EXT_DISPATCH, _traceAExtEvents, NULL);
 
         if (!ret)
         {
@@ -652,7 +700,6 @@ xDbgModuleEvlogPrintEvents (XDbgModule *pMod, Bool on, const char * client_name,
         DeleteCallback (&FlushCallback, _traceFlush, NULL);
         DeleteCallback (&ReplyCallback, _traceAReply, NULL);
         XaceDeleteCallback (XACE_CORE_DISPATCH, _traceACoreEvents, NULL);
-        XaceDeleteCallback (XACE_EXT_DISPATCH, _traceAExtEvents, NULL);
     }
 
     return;