2
0
forked from Ivasoft/DSView

Auto set as max scale when device changed

This commit is contained in:
dreamsourcelabTAI
2023-04-23 16:40:02 +08:00
parent 0c5d750109
commit 51290b4bf6
4 changed files with 38 additions and 17 deletions

View File

@@ -1699,15 +1699,21 @@ namespace pv
_msg->close();
_msg = NULL;
}
_sampling_bar->update_device_list();
reset_all_view();
load_device_config();
_sampling_bar->update_device_list();
_logo_bar->dsl_connected(_session->get_device()->is_hardware());
update_toolbar_view_status();
_session->device_event_object()->device_updated();
if (_device_agent->is_hardware())
_session->on_load_config_end();
if (_device_agent->get_work_mode() == LOGIC && _device_agent->is_file() == false)
_view->auto_set_max_scale();
if (_device_agent->is_file())
{
check_session_file_version();
@@ -1722,7 +1728,7 @@ namespace pv
}
_session->start_capture(true);
}
}
}
break;
@@ -1737,12 +1743,18 @@ namespace pv
_view->timebase_changed();
break;
case DSV_MSG_DEVICE_MODE_CHANGED:
_sampling_bar->update_sample_rate_list();
case DSV_MSG_DEVICE_MODE_CHANGED:
_view->mode_changed();
reset_all_view();
load_device_config();
load_device_config();
update_toolbar_view_status();
_sampling_bar->update_sample_rate_list();
if (_device_agent->is_hardware())
_session->on_load_config_end();
if (_device_agent->get_work_mode() == LOGIC)
_view->auto_set_max_scale();
break;
case DSV_MSG_NEW_USB_DEVICE:

View File

@@ -240,7 +240,7 @@ namespace pv
_view_data->clear();
_capture_data->clear();
_capture_data = _view_data;
init_signals();
set_cur_snap_samplerate(_device_agent.get_sample_rate());
@@ -812,8 +812,7 @@ namespace pv
break;
}
}
dsv_info("SigSession::init_signals(), clear signals");
clear_signals();
std::vector<view::Signal *>().swap(_signals);
@@ -2079,6 +2078,7 @@ namespace pv
if (cur_mode == LOGIC){
clear_all_decode_task2();
clear_decode_result();
}
_is_stream_mode = false;
@@ -2091,14 +2091,15 @@ namespace pv
}
}
if (_view_data != _capture_data){
_capture_data->clear();
_capture_data = _view_data;
}
set_cur_snap_samplerate(_device_agent.get_sample_rate());
set_cur_samplelimits(_device_agent.get_sample_limit());
_capture_data->clear();
_view_data->clear();
_capture_data = _view_data;
init_signals();
set_cur_snap_samplerate(_device_agent.get_sample_rate());
set_cur_samplelimits(_device_agent.get_sample_limit());
dsv_info("Switch work mode to:%d", mode);
broadcast_msg(DSV_MSG_DEVICE_MODE_CHANGED);
return true;
@@ -2211,4 +2212,10 @@ namespace pv
return false;
}
void SigSession::on_load_config_end()
{
set_cur_snap_samplerate(_device_agent.get_sample_rate());
set_cur_samplelimits(_device_agent.get_sample_limit());
}
} // namespace pv

View File

@@ -409,6 +409,8 @@ public:
return get_signal_snapshot()->have_data();
}
void on_load_config_end();
private:
void set_cur_samplelimits(uint64_t samplelimits);
void set_cur_snap_samplerate(uint64_t samplerate);

View File

@@ -246,7 +246,7 @@ static int hw_dev_open(struct sr_dev_inst *sdi)
struct demo_context *const devc = sdi->priv;
if (sdi->status == SR_ST_ACTIVE)
return;
return SR_OK;
reset_demo_device(sdi);