Beispiel #1
0
 public override void Handle(Object myObject, EventArgs myEventArgs)
 {
     int keys = monitor.ActionCount;
     Option<Point2i> moved = monitor.HasMoved;
     WindowInfo window;
     if (myObject == null) //manually triggered
     {
         window = CurrentWindow;
     }
     else //timer invoked
     {
         window = getFocussedName();
     }
     uint pid = window.ProcessId;
     string exename = window.ExeName;
     string title = window.Title;
     double time = Utils.GetTime();
     Option<string> url = window.Url;
     TickInfo info = new TickInfo(time, moved, pid, exename, title, url, keys);
     queue.Add(info);
 }
Beispiel #2
0
 public static ProgramInfo FromRaw(TickInfo info)
 {
     if (info.Url.HasValue)
     {
         foreach(var site in Settings.Options.Websites)
         {
             if (isUrlMatching(site.Name, info.Url.Value))
             {
                 return site;
             }
         }
         return new ProgramInfo(info.ExeName, new List<string>(new[]{"Neutral"}));
     }
     else
     {
         if (Settings.Options.Programs.ContainsKey(info.ExeName))
         {
             return Settings.Options.Programs[info.ExeName];
         }
     }
     return ProgramInfo.Uncategorized;
 }
Beispiel #3
0
 public TickInfoEventArgs(TickInfo info)
 {
     this.TickInfo = info;
 }
Beispiel #4
0
 public ProcessedInfo(TickInfo info)
 {
     this.Program = ProgramInfo.FromRaw(info);
     this.DidActivity = info.NumKeys > 0 || info.Mouse.HasValue;
     this.Time = info.Time;
 }
Beispiel #5
0
 private void changeProgram(TickInfo info)
 {
     lastChangedProgram = info.Time;
     actions = 0;
 }
Beispiel #6
0
        private void updateText(TickInfo info)
        {
            if (last.ProcessId != info.ProcessId)
            {
                changeProgram(info);
            }

            commitIdleTime(info);
            refreshTop();
            updateActive(info);
            commitFocusTime(info);
        }
Beispiel #7
0
 private void updateActive(TickInfo info)
 {
 }
Beispiel #8
0
 private void takeInfo(TickInfo info)
 {
     updateText(info);
     if (InfoReceived != null)
     {
         InfoReceived.Invoke(this, new TickInfoEventArgs(info));
     }
     last = info;
 }
Beispiel #9
0
 private void seeAction(TickInfo info)
 {
     lastAction = info.Time;
     actions += info.NumKeys;
     addActions(info.ExeName, info.NumKeys);
 }
Beispiel #10
0
 private void commitIdleTime(TickInfo info)
 {
     if (info.NumKeys == 0 && !info.Mouse.HasValue)
     {
         var diff = info.Time - lastIdleCommitted;
         lastIdleCommitted = info.Time;
         addIdleTime(diff);
         if (lastAction == 0)
         {
             lastAction = info.Time;
             idleTime = 0;
         }
         else
         {
             idleTime = info.Time - lastAction;
         }
     }
     else
     {
         lastIdleCommitted = info.Time;
         seeAction(info);
         idleTime = 0;
     }
 }
Beispiel #11
0
 private void commitFocusTime(TickInfo info)
 {
     if (lastFocusCommitted != 0)
     {
         double diff = info.Time - lastFocusCommitted;
         addTime(info.ExeName, diff);
         lastFocusCommitted = info.Time;
     }
     else
     {
         lastFocusCommitted = info.Time;
     }
 }