Beispiel #1
0
void shgeo_set(shgeo_t *geo, shnum_t lat, shnum_t lon, int alt)
{

  alt = MIN(alt, 1584000000);

  geo->geo_stamp = shtime();
  shnum_set((shnum_t)lat, &geo->geo_lat);
  shnum_set((shnum_t)lon, &geo->geo_lon);
  geo->geo_alt = (uint32_t)alt;

}
Beispiel #2
0
void shgeo_dim(shgeo_t *geo, int prec)
{
  shnum_t lat;
  shnum_t lon;

  if (!geo) return;

  if (prec < SHGEO_MAX_PRECISION) {
    lat = shnum_get(geo->geo_lat);
    lon = shnum_get(geo->geo_lon);
    lat = shnum_prec_dim(lat, prec);
    lon = shnum_prec_dim(lon, prec);
    shnum_set((shnum_t)lat, &geo->geo_lat);
    shnum_set((shnum_t)lon, &geo->geo_lon);
  }
}
Beispiel #3
0
static int _lfunc_sexe_utime(lua_State *L)
{
  double f = luaL_checknumber(L, 1);
  shtime_t t = SHTIME_UNDEFINED;

  shnum_set(f, &t);
  lua_pushnumber(L, (lua_Number)shutime(t));
  return 1; /* 'utime' */
}
Beispiel #4
0
static int _lfunc_sexe_ctime(lua_State *L)
{
  double f = luaL_checknumber(L, 1);
  shtime_t t = SHTIME_UNDEFINED;

  shnum_set(f, &t);
  lua_pushstring(L, shctime(t));
  return 1; /* 'ctime' */
}
Beispiel #5
0
static int _lfunc_sexe_strftime(lua_State *L)
{
  double f = luaL_checknumber(L, 1);
  const char *fmt = luaL_checkstring(L, 2);
  shtime_t t = SHTIME_UNDEFINED;

  shnum_set(f, &t);
  lua_pushstring(L, (char *)shstrtime(t, fmt));
  return 1; /* 'timeu' */
}