#include <xacestr.h>
#include <X11/Xatom.h>
#include <X11/extensions/XI2proto.h>
+#include <X11/extensions/Xvproto.h>
#include <windowstr.h>
#include <xdbg.h>
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);
}
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);
DeleteCallback (&EventCallback, _traceEvent, NULL);
XaceDeleteCallback (XACE_PROPERTY_ACCESS, _traceProperty, NULL);
XaceDeleteCallback (XACE_RESOURCE_ACCESS, _traceResource, NULL);
+ XaceDeleteCallback (XACE_EXT_DISPATCH, _traceAExtEvents, NULL);
}
void
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)
{
DeleteCallback (&FlushCallback, _traceFlush, NULL);
DeleteCallback (&ReplyCallback, _traceAReply, NULL);
XaceDeleteCallback (XACE_CORE_DISPATCH, _traceACoreEvents, NULL);
- XaceDeleteCallback (XACE_EXT_DISPATCH, _traceAExtEvents, NULL);
}
return;