unpack zips in src to better compression
This commit is contained in:
206
sources/z-tools/trunk/zweather/get_data.c
Normal file
206
sources/z-tools/trunk/zweather/get_data.c
Normal file
@@ -0,0 +1,206 @@
|
||||
#include "general.h"
|
||||
#include "get_data.h"
|
||||
|
||||
int8 dummy[2] = "0";
|
||||
|
||||
|
||||
int8 *get_data_uv(struct xml_uv *data, enum datas_uv type)
|
||||
{
|
||||
int8 *str = dummy;
|
||||
|
||||
if ( !data)
|
||||
return str;
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case _UV_INDEX: str = data->i; break;
|
||||
case _UV_TRANS: str = data->t; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
|
||||
int8 *get_data_bar(struct xml_bar *data, enum datas_bar type)
|
||||
{
|
||||
int8 *str = dummy;
|
||||
|
||||
if ( !data)
|
||||
return str;
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case _BAR_R: str = data->r; break;
|
||||
case _BAR_D: str = data->d; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
int8 *get_data_wind(struct xml_wind *data, enum datas_wind type)
|
||||
{
|
||||
int8 *str = dummy;
|
||||
|
||||
if ( !data)
|
||||
return str;
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case _WIND_SPEED: str = data->s; break;
|
||||
case _WIND_GUST: str = data->gust; break;
|
||||
case _WIND_DIRECTION: str = data->t; break;
|
||||
case _WIND_TRANS: str = data->d; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
int8 *get_data_cc( struct xml_cc *data, enum datas type)
|
||||
{
|
||||
int8 *str = dummy;
|
||||
|
||||
if ( !data)
|
||||
return str;
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case LSUP: str = data->lsup; break;
|
||||
case OBST: str = data->obst; break;
|
||||
case FLIK: str = data->flik; break;
|
||||
case TRANS: str = data->t; break;
|
||||
case TEMP: str = data->tmp; break;
|
||||
case HMID: str = data->hmid; break;
|
||||
case VIS: str = data->vis; break;
|
||||
case UV_INDEX: return get_data_uv(data->uv, _UV_INDEX);
|
||||
case UV_TRANS: return get_data_uv(data->uv, _UV_TRANS);
|
||||
case WIND_SPEED: return get_data_wind(data->wind, _WIND_SPEED);
|
||||
case WIND_GUST: return get_data_wind(data->wind, _WIND_GUST);
|
||||
case WIND_DIRECTION: return get_data_wind(data->wind, _WIND_DIRECTION);
|
||||
case WIND_TRANS: return get_data_wind(data->wind, _WIND_TRANS);
|
||||
case BAR_R: return get_data_bar(data->bar, _BAR_R);
|
||||
case BAR_D: return get_data_bar(data->bar, _BAR_D);
|
||||
case DEWP: str = data->dewp; break;
|
||||
case WICON: str = data->icon; break;
|
||||
default: break;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
int8 *get_data_loc(struct xml_loc *data, enum datas_loc type)
|
||||
{
|
||||
int8 *str = dummy;
|
||||
|
||||
if ( !data)
|
||||
return str;
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case DNAM: str = data->dnam; break;
|
||||
case SUNR: str = data->sunr; break;
|
||||
case SUNS: str = data->suns; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
const int8 *get_data(struct xml_weather *data, enum datas type)
|
||||
{
|
||||
int8 *str = dummy;
|
||||
|
||||
if( data)
|
||||
{
|
||||
switch (type & 0xFF00)
|
||||
{
|
||||
case DATAS_CC: str = get_data_cc(data->cc, type); break;
|
||||
case DATAS_LOC: str = get_data_loc(data->loc, type); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
int8 *get_data_part(struct xml_part *data, enum forecast type)
|
||||
{
|
||||
int8 *str = dummy;
|
||||
|
||||
if ( !data)
|
||||
return str;
|
||||
|
||||
switch (type & 0x000F)
|
||||
{
|
||||
case F_ICON: str = data->icon; break;
|
||||
case F_TRANS: str = data->t; break;
|
||||
case F_PPCP: str = data->ppcp; break;
|
||||
case F_W_SPEED: str = get_data_wind(data->wind, _WIND_SPEED); break;
|
||||
case F_W_DIRECTION: str = get_data_wind(data->wind, _WIND_DIRECTION); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
const int8 *get_data_f(struct xml_dayf *data, enum forecast type)
|
||||
{
|
||||
int8 *str = dummy;
|
||||
|
||||
if (data)
|
||||
{
|
||||
switch (type & 0x0F00)
|
||||
{
|
||||
case ITEMS:
|
||||
switch(type)
|
||||
{
|
||||
case WDAY: str = data->day; break;
|
||||
case TEMP_MIN: str = data->low; break;
|
||||
case TEMP_MAX: str = data->hi; break;
|
||||
default: break;
|
||||
}
|
||||
break;
|
||||
case NPART: str = get_data_part(data->part[1], type); break;
|
||||
case DPART: str = get_data_part(data->part[0], type); break;
|
||||
}
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
const int8 *get_unit( int myunit, enum datas type)
|
||||
{
|
||||
int8 *str = dummy;
|
||||
|
||||
switch (type & 0x00F0)
|
||||
{
|
||||
case 0x0020: str = (myunit == WEATHER_METRIC ? "<EFBFBD> C" : "<EFBFBD> F"); break;
|
||||
case 0x0030: str = "%"; break;
|
||||
case 0x0040: str = (myunit == WEATHER_METRIC ? "km/h" : "mph"); break;
|
||||
case 0x0050: str = (myunit == WEATHER_METRIC ? "mb" : "in"); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
const int8 *get_lnks(struct xml_lnks *lnks, enum link type, int num)
|
||||
{
|
||||
int8* str = "";
|
||||
|
||||
if( !lnks || num >= XML_WEATHER_LINK_N)
|
||||
return str;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case LINK:
|
||||
str = lnks->l[num];
|
||||
case TEXT:
|
||||
str = lnks->t[num];
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
Reference in New Issue
Block a user