Exemplo n.º 1
0
void kernel_load_enter(void) {
    graphics_location draw_system_logo_x=0;
    graphics_location draw_system_logo_y=0;
    unsigned long draw_system_logo_height=0;
    unsigned long draw_system_logo_width=0;
    window_widget picture_kernel_logo;
    widget_handle picture_kernel_logo_handle=INVALID_WIDGET_HANDLE;
    window_widget progress_load_rate;
    
    kernel_load_window=create_window("kernel load","kernel load",false,NULL);
    set_window_background_color(kernel_load_window,DEFAULT_COLOR_BACKGROUND);
    show_window(kernel_load_window);
    lcd_calcu_middle_location(0,0,SCREEN_HORIZONTAL_PIXEL,SCREEN_LONGITUDINAL_PIXEL,&draw_system_logo_x,&draw_system_logo_y);
    graphics_get_bitmap(kernel_logo,NULL,&draw_system_logo_height,&draw_system_logo_width);
    draw_system_logo_x-=draw_system_logo_width/2;
    draw_system_logo_y-=draw_system_logo_height/2;
    picture_kernel_logo.widget_type=widget_picture;
    picture_kernel_logo.x=draw_system_logo_x;
    picture_kernel_logo.y=draw_system_logo_y;
    picture_kernel_logo_handle=create_widget(kernel_load_window,&picture_kernel_logo);
    set_picture_bitmap(kernel_load_window,picture_kernel_logo_handle,kernel_logo);
    draw_widget(kernel_load_window,picture_kernel_logo_handle);
    progress_load_rate.widget_type=widget_progress;
    progress_load_rate.widget_height=PROGRESS_HEIGHT;
    progress_load_rate.widget_width=draw_system_logo_width;
    progress_load_rate.x=draw_system_logo_x;
    progress_load_rate.y=draw_system_logo_y+draw_system_logo_height+DISTANCE_PROGRESS_TO_LOGO;
    progress_load_rate_handle=create_widget(kernel_load_window,&progress_load_rate);
    set_progress_max_value(kernel_load_window,progress_load_rate_handle,MAX_KERNEL_LOAD_RATE);
    set_progress_value(kernel_load_window,progress_load_rate_handle,0);
    draw_widget(kernel_load_window,progress_load_rate_handle);
}
Exemplo n.º 2
0
void kernel_set_load_rate(unsigned int rate) {
    if (rate>load_rate) {
        set_progress_value(kernel_load_window,progress_load_rate_handle,rate);
        if (MAX_KERNEL_LOAD_RATE==rate) {
            close_window(kernel_load_window);
            return;
        }
        load_rate=rate;
    }
}
Exemplo n.º 3
0
void
job_run_dialog::process_input() {
  if (!process)
    return;

  while (process->IsInputAvailable()) {
    bool got_char = false;
    char c        = 0;

    if (!out->Eof()) {
      c = out->GetC();
      got_char = true;
    }

    if (got_char && ((c == '\n') || (c == '\r') || out->Eof())) {
      wxString wx_line = wxU(line);

      if (wx_line.Find(wxT("#GUI#begin_scanning_playlists")) == 0)
        m_scanning_playlists = true;

      else if (wx_line.Find(wxT("#GUI#end_scanning_playlists")) == 0) {
        m_scanning_playlists         = false;

        m_start_time                 = mtx::sys::get_current_time_millis();
        m_next_remaining_time_update = m_start_time + 8000;

        if (!current_job) {
          m_start_time_total                 = m_start_time;
          m_next_remaining_time_update_total = m_next_remaining_time_update;
        }

      } else if (wx_line.Find(wxT("#GUI#progress")) == 0) {
        int percent_pos = wx_line.Find(wxT("%"));
        if (0 < percent_pos) {
          wx_line.Remove(percent_pos);
          wxString tmp = wx_line.AfterLast(wxT(' '));

          long value;
          tmp.ToLong(&value);
          if ((value >= 0) && (value <= 100))
            set_progress_value(value);
        }
      } else if (wx_line.Length() > 0)
        *jobs[jobs_to_start[current_job]].log += wx_line + wxT("\n");
      line = "";
    } else if ((unsigned char)c != 0xff)
      line += c;

    update_remaining_time();

    if (out->Eof())
      break;
  }
}