Beispiel #1
0
static void
print_statistics (void)
{
  gint64 now = g_get_monotonic_time ();
  static gint64 last_print_time = 0;

  if (last_print_time == 0)
    last_print_time = now;
  else if (now -last_print_time > 5000000)
    {
      g_print ("dropped_frames: %d/%d\n",
               dropped_frames, n_frames);
      g_print ("collected_frames: %g/%d\n",
               latency_error.weight, n_frames);
      g_print ("latency_error: %g +/- %g\n",
               variable_mean (&latency_error),
               variable_standard_deviation (&latency_error));
      if (pll)
        g_print ("playback rate adjustment: %g +/- %g %%\n",
                 (variable_mean (&time_factor_stats) - 1) * 100,
                 variable_standard_deviation (&time_factor_stats) * 100);
      variable_reset (&latency_error);
      variable_reset (&time_factor_stats);
      dropped_frames = 0;
      n_frames = 0;
      last_print_time = now;
    }
}
Beispiel #2
0
Datei: rfid.cpp Projekt: k29/rfid
rfid::rfid(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::rfid)
{
    ui->setupUi(this);
    this->setWindowFlags(Qt::FramelessWindowHint);

    //init all flags to zero
    init_flag=false;
    install_flag=false;
    use_flag=false;
    ui->stackedWidget->setCurrentWidget(ui->Scan);

    //init the keys
    transport_config[0]=0xff;
    transport_config[1]=0x07;
    transport_config[2]=0x80;
    transport_config[3]=0x29;
    for(int i=0;i<6;i++)
    {
        default_key_A[i]=0xff;
        default_key_B[i]=0xff;
    }
    variable_reset();
}
Beispiel #3
0
/*
 * updates watches list 
 */
void update_watches()
{
	gchar command[1000];

	/* delete all GDB variables */
	GList *iter = watches;
	while (iter)
	{
		variable *var = (variable*)iter->data;
		
		if (var->internal->len)
		{
			sprintf(command, "-var-delete %s", var->internal->str);
			exec_sync_command(command, TRUE, NULL);
		}
		
		/* reset all variables fields */
		variable_reset(var);
		
		iter = iter->next;
	}
	
	/* create GDB variables, adding successfully created
	variables to the list then passed for updatind */
	GList *updating = NULL;
	iter = watches;
	while (iter)
	{
		variable *var = (variable*)iter->data;
		
		/* try to create variable */
		gchar  *record = NULL;

		gchar *escaped = g_strescape(var->name->str, NULL);
		sprintf(command, "-var-create - * \"%s\"", escaped);
		g_free(escaped);

		if (RC_DONE != exec_sync_command(command, TRUE, &record))
		{
			/* do not include to updating list, move to next watch */
			var->evaluated = FALSE;
			g_string_assign(var->internal, "");
			g_free(record);			
			iter = iter->next;
			
			continue;
		}
		
		/* find and assign internal name */
		gchar *pos = strstr(record, "name=\"") + strlen("name=\"");
		*strchr(pos, '\"') = '\0'; 
		g_string_assign(var->internal, pos);
		g_free(record);			
		
		var->evaluated = TRUE;

		/* add to updating list */
		updating = g_list_append(updating, var);

		iter = iter->next;
	}
	
	/* update watches */
	get_variables(updating);

	/* free updating list */
	g_list_free(updating);
}
Beispiel #4
0
static void
handle_frame_stats (GdkFrameClock *frame_clock)
{
  static int num_stats = 0;
  static double last_print_time = 0;
  static int frames_since_last_print = 0;
  static gint64 frame_counter;
  static gint64 last_handled_frame = -1;

  static Variable latency = VARIABLE_INIT;

  double current_time;

  current_time = g_get_monotonic_time ();
  if (current_time >= last_print_time + 1000000 * statistics_time)
    {
      if (frames_since_last_print)
        {
          if (num_stats == 0 && machine_readable)
            {
              g_print ("# load_factor frame_rate latency\n");
            }

          num_stats++;
          if (machine_readable)
            g_print ("%g	", load_factor);
          print_double ("Frame rate ",
                        frames_since_last_print / ((current_time - last_print_time) / 1000000.));

          print_variable ("Latency", &latency);

          g_print ("\n");
        }

      last_print_time = current_time;
      frames_since_last_print = 0;
      variable_reset (&latency);

      if (num_stats == max_stats)
        gtk_main_quit ();
    }

  frames_since_last_print++;

  for (frame_counter = last_handled_frame;
       frame_counter < gdk_frame_clock_get_frame_counter (frame_clock);
       frame_counter++)
    {
      GdkFrameTimings *timings = gdk_frame_clock_get_timings (frame_clock, frame_counter);
      GdkFrameTimings *previous_timings = gdk_frame_clock_get_timings (frame_clock, frame_counter - 1);

      if (!timings || gdk_frame_timings_get_complete (timings))
        last_handled_frame = frame_counter;

      if (timings && gdk_frame_timings_get_complete (timings) && previous_timings &&
          gdk_frame_timings_get_presentation_time (timings) != 0 &&
          gdk_frame_timings_get_presentation_time (previous_timings) != 0)
        {
          double display_time = (gdk_frame_timings_get_presentation_time (timings) - gdk_frame_timings_get_presentation_time (previous_timings)) / 1000.;
          double frame_latency = (gdk_frame_timings_get_presentation_time (previous_timings) - gdk_frame_timings_get_frame_time (previous_timings)) / 1000. + display_time / 2;

          variable_add_weighted (&latency, frame_latency, display_time);
        }
    }
}