void MainWindow::readSettings() { QVariant v; QSettings s; s.beginGroup("Units"); if (s.value("unit_system").toString() == "metric") { prefs.unit_system = METRIC; prefs.units = SI_units; } else if (s.value("unit_system").toString() == "imperial") { prefs.unit_system = IMPERIAL; prefs.units = IMPERIAL_units; } else { prefs.unit_system = PERSONALIZE; GET_UNIT("length", length, units::FEET, units::METERS); GET_UNIT("pressure", pressure, units::PSI, units::BAR); GET_UNIT("volume", volume, units::CUFT, units::LITER); GET_UNIT("temperature", temperature, units::FAHRENHEIT, units::CELSIUS); GET_UNIT("weight", weight, units::LBS, units::KG); } s.endGroup(); s.beginGroup("DisplayListColumns"); GET_BOOL("CYLINDER", visible_cols.cylinder); GET_BOOL("TEMPERATURE", visible_cols.temperature); GET_BOOL("TOTALWEIGHT", visible_cols.totalweight); GET_BOOL("SUIT", visible_cols.suit); GET_BOOL("NITROX", visible_cols.nitrox); GET_BOOL("OTU", visible_cols.otu); GET_BOOL("MAXCNS", visible_cols.maxcns); GET_BOOL("SAC", visible_cols.sac); s.endGroup(); s.beginGroup("TecDetails"); GET_BOOL("po2graph", pp_graphs.po2); GET_BOOL("pn2graph", pp_graphs.pn2); GET_BOOL("phegraph", pp_graphs.phe); GET_DOUBLE("po2threshold", pp_graphs.po2_threshold); GET_DOUBLE("pn2threshold", pp_graphs.pn2_threshold); GET_DOUBLE("phethreshold", pp_graphs.phe_threshold); GET_BOOL("mod", mod); GET_DOUBLE("modppO2", mod_ppO2); GET_BOOL("ead", ead); GET_BOOL("redceiling", profile_red_ceiling); GET_BOOL("dcceiling", profile_dc_ceiling); GET_BOOL("calcceiling", profile_calc_ceiling); GET_BOOL("calcceiling3m", calc_ceiling_3m_incr); GET_BOOL("calcalltissues", calc_all_tissues); GET_INT("gflow", gflow); GET_INT("gfhigh", gfhigh); set_gf(prefs.gflow, prefs.gfhigh); s.endGroup(); s.beginGroup("Display"); v = s.value(QString("divelist_font")); if (v.isValid()) prefs.divelist_font = strdup(v.toString().toUtf8().data()); }
void MainWindow::readSettings() { QVariant v; QSettings s; s.beginGroup("Units"); if (s.value("unit_system").toString() == "metric") { prefs.unit_system = METRIC; prefs.units = SI_units; } else if (s.value("unit_system").toString() == "imperial") { prefs.unit_system = IMPERIAL; prefs.units = IMPERIAL_units; } else { prefs.unit_system = PERSONALIZE; GET_UNIT("length", length, units::FEET, units::METERS); GET_UNIT("pressure", pressure, units::PSI, units::BAR); GET_UNIT("volume", volume, units::CUFT, units::LITER); GET_UNIT("temperature", temperature, units::FAHRENHEIT, units::CELSIUS); GET_UNIT("weight", weight, units::LBS, units::KG); } GET_UNIT("vertical_speed_time", vertical_speed_time, units::MINUTES, units::SECONDS); s.endGroup(); s.beginGroup("TecDetails"); GET_BOOL("po2graph", pp_graphs.po2); GET_BOOL("pn2graph", pp_graphs.pn2); GET_BOOL("phegraph", pp_graphs.phe); GET_DOUBLE("po2threshold", pp_graphs.po2_threshold); GET_DOUBLE("pn2threshold", pp_graphs.pn2_threshold); GET_DOUBLE("phethreshold", pp_graphs.phe_threshold); GET_BOOL("mod", mod); GET_DOUBLE("modppO2", mod_ppO2); GET_BOOL("ead", ead); GET_BOOL("redceiling", profile_red_ceiling); GET_BOOL("dcceiling", profile_dc_ceiling); GET_BOOL("calcceiling", profile_calc_ceiling); GET_BOOL("calcceiling3m", calc_ceiling_3m_incr); GET_BOOL("calcalltissues", calc_all_tissues); GET_INT("gflow", gflow); GET_INT("gfhigh", gfhigh); set_gf(prefs.gflow, prefs.gfhigh); GET_BOOL("show_time", show_time); GET_BOOL("show_sac", show_sac); s.endGroup(); s.beginGroup("Display"); v = s.value(QString("divelist_font")); if (v.isValid()) prefs.divelist_font = strdup(v.toString().toUtf8().data()); }
static Eterm math_call_1(Process* p, double (*func)(double), Eterm arg1) { FloatDef a1; Eterm res; Eterm* hp; ERTS_FP_CHECK_INIT(p); if (is_float(arg1)) { GET_DOUBLE(arg1, a1); } else if (is_small(arg1)) { a1.fd = signed_val(arg1); } else if (is_big(arg1)) { if (big_to_double(arg1, &a1.fd) < 0) { badarith: p->freason = BADARITH; return THE_NON_VALUE; } } else { p->freason = BADARG; return THE_NON_VALUE; } a1.fd = (*func)(a1.fd); ERTS_FP_ERROR_THOROUGH(p, a1.fd, goto badarith); hp = HAlloc(p, FLOAT_SIZE_OBJECT); res = make_float(hp); PUT_DOUBLE(a1, hp); return res; }
int enif_get_double(ErlNifEnv* env, ERL_NIF_TERM term, double* dp) { FloatDef f; if (is_not_float(term)) { return 0; } GET_DOUBLE(term, f); *dp = f.fd; return 1; }
BIF_RETTYPE abs_1(BIF_ALIST_1) { Eterm res; Sint i0, i; Eterm* hp; /* integer arguments */ if (is_small(BIF_ARG_1)) { i0 = signed_val(BIF_ARG_1); i = ERTS_SMALL_ABS(i0); if (i0 == MIN_SMALL) { hp = HAlloc(BIF_P, BIG_UINT_HEAP_SIZE); BIF_RET(uint_to_big(i, hp)); } else { BIF_RET(make_small(i)); } } else if (is_big(BIF_ARG_1)) { if (!big_sign(BIF_ARG_1)) { BIF_RET(BIF_ARG_1); } else { int sz = big_arity(BIF_ARG_1) + 1; Uint* x; hp = HAlloc(BIF_P, sz); /* See note at beginning of file */ sz--; res = make_big(hp); x = big_val(BIF_ARG_1); *hp++ = make_pos_bignum_header(sz); x++; /* skip thing */ while(sz--) *hp++ = *x++; BIF_RET(res); } } else if (is_float(BIF_ARG_1)) { FloatDef f; GET_DOUBLE(BIF_ARG_1, f); if (f.fd < 0.0) { hp = HAlloc(BIF_P, FLOAT_SIZE_OBJECT); f.fd = fabs(f.fd); res = make_float(hp); PUT_DOUBLE(f, hp); BIF_RET(res); } else BIF_RET(BIF_ARG_1); } BIF_ERROR(BIF_P, BADARG); }
BIF_RETTYPE trunc_1(BIF_ALIST_1) { Eterm res; FloatDef f; /* check arg */ if (is_not_float(BIF_ARG_1)) { if (is_integer(BIF_ARG_1)) BIF_RET(BIF_ARG_1); BIF_ERROR(BIF_P, BADARG); } /* get the float */ GET_DOUBLE(BIF_ARG_1, f); /* truncate it and return the resultant integer */ res = double_to_integer(BIF_P, (f.fd >= 0.0) ? floor(f.fd) : ceil(f.fd)); BIF_RET(res); }
BIF_RETTYPE round_1(BIF_ALIST_1) { Eterm res; FloatDef f; /* check arg */ if (is_not_float(BIF_ARG_1)) { if (is_integer(BIF_ARG_1)) BIF_RET(BIF_ARG_1); BIF_ERROR(BIF_P, BADARG); } /* get the float */ GET_DOUBLE(BIF_ARG_1, f); /* round it and return the resultant integer */ res = double_to_integer(BIF_P, (f.fd > 0.0) ? f.fd + 0.5 : f.fd - 0.5); BIF_RET(res); }
static int pdisplay1(fmtfn_t to, void *to_arg, Process* p, Eterm obj) { int i, k; Eterm* nobj; if (dcount-- <= 0) return(1); if (is_CP(obj)) { erts_print(to, to_arg, "<cp/header:%0*lX",PTR_SIZE,obj); return 0; } switch (tag_val_def(obj)) { case NIL_DEF: erts_print(to, to_arg, "[]"); break; case ATOM_DEF: erts_print(to, to_arg, "%T", obj); break; case SMALL_DEF: erts_print(to, to_arg, "%ld", signed_val(obj)); break; case BIG_DEF: nobj = big_val(obj); if (!IN_HEAP(p, nobj)) { erts_print(to, to_arg, "#<bad big %X>#", obj); return 1; } i = BIG_SIZE(nobj); if (BIG_SIGN(nobj)) erts_print(to, to_arg, "-#integer(%d) = {", i); else erts_print(to, to_arg, "#integer(%d) = {", i); erts_print(to, to_arg, "%d", BIG_DIGIT(nobj, 0)); for (k = 1; k < i; k++) erts_print(to, to_arg, ",%d", BIG_DIGIT(nobj, k)); erts_putc(to, to_arg, '}'); break; case REF_DEF: case EXTERNAL_REF_DEF: { Uint32 *ref_num; erts_print(to, to_arg, "#Ref<%lu", ref_channel_no(obj)); ref_num = ref_numbers(obj); for (i = ref_no_numbers(obj)-1; i >= 0; i--) erts_print(to, to_arg, ",%lu", ref_num[i]); erts_print(to, to_arg, ">"); break; } case PID_DEF: case EXTERNAL_PID_DEF: erts_print(to, to_arg, "<%lu.%lu.%lu>", pid_channel_no(obj), pid_number(obj), pid_serial(obj)); break; case PORT_DEF: case EXTERNAL_PORT_DEF: erts_print(to, to_arg, "#Port<%lu.%lu>", port_channel_no(obj), port_number(obj)); break; case LIST_DEF: erts_putc(to, to_arg, '['); nobj = list_val(obj); while (1) { if (!IN_HEAP(p, nobj)) { erts_print(to, to_arg, "#<bad list %X>", obj); return 1; } if (pdisplay1(to, to_arg, p, *nobj++) != 0) return(1); if (is_not_list(*nobj)) break; erts_putc(to, to_arg, ','); nobj = list_val(*nobj); } if (is_not_nil(*nobj)) { erts_putc(to, to_arg, '|'); if (pdisplay1(to, to_arg, p, *nobj) != 0) return(1); } erts_putc(to, to_arg, ']'); break; case TUPLE_DEF: nobj = tuple_val(obj); /* pointer to arity */ i = arityval(*nobj); /* arity */ erts_putc(to, to_arg, '{'); while (i--) { if (pdisplay1(to, to_arg, p, *++nobj) != 0) return(1); if (i >= 1) erts_putc(to, to_arg, ','); } erts_putc(to, to_arg, '}'); break; case FLOAT_DEF: { FloatDef ff; GET_DOUBLE(obj, ff); erts_print(to, to_arg, "%.20e", ff.fd); } break; case BINARY_DEF: erts_print(to, to_arg, "#Bin"); break; case MATCHSTATE_DEF: erts_print(to, to_arg, "#Matchstate"); break; default: erts_print(to, to_arg, "unknown object %x", obj); } return(0); }
static Eterm keyfind(int Bif, Process* p, Eterm Key, Eterm Pos, Eterm List) { int max_iter = 10 * CONTEXT_REDS; Sint pos; Eterm term; if (!is_small(Pos) || (pos = signed_val(Pos)) < 1) { BIF_ERROR(p, BADARG); } if (is_small(Key)) { double float_key = (double) signed_val(Key); while (is_list(List)) { if (--max_iter < 0) { BUMP_ALL_REDS(p); BIF_TRAP3(bif_export[Bif], p, Key, Pos, List); } term = CAR(list_val(List)); List = CDR(list_val(List)); if (is_tuple(term)) { Eterm *tuple_ptr = tuple_val(term); if (pos <= arityval(*tuple_ptr)) { Eterm element = tuple_ptr[pos]; if (Key == element) { return term; } else if (is_float(element)) { FloatDef f; GET_DOUBLE(element, f); if (f.fd == float_key) { return term; } } } } } } else if (is_immed(Key)) { while (is_list(List)) { if (--max_iter < 0) { BUMP_ALL_REDS(p); BIF_TRAP3(bif_export[Bif], p, Key, Pos, List); } term = CAR(list_val(List)); List = CDR(list_val(List)); if (is_tuple(term)) { Eterm *tuple_ptr = tuple_val(term); if (pos <= arityval(*tuple_ptr)) { Eterm element = tuple_ptr[pos]; if (Key == element) { return term; } } } } } else { while (is_list(List)) { if (--max_iter < 0) { BUMP_ALL_REDS(p); BIF_TRAP3(bif_export[Bif], p, Key, Pos, List); } term = CAR(list_val(List)); List = CDR(list_val(List)); if (is_tuple(term)) { Eterm *tuple_ptr = tuple_val(term); if (pos <= arityval(*tuple_ptr)) { Eterm element = tuple_ptr[pos]; if (CMP(Key, element) == 0) { return term; } } } } } if (is_not_nil(List)) { BIF_ERROR(p, BADARG); } return am_false; }
void PreferencesDialog::loadSettings() { // This code was on the mainwindow, it should belong nowhere, but since we dind't // correctly fixed this code yet ( too much stuff on the code calling preferences ) // force this here. QSettings s; QVariant v; s.beginGroup("Units"); if (s.value("unit_system").toString() == "metric") { prefs.unit_system = METRIC; prefs.units = SI_units; } else if (s.value("unit_system").toString() == "imperial") { prefs.unit_system = IMPERIAL; prefs.units = IMPERIAL_units; } else { prefs.unit_system = PERSONALIZE; GET_UNIT("length", length, units::FEET, units::METERS); GET_UNIT("pressure", pressure, units::PSI, units::BAR); GET_UNIT("volume", volume, units::CUFT, units::LITER); GET_UNIT("temperature", temperature, units::FAHRENHEIT, units::CELSIUS); GET_UNIT("weight", weight, units::LBS, units::KG); } GET_UNIT("vertical_speed_time", vertical_speed_time, units::MINUTES, units::SECONDS); s.endGroup(); s.beginGroup("TecDetails"); GET_BOOL("po2graph", pp_graphs.po2); GET_BOOL("pn2graph", pp_graphs.pn2); GET_BOOL("phegraph", pp_graphs.phe); GET_DOUBLE("po2threshold", pp_graphs.po2_threshold); GET_DOUBLE("pn2threshold", pp_graphs.pn2_threshold); GET_DOUBLE("phethreshold", pp_graphs.phe_threshold); GET_BOOL("mod", mod); GET_DOUBLE("modppO2", mod_ppO2); GET_BOOL("ead", ead); GET_BOOL("redceiling", profile_red_ceiling); GET_BOOL("dcceiling", profile_dc_ceiling); GET_BOOL("calcceiling", profile_calc_ceiling); GET_BOOL("calcceiling3m", calc_ceiling_3m_incr); GET_BOOL("calcndltts", calc_ndl_tts); GET_BOOL("calcalltissues", calc_all_tissues); GET_INT("gflow", gflow); GET_INT("gfhigh", gfhigh); GET_BOOL("gf_low_at_maxdepth", gf_low_at_maxdepth); GET_BOOL("zoomed_plot", zoomed_plot); set_gf(prefs.gflow, prefs.gfhigh, prefs.gf_low_at_maxdepth); GET_BOOL("show_sac", show_sac); GET_BOOL("display_unused_tanks", display_unused_tanks); s.endGroup(); s.beginGroup("GeneralSettings"); GET_TXT("default_filename", default_filename); GET_TXT("default_cylinder", default_cylinder); s.endGroup(); s.beginGroup("Display"); QFont defaultFont = s.value("divelist_font", qApp->font()).value<QFont>(); defaultFont.setPointSizeF(s.value("font_size", qApp->font().pointSizeF()).toFloat()); qApp->setFont(defaultFont); GET_TXT("divelist_font", divelist_font); GET_INT("font_size", font_size); if (prefs.font_size < 0) prefs.font_size = defaultFont.pointSizeF(); GET_INT("displayinvalid", display_invalid_dives); s.endGroup(); }
static void InitializeStaticVar(struct fieldblock *fb, CICcontext *context) { Java8 t1, t2; char isig = fb->signature[0]; t1.x[0] = t2.x[0] = 0; /* shut off "not used" warning */ if (fb->access & ACC_VALKNOWN) { ClassClass *cb = context->cb; int index = fb->u.offset; /* set by "VALUE" attribute */ union cp_item_type *constant_pool = cbConstantPool(cb); unsigned char *type_table = constant_pool[CONSTANT_POOL_TYPE_TABLE_INDEX].type; if (index <= 0 || index >= cbConstantPoolCount(cb)) JAVA_ERROR(context, "Bad initial value"); switch (isig) { case SIGNATURE_DOUBLE: if (type_table[index] != (CONSTANT_Double | CONSTANT_POOL_ENTRY_RESOLVED)) JAVA_ERROR(context, "Bad index into constant pool"); twoword_static_address(fb) = allocNBytes(context, 2 * sizeof(long)); SET_DOUBLE(t1, twoword_static_address(fb), GET_DOUBLE(t2, &constant_pool[index])); break; case SIGNATURE_LONG: if (type_table[index] != (CONSTANT_Long | CONSTANT_POOL_ENTRY_RESOLVED)) JAVA_ERROR(context, "Bad index into constant pool"); twoword_static_address(fb) = allocNBytes(context, 2 * sizeof(long)); SET_INT64(t1, twoword_static_address(fb), GET_INT64(t2, &constant_pool[index])); break; case SIGNATURE_CLASS: break; case SIGNATURE_BYTE: if (type_table[index] != (CONSTANT_Integer | CONSTANT_POOL_ENTRY_RESOLVED)) JAVA_ERROR(context, "Bad index into constant pool"); *(int *)normal_static_address(fb) = (signed char)(constant_pool[index].i); break; case SIGNATURE_CHAR: if (type_table[index] != (CONSTANT_Integer | CONSTANT_POOL_ENTRY_RESOLVED)) JAVA_ERROR(context, "Bad index into constant pool"); *(int *)normal_static_address(fb) = (unsigned short)(constant_pool[index].i); break; case SIGNATURE_SHORT: if (type_table[index] != (CONSTANT_Integer | CONSTANT_POOL_ENTRY_RESOLVED)) JAVA_ERROR(context, "Bad index into constant pool"); *(int *)normal_static_address(fb) = (signed short)(constant_pool[index].i); break; case SIGNATURE_BOOLEAN: if (type_table[index] != (CONSTANT_Integer | CONSTANT_POOL_ENTRY_RESOLVED)) JAVA_ERROR(context, "Bad index into constant pool"); *(int *)normal_static_address(fb) = (constant_pool[index].i != 0); break; case SIGNATURE_INT: if (type_table[index] != (CONSTANT_Integer | CONSTANT_POOL_ENTRY_RESOLVED)) JAVA_ERROR(context, "Bad index into constant pool"); *(int *)normal_static_address(fb) = constant_pool[index].i; break; case SIGNATURE_FLOAT: if (type_table[index] != (CONSTANT_Float | CONSTANT_POOL_ENTRY_RESOLVED)) JAVA_ERROR(context, "Bad index into constant pool"); *(float *)normal_static_address(fb) = constant_pool[index].f; break; default: JAVA_ERROR(context, "Unable to set initial value"); } } else { switch (isig) { default: *(int *)normal_static_address(fb) = 0; break; case SIGNATURE_FLOAT: *(float *)normal_static_address(fb) = 0.0; break; case SIGNATURE_LONG: twoword_static_address(fb) = allocNBytes(context, 2 * sizeof(long)); SET_INT64(t1, twoword_static_address(fb), ll_zero_const); break; case SIGNATURE_DOUBLE: twoword_static_address(fb) = allocNBytes(context, 2 * sizeof(long)); SET_DOUBLE(t1, twoword_static_address(fb), 0.0); break; case SIGNATURE_CLASS: *normal_static_address(fb) = 0; break; } } }