| libgweather-3.0 Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
#include <libgweather/gweather.h> enum GWeatherForecastType; GWeatherInfo * gweather_info_new (GWeatherLocation *location,GWeatherForecastType forecast_type); GWeatherInfo * gweather_info_new_for_world (GWeatherLocation *world,GWeatherLocation *location,GWeatherForecastType forecast_type); void gweather_info_update (GWeatherInfo *info); void gweather_info_abort (GWeatherInfo *info); gboolean gweather_info_is_valid (GWeatherInfo *info); gboolean gweather_info_network_error (GWeatherInfo *info); const GWeatherLocation * gweather_info_get_location (GWeatherInfo *info); void gweather_info_set_location (GWeatherInfo *info,GWeatherLocation *location); GSList * gweather_info_get_forecast_list (GWeatherInfo *info); enum GWeatherProvider; GWeatherProvider gweather_info_get_enabled_providers (GWeatherInfo *info); void gweather_info_set_enabled_providers (GWeatherInfo *info,GWeatherProvider providers); const gchar * gweather_info_get_attribution (GWeatherInfo *info); gchar * gweather_info_get_location_name (GWeatherInfo *info); const gchar * gweather_info_get_icon_name (GWeatherInfo *info); gchar * gweather_info_get_weather_summary (GWeatherInfo *info); gchar * gweather_info_get_temp_summary (GWeatherInfo *info); gchar * gweather_info_get_update (GWeatherInfo *info); gchar * gweather_info_get_sky (GWeatherInfo *info); gchar * gweather_info_get_conditions (GWeatherInfo *info); gchar * gweather_info_get_temp (GWeatherInfo *info); gchar * gweather_info_get_temp_min (GWeatherInfo *info); gchar * gweather_info_get_temp_max (GWeatherInfo *info); gchar * gweather_info_get_dew (GWeatherInfo *info); gchar * gweather_info_get_humidity (GWeatherInfo *info); gchar * gweather_info_get_wind (GWeatherInfo *info); gchar * gweather_info_get_pressure (GWeatherInfo *info); gchar * gweather_info_get_visibility (GWeatherInfo *info); gchar * gweather_info_get_apparent (GWeatherInfo *info); gchar * gweather_info_get_sunrise (GWeatherInfo *info); gchar * gweather_info_get_sunset (GWeatherInfo *info); gchar * gweather_info_get_forecast (GWeatherInfo *info); GdkPixbufAnimation * gweather_info_get_radar (GWeatherInfo *info); enum GWeatherConditionPhenomenon; enum GWeatherConditionQualifier; struct GWeatherConditions; const gchar * gweather_conditions_to_string (GWeatherConditions *conditions); enum GWeatherSky; const gchar * gweather_sky_to_string (GWeatherSky sky); enum GWeatherWindDirection; const gchar * gweather_wind_direction_to_string (GWeatherWindDirection wind); typedef GWeatherMoonLatitude; typedef GWeatherMoonPhase; enum GWeatherDistanceUnit; enum GWeatherPressureUnit; enum GWeatherSpeedUnit; enum GWeatherTemperatureUnit; gboolean gweather_info_get_value_update (GWeatherInfo *info,time_t *value); gboolean gweather_info_get_value_sky (GWeatherInfo *info,GWeatherSky *sky); gboolean gweather_info_get_value_conditions (GWeatherInfo *info,GWeatherConditionPhenomenon *phenomenon,GWeatherConditionQualifier *qualifier); gboolean gweather_info_get_value_temp (GWeatherInfo *info,GWeatherTemperatureUnit unit,gdouble *value); gboolean gweather_info_get_value_temp_min (GWeatherInfo *info,GWeatherTemperatureUnit unit,gdouble *value); gboolean gweather_info_get_value_temp_max (GWeatherInfo *info,GWeatherTemperatureUnit unit,gdouble *value); gboolean gweather_info_get_value_dew (GWeatherInfo *info,GWeatherTemperatureUnit unit,gdouble *value); gboolean gweather_info_get_value_apparent (GWeatherInfo *info,GWeatherTemperatureUnit unit,gdouble *value); gboolean gweather_info_get_value_wind (GWeatherInfo *info,GWeatherSpeedUnit unit,gdouble *speed,GWeatherWindDirection *direction); gboolean gweather_info_get_value_pressure (GWeatherInfo *info,GWeatherPressureUnit unit,gdouble *value); gboolean gweather_info_get_value_visibility (GWeatherInfo *info,GWeatherDistanceUnit unit,gdouble *value); gboolean gweather_info_get_value_sunrise (GWeatherInfo *info,time_t *value); gboolean gweather_info_get_value_sunset (GWeatherInfo *info,time_t *value); gint gweather_info_next_sun_event (GWeatherInfo *info); gboolean gweather_info_get_value_moonphase (GWeatherInfo *info,GWeatherMoonPhase *value,GWeatherMoonLatitude *lat); gboolean gweather_info_get_upcoming_moonphases (GWeatherInfo *info,time_t *phases);
GWeatherInfo provides a handy way to access weather conditions and forecasts from a GWeatherLocation, aggregating multiple different web services.
It includes also astronomical data such as sunrise times and moon phases.
typedef enum {
/*< underscore_name=gweather_forecast_type >*/
GWEATHER_FORECAST_STATE,
GWEATHER_FORECAST_ZONE,
GWEATHER_FORECAST_LIST
} GWeatherForecastType;
GWeatherInfo * gweather_info_new (GWeatherLocation *location,GWeatherForecastType forecast_type);
Builds a new GWeatherInfo that will provide weather information about
location. The returned info will not be ready until the "updated" signal
is emitted.
|
the desidered GWeatherLocation (NULL for default). [allow-none] |
|
the type of forecast requested |
Returns : |
a new GWeatherInfo. [transfer full] |
GWeatherInfo * gweather_info_new_for_world (GWeatherLocation *world,GWeatherLocation *location,GWeatherForecastType forecast_type);
Similar to gweather_info_new(), but also has a world parameter, that allow controlling
the hierarchy of GWeatherLocation to which location (or the default one taken from
GSettings) belongs.
|
a GWeatherLocation representing the whole world |
|
the desidered GWeatherLocation (NULL for default). [allow-none] |
|
the type of forecast requested |
Returns : |
a new GWeatherInfo. [transfer full] |
const GWeatherLocation * gweather_info_get_location (GWeatherInfo *info);
void gweather_info_set_location (GWeatherInfo *info,GWeatherLocation *location);
Changes info to report weather for location.
|
a GWeatherInfo |
|
a location for which weather is desired. [allow-none] |
GSList * gweather_info_get_forecast_list (GWeatherInfo *info);
|
a GWeatherInfo |
Returns : |
list of GWeatherInfo* objects for the forecast. The list is owned by the 'info' object thus is alive as long as the 'info'. This list is filled only when requested with type FORECAST_LIST and if available for given location. The 'update' property is the date/time when the forecast info is used for. [transfer none][element-type GWeather.Info] |
typedef enum {
/*< flags, underscore_name=gweather_provider >*/
GWEATHER_PROVIDER_NONE = 0,
GWEATHER_PROVIDER_METAR = 1,
GWEATHER_PROVIDER_IWIN = 1 << 2,
GWEATHER_PROVIDER_YAHOO = 1 << 3,
GWEATHER_PROVIDER_YR_NO = 1 << 4,
GWEATHER_PROVIDER_ALL = 31
} GWeatherProvider;
| no provider, no weather information available | |
| METAR office, providing current conditions worldwide | |
| US weather office, providing 7 days of forecast | |
| Yahoo Weather Service, worldwide but non commercial only | |
| Yr.no service, worldwide but requires attribution | |
| enable all available providers |
GWeatherProvider gweather_info_get_enabled_providers (GWeatherInfo *info);
void gweather_info_set_enabled_providers (GWeatherInfo *info,GWeatherProvider providers);
const gchar * gweather_info_get_attribution (GWeatherInfo *info);
Some weather services require the application showing the data to include an attribution text, possibly including links to the service website. This must be shown prominently toghether with the data.
|
a GWeatherInfo |
Returns : |
the required attribution text, in Pango
markup form, or NULL if not required. [transfer none]
|
gchar * gweather_info_get_weather_summary (GWeatherInfo *info);
|
a GWeatherInfo |
Returns : |
a summary for current weather conditions. [transfer full] |
GdkPixbufAnimation * gweather_info_get_radar (GWeatherInfo *info);
|
a GWeatherInfo |
Returns : |
what?. [transfer none] |
typedef enum {
/*< underscore_name=gweather_phenomenon >*/
GWEATHER_PHENOMENON_INVALID = -1,
GWEATHER_PHENOMENON_NONE,
GWEATHER_PHENOMENON_DRIZZLE,
GWEATHER_PHENOMENON_RAIN,
GWEATHER_PHENOMENON_SNOW,
GWEATHER_PHENOMENON_SNOW_GRAINS,
GWEATHER_PHENOMENON_ICE_CRYSTALS,
GWEATHER_PHENOMENON_ICE_PELLETS,
GWEATHER_PHENOMENON_HAIL,
GWEATHER_PHENOMENON_SMALL_HAIL,
GWEATHER_PHENOMENON_UNKNOWN_PRECIPITATION,
GWEATHER_PHENOMENON_MIST,
GWEATHER_PHENOMENON_FOG,
GWEATHER_PHENOMENON_SMOKE,
GWEATHER_PHENOMENON_VOLCANIC_ASH,
GWEATHER_PHENOMENON_SAND,
GWEATHER_PHENOMENON_HAZE,
GWEATHER_PHENOMENON_SPRAY,
GWEATHER_PHENOMENON_DUST,
GWEATHER_PHENOMENON_SQUALL,
GWEATHER_PHENOMENON_SANDSTORM,
GWEATHER_PHENOMENON_DUSTSTORM,
GWEATHER_PHENOMENON_FUNNEL_CLOUD,
GWEATHER_PHENOMENON_TORNADO,
GWEATHER_PHENOMENON_DUST_WHIRLS,
GWEATHER_PHENOMENON_LAST
} GWeatherConditionPhenomenon;
typedef enum {
/*< underscore_name=gweather_qualifier >*/
GWEATHER_QUALIFIER_INVALID = -1,
GWEATHER_QUALIFIER_NONE,
GWEATHER_QUALIFIER_VICINITY,
GWEATHER_QUALIFIER_LIGHT,
GWEATHER_QUALIFIER_MODERATE,
GWEATHER_QUALIFIER_HEAVY,
GWEATHER_QUALIFIER_SHALLOW,
GWEATHER_QUALIFIER_PATCHES,
GWEATHER_QUALIFIER_PARTIAL,
GWEATHER_QUALIFIER_THUNDERSTORM,
GWEATHER_QUALIFIER_BLOWING,
GWEATHER_QUALIFIER_SHOWERS,
GWEATHER_QUALIFIER_DRIFTING,
GWEATHER_QUALIFIER_FREEZING,
GWEATHER_QUALIFIER_LAST
} GWeatherConditionQualifier;
struct GWeatherConditions {
gboolean significant;
GWeatherConditionPhenomenon phenomenon;
GWeatherConditionQualifier qualifier;
};
const gchar * gweather_conditions_to_string (GWeatherConditions *conditions);
typedef enum {
/*< underscore_name=gweather_sky >*/
GWEATHER_SKY_INVALID = -1,
GWEATHER_SKY_CLEAR,
GWEATHER_SKY_BROKEN,
GWEATHER_SKY_SCATTERED,
GWEATHER_SKY_FEW,
GWEATHER_SKY_OVERCAST,
GWEATHER_SKY_LAST
} GWeatherSky;
typedef enum {
/*< underscore_name=gweather_wind_direction >*/
GWEATHER_WIND_INVALID = -1,
GWEATHER_WIND_VARIABLE,
GWEATHER_WIND_N,
GWEATHER_WIND_NNE,
GWEATHER_WIND_NE,
GWEATHER_WIND_ENE,
GWEATHER_WIND_E,
GWEATHER_WIND_ESE,
GWEATHER_WIND_SE,
GWEATHER_WIND_SSE,
GWEATHER_WIND_S,
GWEATHER_WIND_SSW,
GWEATHER_WIND_SW,
GWEATHER_WIND_WSW,
GWEATHER_WIND_W,
GWEATHER_WIND_WNW,
GWEATHER_WIND_NW,
GWEATHER_WIND_NNW,
GWEATHER_WIND_LAST
} GWeatherWindDirection;
const gchar * gweather_wind_direction_to_string (GWeatherWindDirection wind);
typedef enum {
/*< underscore_name=gweather_distance_unit >*/
GWEATHER_DISTANCE_UNIT_INVALID = 0,
GWEATHER_DISTANCE_UNIT_DEFAULT,
GWEATHER_DISTANCE_UNIT_METERS,
GWEATHER_DISTANCE_UNIT_KM,
GWEATHER_DISTANCE_UNIT_MILES
} GWeatherDistanceUnit;
typedef enum {
/*< underscore_name=gweather_pressure_unit >*/
GWEATHER_PRESSURE_UNIT_INVALID = 0,
GWEATHER_PRESSURE_UNIT_DEFAULT,
GWEATHER_PRESSURE_UNIT_KPA, /* kiloPascal */
GWEATHER_PRESSURE_UNIT_HPA, /* hectoPascal */
GWEATHER_PRESSURE_UNIT_MB, /* 1 millibars = 1 hectoPascal */
GWEATHER_PRESSURE_UNIT_MM_HG, /* millimeters of mercury */
GWEATHER_PRESSURE_UNIT_INCH_HG, /* inches of mercury */
GWEATHER_PRESSURE_UNIT_ATM /* atmosphere */
} GWeatherPressureUnit;
typedef enum {
/*< underscore_name=gweather_speed_unit >*/
GWEATHER_SPEED_UNIT_INVALID = 0,
GWEATHER_SPEED_UNIT_DEFAULT,
GWEATHER_SPEED_UNIT_MS, /* metres per second */
GWEATHER_SPEED_UNIT_KPH, /* kilometres per hour */
GWEATHER_SPEED_UNIT_MPH, /* miles per hour */
GWEATHER_SPEED_UNIT_KNOTS, /* Knots */
GWEATHER_SPEED_UNIT_BFT /* Beaufort scale */
} GWeatherSpeedUnit;
typedef enum {
/*< underscore_name=gweather_temperature_unit >*/
GWEATHER_TEMP_UNIT_INVALID = 0,
GWEATHER_TEMP_UNIT_DEFAULT,
GWEATHER_TEMP_UNIT_KELVIN,
GWEATHER_TEMP_UNIT_CENTIGRADE,
GWEATHER_TEMP_UNIT_FAHRENHEIT
} GWeatherTemperatureUnit;
gboolean gweather_info_get_value_update (GWeatherInfo *info,time_t *value);
|
a GWeatherInfo |
|
the time info was last updated. [out][type glong]
|
Returns : |
TRUE is value is valid, FALSE otherwise. |
gboolean gweather_info_get_value_sky (GWeatherInfo *info,GWeatherSky *sky);
Fills out sky with current sky conditions.
|
a GWeatherInfo |
|
a location for a GWeatherSky. [out] |
Returns : |
TRUE is sky is valid, FALSE otherwise. |
gboolean gweather_info_get_value_conditions (GWeatherInfo *info,GWeatherConditionPhenomenon *phenomenon,GWeatherConditionQualifier *qualifier);
Fills out phenomenon and qualifier with current weather conditions.
|
a GWeatherInfo |
|
a location for a GWeatherConditionPhenomenon. [out] |
|
a location for a GWeatherConditionQualifier. [out] |
Returns : |
TRUE is out arguments are valid, FALSE otherwise. |
gboolean gweather_info_get_value_temp (GWeatherInfo *info,GWeatherTemperatureUnit unit,gdouble *value);
|
a GWeatherInfo |
|
the desired unit, as a GWeatherTemperatureUnit |
|
the temperature value. [out] |
Returns : |
TRUE is value is valid, FALSE otherwise. |
gboolean gweather_info_get_value_temp_min (GWeatherInfo *info,GWeatherTemperatureUnit unit,gdouble *value);
|
a GWeatherInfo |
|
the desired unit, as a GWeatherTemperatureUnit |
|
the minimum temperature value. [out] |
Returns : |
TRUE is value is valid, FALSE otherwise. |
gboolean gweather_info_get_value_temp_max (GWeatherInfo *info,GWeatherTemperatureUnit unit,gdouble *value);
|
a GWeatherInfo |
|
the desired unit, as a GWeatherTemperatureUnit |
|
the maximum temperature value. [out] |
Returns : |
TRUE is value is valid, FALSE otherwise. |
gboolean gweather_info_get_value_dew (GWeatherInfo *info,GWeatherTemperatureUnit unit,gdouble *value);
|
a GWeatherInfo |
|
the desired unit, as a GWeatherTemperatureUnit |
|
the dew point. [out] |
Returns : |
TRUE is value is valid, FALSE otherwise. |
gboolean gweather_info_get_value_apparent (GWeatherInfo *info,GWeatherTemperatureUnit unit,gdouble *value);
|
a GWeatherInfo |
|
the desired unit, as a GWeatherTemperatureUnit |
|
the apparent temperature. [out] |
Returns : |
TRUE is value is valid, FALSE otherwise. |
gboolean gweather_info_get_value_wind (GWeatherInfo *info,GWeatherSpeedUnit unit,gdouble *speed,GWeatherWindDirection *direction);
|
a GWeatherInfo |
|
the desired unit, as a GWeatherSpeedUnit |
|
forecasted wind speed. [out] |
|
forecasted wind direction. [out] |
Returns : |
TRUE if speed and direction are valid, FALSE otherwise. |
gboolean gweather_info_get_value_pressure (GWeatherInfo *info,GWeatherPressureUnit unit,gdouble *value);
|
a GWeatherInfo |
|
the desired unit, as a GWeatherPressureUnit |
|
forecasted pressure, expressed in unit. [out]
|
Returns : |
TRUE if value is valid, FALSE otherwise. |
gboolean gweather_info_get_value_visibility (GWeatherInfo *info,GWeatherDistanceUnit unit,gdouble *value);
|
a GWeatherInfo |
|
the desired unit, as a GWeatherDistanceUnit |
|
forecasted visibility, expressed in unit. [out]
|
Returns : |
TRUE if value is valid, FALSE otherwise. |
gboolean gweather_info_get_value_sunrise (GWeatherInfo *info,time_t *value);
|
a GWeatherInfo |
|
the time of sunrise. [out][type gulong] |
Returns : |
TRUE is value is valid, FALSE otherwise. |
gboolean gweather_info_get_value_sunset (GWeatherInfo *info,time_t *value);
|
a GWeatherInfo |
|
the time of sunset. [out][type gulong] |
Returns : |
TRUE is value is valid, FALSE otherwise. |
gboolean gweather_info_get_value_moonphase (GWeatherInfo *info,GWeatherMoonPhase *value,GWeatherMoonLatitude *lat);
|
a GWeatherInfo |
|
the current moon phase (represented as the visible percentage). [out] |
|
the latitude the moon is at (???). [out] |
Returns : |
TRUE is value is valid, FALSE otherwise. |
gboolean gweather_info_get_upcoming_moonphases (GWeatherInfo *info,time_t *phases);
|
a GWeatherInfo containing the time_t of interest |
|
An array of four time_t values that will hold the returned values. The values are estimates of the time of the next new, quarter, full and three-quarter moons. [out][array fixed-size=4][element-type gulong] |
Returns : |
gboolean indicating success or failure |