info-xnee
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Info-xnee] Help to adapt cnee for logging more events !!


From: Henrik Sandklef
Subject: Re: [Info-xnee] Help to adapt cnee for logging more events !!
Date: Thu, 24 Apr 2008 21:07:03 +0200
User-agent: Thunderbird 2.0.0.12 (X11/20080227)

sridhar skrev:
> Hello Friend,
>  iam just a graduate student,
> doing project for my curriculum purpose,
> iam a newbie to this xserver,
> and you helped me a lot in regarding cnee,
> really iam greatful for that,
> its not a product to be released or some other thing,
> just its part of my curriculum project  to understand
> the xserver events from clients to server,
> even the source is there,
> some what iam feeling difficult to understand,
> ie iam asking you...
> so i hope  you understood me,

sure do... thanks for the information.

Trying to understand X, which is a protocol dealing with both client and
server, I would start at:

http://en.wikipedia.org/wiki/X_window_system

http://en.wikipedia.org/wiki/X_Window_System_protocols_and_architecture

http://en.wikipedia.org/wiki/X_Window_System_core_protocol

read those and we can proceed from there :)

> 
> 
> On Thu, Apr 24, 2008 at 9:16 PM, Henrik Sandklef <address@hidden> wrote:
> 
>> tor 2008-04-24 klockan 14:47 +0530 skrev sridhar:
>>>
>>>
>>>
>>> Hello  ,
>>> i got struck in middle of my work,
>> Are you working for something that will be released?
>>
>>> i need the log format for the events in the following way ,
>>> i hope you will help me in this,
>> The source is there. It's free (see below for information about freedom
>> in this case) for you to change.
>>
>> I don not have the time to make adaptions for you. You can hire me to do
>> adaptions/modifications for you or your company. If I find a certain
>> modification (which is not the case with your 'request') could be useful
>> for Xnee in general I will probably implement it anyway.
>>
>>
>>> i need the log format should be in the following way ,
>>>
>>> windowid, time, event type(key/mouse/....etc) , event value(key
>> typevalue/left or right or middle mouse button) , requestid, responseid  ...
>>> so where should i need to change the cnee to meet my need,
>> File:
>>   libxnee/src/xnee_record.c
>>
>> Function:
>>   xnee_record_handle_event_printer
>>
>>> exactly iam not aware of GPLv3 license.
>> The code you are using (Xnee) is released under GPL Version 3. You can
>> find more information here:
>>   http://www.gnu.org/licenses/gpl-3.0.html
>>
>> GNU Xnee is Free Software:
>>  http://www.fsfeurope.org/documents/freesoftware.en.html
>>
>>
>>>
>>>
>>>
>>> On Tue, Apr 15, 2008 at 11:13 AM, Henrik Sandklef <address@hidden>
>>> wrote:
>>>         sridhar skrev:
>>>         > *you are very helpful thanks alot , now iam clear about
>>>         cnee...very very
>>>         > thanks
>>>         > *
>>>         > one more thing, so cnee does not store any window ids,
>>>
>>>
>>>         well, actually Xnee does. But only in one case. If a window is
>>>         placed in
>>>         a different position when replaying than when recording Xnee
>>>         uses the
>>>         window id to move the window to the correct position (which is
>>>         the
>>>         position as when recorded). Xnee treats reparent-notifications
>>>         in a
>>>         special way and stores window id to achieve the above.
>>>
>>>         > actually my requirement is to log  what are the events from
>>>         a particular
>>>         > window to xserver, can you tell any tools to work out in
>>>         this way , or cnee
>>>         > can do this..???
>>>
>>>
>>>         You can modify Xnee. Look at the file:
>>>
>>>          libxnee/src/xnee_record.c
>>>
>>>         and the function:
>>>
>>>          xnee_record_handle_event_printer
>>>
>>>         and the switch/case:
>>>
>>>            case ReparentNotify:
>>>              new_window_pos = xnee_get_new_window_pos(xd);
>>>
>>>              if (new_window_pos!=0)
>>>                {
>>>                  fprintf (out,"0,%u,0,0,0,0,0,%lu\n",
>>>                           event_type,
>>>                           xrecintd->server_time );
>>>                }
>>>              XGetWindowAttributes(xd->grab,
>>>                                   xrec_data->event.u.reparent.window,
>>>                                   &window_attributes_return);
>>>
>>>              XTranslateCoordinates (xd->grab,
>>>
>>>         xrec_data->event.u.reparent.window,
>>>                                     window_attributes_return.root,
>>>
>>>         -window_attributes_return.border_width,
>>>
>>>         -window_attributes_return.border_width,
>>>                                     &rx,
>>>                                     &ry,
>>>                                     &dummy_window);
>>>
>>>              /*
>>>               * Prevent the same window pos to be printed more than
>>>         once
>>>               */
>>>              if ( (last_record_window_pos_win !=
>>>                    xrec_data->event.u.reparent.window) ||
>>>                   (last_record_window_pos_par !=
>>>                    xrec_data->event.u.reparent.parent) )
>>>                {
>>>
>>>                  XFlush(xd->grab);
>>>                  if (!XFetchName(xd->grab,
>>>         xrec_data->event.u.reparent.window,
>>>         &win_name))
>>>                    { /* Get window name if any */
>>>                      xnee_verbose((xd," window has has no name\n"));
>>>                      win_name=NULL;
>>>                    }
>>>                  else if (win_name)
>>>                    {
>>>                      xnee_verbose((xd," window has has name '%s'\n",
>>>         win_name));
>>>                    }
>>>                  fprintf (out,
>>>                           "%s:%d,%d:%d,%d,%d,%d,%d,%d:%dx%d+%d+%d:%d,%
>>>         d:%s\n",
>>>                           XNEE_NEW_WINDOW_MARK,
>>>                           rx,
>>>                           ry,
>>>                           xrec_data->event.u.reparent.event,
>>>                           xrec_data->event.u.reparent.window,
>>>                           xrec_data->event.u.reparent.parent,
>>>                           xrec_data->event.u.reparent.x,
>>>                           xrec_data->event.u.reparent.y,
>>>                           xrec_data->event.u.reparent.override,
>>>                           window_attributes_return.x,
>>>                           window_attributes_return.y,
>>>                           window_attributes_return.width,
>>>                           window_attributes_return.height,
>>>                           window_attributes_return.border_width,
>>>                           window_attributes_return.border_width,
>>>                           win_name?win_name:""
>>>                           );
>>>                  if (win_name)
>>>                    {
>>>                      xnee_verbose((xd," freeing window name\n"));
>>>                      XFree(win_name);
>>>                    }
>>>                  last_record_window_pos_win =
>>>                    xrec_data->event.u.reparent.window;
>>>                  last_record_window_pos_par =
>>>                    xrec_data->event.u.reparent.parent;
>>>                }
>>>
>>>
>>>         you can probably use this code and modify it to get the win id
>>>         for every
>>>         event. Will it consume a lot of CPU? You are aware the GPLv3
>>>         license
>>>         aren't you?
>>>
>>>
>>>
>>>         >
>>>         >
>>>         >
>>>         > On Mon, Apr 14, 2008 at 10:43 PM, Henrik Sandklef
>>>         <address@hidden> wrote:
>>>         >
>>>         >> sridhar skrev:
>>>         >>> hi..friend,
>>>         >>> im sorry to ask repeatedly the silly things about cnee,
>>>         >>> iam a novice, just please help me,
>>>         >>> my requirement is to analyze the events to and from
>>>         xserver,
>>>         >>> * as cnee is recording events, in the output till now iam
>>>         not
>>>         >>> exactly knowing what each value represent,  does it stores
>>>         about the
>>>         >> window
>>>         >>> id, on which a particular event has occurred, or is there
>>>         any other tool
>>>         >> to
>>>         >>> analyze.
>>>         >>> ----------------------
>>>         >>> the following is the output fragment of  cnee
>>>         >>> using the following options
>>>         >>>
>>>         >>> cnee -o output1.xnr --record --device-event-range 2-6
>>>         >>> --delivered-event-range 7-31 --request-range 1-119
>>>         --verbose
>>>         >>> ##### my question what each value represents
>>>         >>> there are seven values in each line, what 1 stands for, 54
>>>         stands
>>>         >> for...and
>>>         >>> the others too..
>>>         >>> does it stores window ids too....
>>>         >> uh oh, it's clearly me who's not reading the manual.
>>>         Sorry!!!!
>>>         >>
>>>         >> Looking at the sources at:
>>>         >>   libxnee/src/print.c
>>>         >> at the function:
>>>         >>   xnee_record_print_request
>>>         >> you can see what's printed
>>>         >>
>>>         >>> ****************
>>>         >>> 1,54,54,2,54540671,1304748143
>>>         >> so, let's do this together:
>>>         >>
>>>         >> 1   is type, in this case: request
>>>         >> 54  what request, in this case: 54
>>>         >> 54  the length (think size)
>>>         >> 54540671   request id
>>>         >> 1304748143  server time
>>>         >>
>>>         >>
>>>         >>> 1,59,59,5,54540651,1304748143
>>>         >>> 1,53,53,4,54540674,1304748143
>>>         >>> 1,55,55,5,54540675,1304748143
>>>         >>> 1,72,72,19,54540674,1304748143
>>>         >> and so forth
>>>         >>
>>>         >>
>>>         >>
>>>         >> Thanks for requesting an answer, instead of my rtfm. You
>>>         found a bug.
>>>         >> It's now fixed in CVS (HEAD).
>>>         >>
>>>         >>> ******************
>>>         >>>
>>>         >>>
>>>         >>>
>>>         >>>
>>>
>> ------------------------------------------------------------------------
>>>         >>>
>>>         >>> _______________________________________________
>>>         >>> Info-xnee mailing list
>>>         >>> address@hidden
>>>         >>> http://lists.gnu.org/mailman/listinfo/info-xnee
>>>         >>
>>>         >
>>>         >
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> SrIDhAr M.tech(AI)
>>> Univ of Hyderabad
>>> ------------------------------------------------
>>> Life is pleasant. Death is peaceful. It's the transition that's
>>> troublesome.
>>> ---------------------------------
>>> _______________________________________________
>>> Info-xnee mailing list
>>> address@hidden
>>> http://lists.gnu.org/mailman/listinfo/info-xnee
>>
> 
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]