diff --git a/DSView/pv/dialogs/deviceoptions.cpp b/DSView/pv/dialogs/deviceoptions.cpp index 29c5920bbf177277a7228f4e80626ed8d05f7ac4..f6a7874ea8f3eba1ba111bee4ad030294cfc6f34 100644 --- a/DSView/pv/dialogs/deviceoptions.cpp +++ b/DSView/pv/dialogs/deviceoptions.cpp @@ -72,7 +72,7 @@ DeviceOptions::DeviceOptions(QWidget *parent, boost::shared_ptrget_config(NULL, NULL, SR_CONF_OPERATION_MODE); if (gvar != NULL) { - _mode = g_variant_get_string(gvar, NULL); + _mode = QString::fromUtf8(g_variant_get_string(gvar, NULL)); g_variant_unref(gvar); } connect(&_mode_check, SIGNAL(timeout()), this, SLOT(mode_check())); @@ -124,7 +124,7 @@ QWidget* DeviceOptions::get_property_form() { assert(p); const QString label = p->labeled_widget() ? QString() : p->name(); - if (label == "Operation Mode") + if (label == tr("Operation Mode")) layout->addRow(label, p->get_widget(form, true)); else layout->addRow(label, p->get_widget(form)); @@ -159,7 +159,7 @@ void DeviceOptions::setup_probes() const char **const options = g_variant_get_strv(gvar_opts, &num_opts); GVariant* gvar = _dev_inst->get_config(NULL, NULL, SR_CONF_CHANNEL_MODE); if (gvar != NULL) { - ch_mode = g_variant_get_string(gvar, NULL); + ch_mode = QString::fromUtf8(g_variant_get_string(gvar, NULL)); g_variant_unref(gvar); for (unsigned int i=0; isetChecked(true); } } @@ -247,7 +247,7 @@ void DeviceOptions::mode_check() QString mode; GVariant* gvar = _dev_inst->get_config(NULL, NULL, SR_CONF_OPERATION_MODE); if (gvar != NULL) { - mode = g_variant_get_string(gvar, NULL); + mode = QString::fromUtf8(g_variant_get_string(gvar, NULL)); g_variant_unref(gvar); if (mode != _mode) { @@ -276,7 +276,7 @@ void DeviceOptions::channel_check() { QRadioButton* sc=dynamic_cast(sender()); if(sc != NULL) - _dev_inst->set_config(NULL, NULL, SR_CONF_CHANNEL_MODE, g_variant_new_string(sc->text().toLocal8Bit())); + _dev_inst->set_config(NULL, NULL, SR_CONF_CHANNEL_MODE, g_variant_new_string(sc->text().toUtf8().data())); setup_probes(); } diff --git a/DSView/pv/prop/string.cpp b/DSView/pv/prop/string.cpp index 7542faef18ccf444e39d297fb18ccdca306ec2fb..e03064ef9e4bc366bae6456728bf9cb13cc5868b 100644 --- a/DSView/pv/prop/string.cpp +++ b/DSView/pv/prop/string.cpp @@ -64,7 +64,7 @@ void String::commit() if (!_line_edit) return; - QByteArray ba = _line_edit->text().toLocal8Bit(); + QByteArray ba = _line_edit->text().toUtf8(); _setter(g_variant_new_string(ba.data())); } diff --git a/DSView/pv/view/view.cpp b/DSView/pv/view/view.cpp index 911a89e4e7d469fe1f74ee6a1dd272b5bfae02d8..3965524b411cf59547c4a6b70476416096134744 100644 --- a/DSView/pv/view/view.cpp +++ b/DSView/pv/view/view.cpp @@ -227,10 +227,8 @@ void View::zoom(double steps, int offset) } } - if (_session.get_device()->dev_inst()->mode != DSO) { - _offset = cursor_offset - _scale * offset; - _offset = max(min(_offset, get_max_offset()), get_min_offset()); - } + _offset = cursor_offset - _scale * offset; + _offset = max(min(_offset, get_max_offset()), get_min_offset()); if (_scale != _preScale || _offset != _preOffset) { _header->update(); diff --git a/DSView/res/DSCope.bin b/DSView/res/DSCope.bin index 3ee9ab04c8c3b38189979375dbe11080314841ce..505dbb74bba85c0d0223dc7b7ba13afc34def2b1 100644 Binary files a/DSView/res/DSCope.bin and b/DSView/res/DSCope.bin differ diff --git a/libsigrok4DSL/hardware/DSL/dslogic.c b/libsigrok4DSL/hardware/DSL/dslogic.c index 587cab688a4f0936a3e364c7e6633d2690090639..2250da53716de8afe8bf686c4bbc08e116824d39 100644 --- a/libsigrok4DSL/hardware/DSL/dslogic.c +++ b/libsigrok4DSL/hardware/DSL/dslogic.c @@ -347,6 +347,12 @@ static int fpga_setting(const struct sr_dev_inst *sdi) if (channel_en_cnt == 0) channel_en_cnt = 1; + devc->rle_mode = FALSE; + if (sdi->mode == LOGIC && + !devc->stream && + devc->limit_samples > DSLOGIC_MAX_LOGIC_DEPTH*ceil(devc->cur_samplerate * 1.0 / DSLOGIC_MAX_LOGIC_SAMPLERATE)) + devc->rle_mode = TRUE; + //setting.mode = (test_mode ? 0x8000 : 0x0000) + trigger->trigger_en + (sdi->mode << 4); setting.mode = ((devc->op_mode == SR_OP_INTERNAL_TEST) << 15) + ((devc->op_mode == SR_OP_EXTERNAL_TEST) << 14) + @@ -1435,12 +1441,6 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi, ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, 0, SR_CONF_SAMPLERATE)); } else { devc->sample_wide = (devc->cur_samplerate <= DSLOGIC_MAX_LOGIC_SAMPLERATE); - if (!devc->stream) { - if (devc->limit_samples > DSLOGIC_MAX_LOGIC_DEPTH*ceil(devc->cur_samplerate * 1.0 / DSLOGIC_MAX_LOGIC_SAMPLERATE)) - devc->rle_mode = TRUE; - else - devc->rle_mode = FALSE; - } ret = SR_OK; } } else if (id == SR_CONF_CLOCK_TYPE) { @@ -1471,14 +1471,6 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi, ret = SR_OK; } else if (id == SR_CONF_LIMIT_SAMPLES) { devc->limit_samples = g_variant_get_uint64(data); - if(sdi->mode == LOGIC) { - if (!devc->stream) { - if (devc->limit_samples > DSLOGIC_MAX_LOGIC_DEPTH*ceil(devc->cur_samplerate * 1.0 / DSLOGIC_MAX_LOGIC_SAMPLERATE)) - devc->rle_mode = TRUE; - else - devc->rle_mode = FALSE; - } - } ret = SR_OK; } else if (id == SR_CONF_DEVICE_MODE) { sdi->mode = g_variant_get_int16(data); @@ -1594,7 +1586,6 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi, } else if (!strcmp(stropt, opmodes[SR_OP_STREAM]) && (devc->op_mode != SR_OP_STREAM)) { devc->op_mode = SR_OP_STREAM; devc->stream = TRUE; - devc->rle_mode = FALSE; devc->ch_mode = 0; devc->samplerates_size = 10; adjust_probes(sdi, stream_ch_num[0]);