Beispiel #1
0
static void update_plugin() {
  if(!pGK->second_tick) {
    return;
  }

  if (gov_enable_current) {
    read_governors();
  }
  read_khz();

  unsigned int cpu;
  if (slider_enable_current) {
    for( cpu=0; cpu<ncpu; ++cpu ) {
      if (!slider_in_motion[cpu]) {
        int krellpos = slider_krell[cpu]->w_scale*khz[cpu]/khz_max;
        gkrellm_update_krell(panel, slider_krell[cpu], krellpos);
      }
    }
  }
  
  char theText[length];
  for ( cpu=0; cpu<ncpu; ++cpu ) {
    sprintf(theText, "%d MHz", (int)((khz[cpu]+500)/1000));
    text_decal_freq[cpu]->x_off = 0;
    gkrellm_draw_decal_text(panel, text_decal_freq[cpu], theText, -1);
    text_decal_gov[cpu]->x_off = 0;
    gkrellm_draw_decal_text(panel, text_decal_gov[cpu], governor_text[cpu], -1);
  }  

  gkrellm_draw_panel_layers(panel);
}
Beispiel #2
0
static void
update_slider(void)
{
	int bright;
   
	if ( GK.ten_second_tick || (last_lcd<0) ) {
		bright = read_vaio_lcd();

		gkrellm_update_krell( panel, krell, bright );
	
		gkrellm_draw_decal_text( panel, text, "LCD", -1 );

		gkrellm_draw_layers( panel );
		last_lcd = bright;
	}
}
Beispiel #3
0
static void
panel_button_press( GtkWidget *widget, GdkEventButton *ev )
{
	gint x;
	
	if ( ev->button != 1 ) return;
	
	slider_in_motion = 1;

	x = ev->x * krell->full_scale / (gkrellm_chart_width() - 1);
	if ( x < MIN_LCD ) x = MIN_LCD;
	else if ( x > MAX_LCD ) x = MAX_LCD;

	write_vaio_lcd( x );
	
	gkrellm_update_krell( panel, krell, (gulong)x );
	gkrellm_draw_layers( panel );
}
Beispiel #4
0
static void update_slider_position(GkrellmKrell *k,
                                   gint x_ev,
                                   unsigned int cpu) {
  if (k) {
    gint x;

    /* Consider only x_ev values that are inside the dynamic range of the
       krell.
    */
    x = x_ev - k->x0;
    if (x < 0)
      x = 0;
    if (x > k->w_scale)
      x = k->w_scale;
    gkrellm_update_krell(panel, k, x);
    gkrellm_draw_panel_layers(panel);

    slider_value[cpu] = (double) x / (double) k->w_scale;  /* ranges 0.0-1.0 */
  }
}
static void
update_proc(void)
	{
	GkrellmChart	*cp;
	GkrellmPanel	*p;
	gint			load;

	if (!proc.enabled)
		return;
	(*read_proc_data)();
	if (GK.five_second_tick)
		{
		(*read_user_data)();
		gkrellm_check_alert(users_alert, proc.n_users);
		}
	cp = proc.chart;
	p = cp->panel;
	gkrellm_update_krell(p, KRELL(p), proc.n_forks);
	gkrellm_draw_panel_layers(p);

	if (GK.second_tick)
		{
		/* Scale load since it is a small real and charts are integer only.
		|  Scale the forks number by fork_scaling.  See setup_proc_scaling().
		*/
		load = (int) (LOAD_SCALING * proc.fload);
		gkrellm_store_chartdata(cp, 0, load, fork_scaling * proc.n_forks);
		refresh_proc_chart(cp);
		gkrellm_check_alert(load_alert, proc.fload);
		gkrellm_check_alert(processes_alert, proc.n_processes);
		gkrellm_panel_label_on_top_of_decals(p,
				gkrellm_alert_decal_visible(load_alert) ||
				gkrellm_alert_decal_visible(users_alert) ||
				gkrellm_alert_decal_visible(processes_alert));

		}
	if (   (GK.two_second_tick && !sensor_separate_mode)
		|| (GK.five_second_tick && sensor_separate_mode)
	   )
		draw_sensor_decals();
	}
Beispiel #6
0
static void
slider_motion( GtkWidget *widget, GdkEventButton *ev, gpointer data )
{
	gint x;
	GdkModifierType state;
	
	if ( !slider_in_motion ) return;

	state = ev->state;
	if ( !(state & GDK_BUTTON1_MASK)) {
		slider_in_motion = 0;
		return;
	}

	x = ev->x * krell->full_scale / (gkrellm_chart_width() - 1);
	if ( x < MIN_LCD ) x = MIN_LCD;
	else if ( x > MAX_LCD ) x = MAX_LCD;
	
	write_vaio_lcd( x );
	
	gkrellm_update_krell( panel, krell, (gulong)x );
	gkrellm_draw_layers( panel );
}
Beispiel #7
0
static void create_plugin(GtkWidget* vbox, gint first_create) {
  GkrellmStyle* style;
  GkrellmPiximage* krell_image;
  GkrellmTextstyle* ts;
  gint y = -1;
  unsigned int cpu;

  /* called when GKrellM is re-built at every theme or horizontal
     size change
  */
  if (first_create)
  	panel = gkrellm_panel_new0();

  read_khz();

  for ( cpu=0; cpu<ncpu; ++cpu ) {

    style = gkrellm_meter_style(style_id);
    /* text style */
    ts = gkrellm_meter_textstyle(style_id);

    /* the governor text */
    text_decal_gov[cpu] =
      gkrellm_create_decal_text(panel, "abcdefghijklmnopqrstuvwxyz", ts, style,
        -1,     /* x = -1 places at left margin */
         y,     /* y = -1 places at top margin */
        -1);    /* w = -1 makes decal the panel width minus margins */
    if (gov_enable) {
      governor_text[cpu] = governor[cpu];
      y = text_decal_gov[cpu]->y + text_decal_gov[cpu]->h + 1;
    } else {
      governor_text[cpu] = empty;
    }

    /* the frequency text */
    text_decal_freq[cpu] =
      gkrellm_create_decal_text(panel, "0123456789 MHz", ts, style,
        -1,     /* x = -1 places at left margin */
         y,     /* y = -1 places at top margin */
        -1);    /* w = -1 makes decal the panel width minus margins */

    y = text_decal_freq[cpu]->y + text_decal_freq[cpu]->h + 1;

    /* the slider */
    if (slider_enable) {
      krell_image = gkrellm_krell_slider_piximage();
      gkrellm_set_style_slider_values_default(style,
	y,     /* y offset */
	0, 0); /* Left and right krell margins */
      slider_krell[cpu] = gkrellm_create_krell(panel, krell_image, style);
      y = slider_krell[cpu]->y0 + slider_krell[cpu]->h_frame + 2;

      gkrellm_monotonic_krell_values(slider_krell[cpu], FALSE);
      gkrellm_set_krell_full_scale(slider_krell[cpu],
                                   slider_krell[cpu]->w_scale, 1);
      gkrellm_update_krell(panel, slider_krell[cpu], 0);

      update_slider_position(slider_krell[cpu],
                             slider_krell[cpu]->w_scale*khz[cpu]/khz_max,
                             cpu);
    }
  }

  slider_enable_current = slider_enable;
  gov_enable_current = gov_enable;

  /* configure and create the panel  */
  gkrellm_panel_configure(panel, "", style);
  gkrellm_panel_create(vbox, monitor, panel);

  if (first_create) {
    g_signal_connect(G_OBJECT (panel->drawing_area), "expose_event",
                     G_CALLBACK(panel_expose_event), NULL);
    g_signal_connect(G_OBJECT(panel->drawing_area), "button_press_event",
                     G_CALLBACK(cb_panel_press), NULL );
    g_signal_connect(G_OBJECT(panel->drawing_area), "button_release_event",
                     G_CALLBACK(cb_panel_release), NULL );
    g_signal_connect(G_OBJECT(panel->drawing_area), "motion_notify_event",
                     G_CALLBACK(cb_panel_motion), NULL);
  }
}