コード例 #1
0
ファイル: trackmood.c プロジェクト: samuelmr/pebble-trackmood
static void icon_layer_update_proc(Layer *layer, GContext *ctx) {
  switch (current_mood) {
    case TERRIBLE:
      mood_icon = gdraw_command_image_create_with_resource(RESOURCE_ID_ICON_TERRIBLE);
      break;
    case BAD:
      mood_icon = gdraw_command_image_create_with_resource(RESOURCE_ID_ICON_BAD);
      break;
    case GREAT:
      mood_icon = gdraw_command_image_create_with_resource(RESOURCE_ID_ICON_GREAT);
      break;
    case AWESOME:
      mood_icon = gdraw_command_image_create_with_resource(RESOURCE_ID_ICON_AWESOME);
      break;
    default:
    case OK:
      mood_icon = gdraw_command_image_create_with_resource(RESOURCE_ID_ICON_OK);
  }
  if (!mood_icon) {
    return;
  }

  GDrawCommandImage *temp_copy = gdraw_command_image_clone(mood_icon);
  graphics_context_set_antialiased(ctx, true);
  gdraw_command_image_draw(ctx, temp_copy, GPoint(0, 0));
  free(temp_copy);
  free(mood_icon);
  return;
}
コード例 #2
0
ファイル: weather.c プロジェクト: aizad02/TimeStylePebble
void Weather_setConditions(int conditionCode, bool isNight, int forecastCondition) {

  uint32_t currentWeatherIcon = getConditionIcon(conditionCode);
  uint32_t forecastWeatherIcon = getConditionIcon(forecastCondition);

  // ok, now load the new icon:
  #ifdef PBL_COLOR
    GDrawCommandImage* oldImage = Weather_currentWeatherIcon;
    Weather_currentWeatherIcon = gdraw_command_image_create_with_resource(currentWeatherIcon);
    gdraw_command_image_destroy(oldImage);

    oldImage = Weather_forecastWeatherIcon;
    Weather_forecastWeatherIcon = gdraw_command_image_create_with_resource(forecastWeatherIcon);
    gdraw_command_image_destroy(oldImage);
  #else
    GBitmap* oldImage = Weather_currentWeatherIcon;
    Weather_currentWeatherIcon = gbitmap_create_with_resource(currentWeatherIcon);
    gbitmap_destroy(oldImage);

    oldImage = Weather_forecastWeatherIcon;
    Weather_forecastWeatherIcon = gbitmap_create_with_resource(forecastWeatherIcon);
    gbitmap_destroy(oldImage);
  #endif

  Weather_weatherInfo.currentIconResourceID = currentWeatherIcon;
  Weather_weatherForecast.forecastIconResourceID = forecastWeatherIcon;
}
コード例 #3
0
ファイル: main.c プロジェクト: azw409/TimeStylePebble
static void main_window_load(Window *window) {
//   APP_LOG(APP_LOG_LEVEL_DEBUG, "trying to construct");
  ClockDigit_construct(&clockDigits[0], GPoint(7, 7));
  ClockDigit_construct(&clockDigits[1], GPoint(60, 7));
  ClockDigit_construct(&clockDigits[2], GPoint(7, 90));
  ClockDigit_construct(&clockDigits[3], GPoint(60, 90));

//   APP_LOG(APP_LOG_LEVEL_DEBUG, "Made it past construction");

  for(int i = 0; i < 4; i++) {
    ClockDigit_setColor(&clockDigits[i], globalSettings.timeColor, globalSettings.timeBgColor);
    layer_add_child(window_get_root_layer(window), bitmap_layer_get_layer(clockDigits[i].imageLayer));
  }

//   APP_LOG(APP_LOG_LEVEL_DEBUG, "Made it past color setting");

  // load font
  sidebarFont = fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD);
  dateFont = fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD);

  // init the sidebar layer
  if(globalSettings.sidebarOnRight) {
    sidebarLayer = layer_create(GRect(114, 0, 30, 168));
  } else {
    sidebarLayer = layer_create(GRect(0, 0, 30, 168));
  }
  layer_add_child(window_get_root_layer(window), sidebarLayer);
  layer_set_update_proc(sidebarLayer, sidebarLayerUpdateProc);

  // load the sidebar graphics
  #ifdef PBL_COLOR
    dateImage = gdraw_command_image_create_with_resource(RESOURCE_ID_DATE_BG);
    disconnectImage = gdraw_command_image_create_with_resource(RESOURCE_ID_DISCONNECTED);
    batteryImage = gdraw_command_image_create_with_resource(RESOURCE_ID_BATTERY_BG);
  #else
    dateImage = gbitmap_create_with_resource(RESOURCE_ID_DATE_BG);
    disconnectImage = gbitmap_create_with_resource(RESOURCE_ID_DISCONNECTED);
    batteryImage = gbitmap_create_with_resource(RESOURCE_ID_BATTERY_BG);
  #endif

  if (!dateImage || !disconnectImage) {
    APP_LOG(APP_LOG_LEVEL_ERROR, "Failed to load a PDC image.");
  }

  window_set_background_color(window, globalSettings.timeBgColor);

  // Make sure the time is displayed from the start
  forceScreenRedraw();
  update_clock();
}
コード例 #4
0
ファイル: system.c プロジェクト: gloriousCode/PebbleFace
void render_calendar_background(Layer *layer, GContext *ctx)
{
    // Kill the old struct!
    GDrawCommandImage* oldImage = calendar_background;
    calendar_background = gdraw_command_image_create_with_resource(RESOURCE_ID_CALENDAR_BACKGROUND);
    gdraw_command_image_destroy(oldImage);
    gdraw_command_image_draw(ctx, calendar_background, GPoint(114, 4));
}
コード例 #5
0
ファイル: weather.c プロジェクト: aizad02/TimeStylePebble
void Weather_init() {
  // if possible, load weather data from persistent storage
  printf("starting weather!");
  if (persist_exists(WEATHERINFO_PERSIST_KEY)) {
    printf("current key exists!");
    WeatherInfo w;
    persist_read_data(WEATHERINFO_PERSIST_KEY, &w, sizeof(WeatherInfo));

    Weather_weatherInfo = w;

    #ifdef PBL_COLOR
      Weather_currentWeatherIcon = gdraw_command_image_create_with_resource(w.currentIconResourceID);
    #else
      Weather_currentWeatherIcon = gbitmap_create_with_resource(w.currentIconResourceID);
    #endif

  } else {

    printf("current key does not exist!");
    // otherwise, use null data
    Weather_currentWeatherIcon = NULL;
    Weather_weatherInfo.currentTemp = INT32_MIN;
  }

  if (persist_exists(WEATHERFORECAST_PERSIST_KEY)) {
    printf("forecast key exists!");
    WeatherForecastInfo w;
    persist_read_data(WEATHERFORECAST_PERSIST_KEY, &w, sizeof(WeatherForecastInfo));

    Weather_weatherForecast = w;

    #ifdef PBL_COLOR
      Weather_forecastWeatherIcon = gdraw_command_image_create_with_resource(w.forecastIconResourceID);
    #else
      Weather_forecastWeatherIcon = gbitmap_create_with_resource(w.forecastIconResourceID);
    #endif

  } else {
    printf("forecast key does not exist!");

    Weather_forecastWeatherIcon = NULL;
    Weather_weatherForecast.highTemp = INT32_MIN;
    Weather_weatherForecast.lowTemp = INT32_MIN;
  }
}
コード例 #6
0
void SidebarWidgets_init() {
  // load fonts
  smSidebarFont = fonts_get_system_font(FONT_KEY_GOTHIC_14_BOLD);
  mdSidebarFont = fonts_get_system_font(FONT_KEY_GOTHIC_18_BOLD);
  lgSidebarFont = fonts_get_system_font(FONT_KEY_GOTHIC_24_BOLD);

  // load the sidebar graphics
  dateImage = gdraw_command_image_create_with_resource(RESOURCE_ID_DATE_BG);
  disconnectImage = gdraw_command_image_create_with_resource(RESOURCE_ID_DISCONNECTED);
  batteryImage = gdraw_command_image_create_with_resource(RESOURCE_ID_BATTERY_BG);
  batteryChargeImage = gdraw_command_image_create_with_resource(RESOURCE_ID_BATTERY_CHARGE);


  // set up widgets' function pointers correctly
  batteryMeterWidget.getHeight = BatteryMeter_getHeight;
  batteryMeterWidget.draw      = BatteryMeter_draw;

  emptyWidget.getHeight = EmptyWidget_getHeight;
  emptyWidget.draw      = EmptyWidget_draw;

  dateWidget.getHeight = DateWidget_getHeight;
  dateWidget.draw      = DateWidget_draw;

  currentWeatherWidget.getHeight = CurrentWeather_getHeight;
  currentWeatherWidget.draw      = CurrentWeather_draw;

  weatherForecastWidget.getHeight = WeatherForecast_getHeight;
  weatherForecastWidget.draw      = WeatherForecast_draw;

  btDisconnectWidget.getHeight = BTDisconnect_getHeight;
  btDisconnectWidget.draw      = BTDisconnect_draw;

  weekNumberWidget.getHeight = WeekNumber_getHeight;
  weekNumberWidget.draw      = WeekNumber_draw;

  secondsWidget.getHeight = Seconds_getHeight;
  secondsWidget.draw      = Seconds_draw;

  altTimeWidget.getHeight = AltTime_getHeight;
  altTimeWidget.draw      = AltTime_draw;

  timeWidget.getHeight = Time_getHeight;
  timeWidget.draw      = Time_draw;

}
コード例 #7
0
ファイル: weather.c プロジェクト: MathewReiss/TimeStylePebble
void Weather_setCondition(int conditionCode, bool isNight) {
  int generalCondition = conditionCode / 100;
  
  uint32_t iconToLoad;
  
  switch(generalCondition) {
    case 2: //thunderstorm
      iconToLoad = RESOURCE_ID_WEATHER_THUNDERSTORM;
      break;
    case 3: //drizzle
      iconToLoad = RESOURCE_ID_WEATHER_LIGHT_RAIN;
      break;
    case 5: //rain
      if(conditionCode == 500) {
        iconToLoad = RESOURCE_ID_WEATHER_LIGHT_RAIN;
      } else if(conditionCode < 505) {
        iconToLoad = RESOURCE_ID_WEATHER_HEAVY_RAIN;
      } else if(conditionCode == 511) {
        iconToLoad = RESOURCE_ID_WEATHER_RAINING_AND_SNOWING;
      } else {
        iconToLoad = RESOURCE_ID_WEATHER_LIGHT_RAIN;
      }
      break;
    case 6: //snow
      if(conditionCode == 600 || conditionCode == 620) {
        iconToLoad = RESOURCE_ID_WEATHER_LIGHT_SNOW;
      } else if(conditionCode > 610 && conditionCode < 620) {
        iconToLoad = RESOURCE_ID_WEATHER_RAINING_AND_SNOWING;
      } else {
        iconToLoad = RESOURCE_ID_WEATHER_HEAVY_SNOW;
      }
      break;
    case 7: // fog, dust, etc
      iconToLoad = RESOURCE_ID_WEATHER_CLOUDY;
      break;
    case 8: // clouds
      if(conditionCode == 800) {
        iconToLoad = (!isNight) ? RESOURCE_ID_WEATHER_CLEAR_DAY : RESOURCE_ID_WEATHER_CLEAR_NIGHT;
      } else if(conditionCode < 803) {
        iconToLoad = (!isNight) ? RESOURCE_ID_WEATHER_PARTLY_CLOUDY : RESOURCE_ID_WEATHER_PARTLY_CLOUDY_NIGHT;
      } else {
        iconToLoad = RESOURCE_ID_WEATHER_CLOUDY;
      }
      break;
    default: // hack: let's just treat the rest as clear
      iconToLoad = (!isNight) ? RESOURCE_ID_WEATHER_CLEAR_DAY : RESOURCE_ID_WEATHER_CLEAR_NIGHT;
      break;
  }
   
  // ok, now load the new icon:
  GDrawCommandImage* oldImage = Weather_currentWeatherIcon;
  Weather_currentWeatherIcon = gdraw_command_image_create_with_resource(iconToLoad);
  gdraw_command_image_destroy(oldImage);
  Weather_weatherInfo.currentIconResourceID = iconToLoad;
}
コード例 #8
0
ファイル: weather.c プロジェクト: MathewReiss/TimeStylePebble
void Weather_init() {
  // if possible, load weather data from persistent storage
  
  if (persist_exists(WEATHERINFO_PERSIST_KEY)) {
    WeatherInfo w;
    persist_read_data(WEATHERINFO_PERSIST_KEY, &w, sizeof(WeatherInfo));
    
    Weather_weatherInfo = w;
    
    Weather_currentWeatherIcon = gdraw_command_image_create_with_resource(w.currentIconResourceID);
  } else {
    // otherwise, use null data
    Weather_currentWeatherIcon = NULL;
    Weather_weatherInfo.currentTemp = INT32_MIN;
  }
}
コード例 #9
0
ファイル: weather.c プロジェクト: AndCycle/PebbleFaceTryout
static void weather_display_refresh() {
	
	APP_LOG(APP_LOG_LEVEL_DEBUG_VERBOSE, "weather display refresh");
	
  // Store incoming information
  static char temperature_buffer[8];
	static char temperature_min_buffer[8];
	static char temperature_max_buffer[8];
  static char conditions_buffer[32];
  static char weather_layer_buffer[32];
	
	if (weather_data.fetch_time == 0) {
		text_layer_set_text(s_weather_layer, "Loading...");
		return;
	}
	
	snprintf(temperature_buffer, sizeof(temperature_buffer), "%d°", (int)weather_data.temperature);
	snprintf(temperature_min_buffer, sizeof(temperature_min_buffer), "%d°", (int)weather_data.temperature_min);
	snprintf(temperature_max_buffer, sizeof(temperature_max_buffer), "%d°", (int)weather_data.temperature_max);
	snprintf(conditions_buffer, sizeof(conditions_buffer), "%d", (int)weather_data.condition_id);
		
  // Assemble full string and display
  snprintf(weather_layer_buffer, sizeof(weather_layer_buffer), "%s, %s", temperature_buffer, conditions_buffer);
	text_layer_set_text(s_weather_layer, weather_layer_buffer);
	text_layer_set_text(s_weather_temp_min, temperature_min_buffer);
	text_layer_set_text(s_weather_temp_max, temperature_max_buffer);
	


	
	gdraw_command_image_destroy(s_weather_cmd_img);
	
	switch (weather_data.condition_id) {
		//Group 2xx: Thunderstorm
		case 200:
		case 201:
		case 202:
		case 210:
		case 211:
		case 212:
		case 221:
		case 230:
		case 231:
		case 232:
			s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_RAINING_AND_SNOWING);
			break;
				
		//Group 3xx: Drizzle
		case 300:
		case 301:
		case 302:
		case 310:
		case 311:
		case 312:
		case 313:
		case 314:
		case 321:
				s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_HEAVY_RAIN);
				break;
		
		//Group 5xx: Rain
		case 500:
				s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_LIGHT_RAIN);
				break;
		case 501:
		case 502:
		case 503:
		case 504:
				s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_HEAVY_RAIN);
				break;
		case 511:
				s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_HEAVY_SNOW);
				break;
		case 520:
		case 521:
		case 522:
		case 531:
				s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_HEAVY_RAIN);
				break;
		
		//Group 6xx: Snow
		case 600:
				s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_LIGHT_SNOW);
				break;
		case 601:
		case 602:
		case 611:
		case 612:
		case 615:
		case 616:
		case 620:
		case 621:
		case 622:
				s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_HEAVY_SNOW);
				break;
		
		//Group 7xx: Atmosphere
		case 701:
		case 711:
		case 721:
		case 731:
		case 741:
		case 751:
		case 761:
		case 762:
		case 771:
		case 781:
			break;
		
		//Group 800: Clear
		case 800:
				s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_TIMELINE_SUN);
				break;
		
		//Group 80x: Clouds
		case 801:
		case 802:
				s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_PARTLY_CLOUDY);
				break;
		case 803:
		case 804:
				s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_CLOUDY_DAY);
				break;
		
		//Group 90x: Extreme
		case 900:
		case 901:
		case 902:
		case 903:
		case 904:
		case 905:
		case 906:
			break;
				
		//Group 9xx: Additional
		case 951:
		case 952:
		case 953:
		case 954:
		case 955:
		case 956:
		case 957:
		case 958:
		case 959:
		case 960:
		case 961:
		case 962:
			break;
	
		default:
			break;
		
	}
	
	if (!s_weather_cmd_img) {
		s_weather_cmd_img = gdraw_command_image_create_with_resource(RESOURCE_ID_GENERIC_WARNING);	
	}
		
	
	layer_mark_dirty(s_weather_icon_draw_layer);
	
}