using std::recursive_mutex;
using std::set;
using std::shared_ptr;
+using std::make_shared;
using std::string;
using std::unordered_set;
using std::vector;
settings.setValue("device_type", "hardware");
settings.beginGroup("device");
- key_list.push_back("vendor");
- key_list.push_back("model");
- key_list.push_back("version");
- key_list.push_back("serial_num");
- key_list.push_back("connection_id");
+ key_list.emplace_back("vendor");
+ key_list.emplace_back("model");
+ key_list.emplace_back("version");
+ key_list.emplace_back("serial_num");
+ key_list.emplace_back("connection_id");
dev_info = device_manager_.get_device_info(device_);
// Re-select last used device if possible but only if it's not demo
settings.beginGroup("device");
- key_list.push_back("vendor");
- key_list.push_back("model");
- key_list.push_back("version");
- key_list.push_back("serial_num");
- key_list.push_back("connection_id");
+ key_list.emplace_back("vendor");
+ key_list.emplace_back("model");
+ key_list.emplace_back("version");
+ key_list.emplace_back("serial_num");
+ key_list.emplace_back("connection_id");
for (string key : key_list) {
const QString k = QString::fromStdString(key);
settings.endGroup();
if (QFileInfo(filename).isReadable()) {
- device = std::make_shared<devices::SessionFile>(device_manager_.context(),
+ device = make_shared<devices::SessionFile>(device_manager_.context(),
filename.toStdString());
set_device(device);
for (const shared_ptr<data::SignalData> d : all_signal_data_)
d->clear();
- // Revert name back to default name (e.g. "Session 1") as the data is gone
- name_ = default_name_;
- name_changed();
+ // Revert name back to default name (e.g. "Session 1") for real devices
+ // as the (possibly saved) data is gone. File devices keep their name.
+ shared_ptr<devices::HardwareDevice> hw_device =
+ dynamic_pointer_cast< devices::HardwareDevice >(device_);
+
+ if (hw_device) {
+ name_ = default_name_;
+ name_changed();
+ }
// Begin the session
sampling_thread_ = std::thread(
try {
// Create the decoder
- decoder_stack = shared_ptr<data::DecoderStack>(
- new data::DecoderStack(*this, dec));
+ decoder_stack = make_shared<data::DecoderStack>(*this, dec);
// Make a list of all the channels
std::vector<const srd_channel*> all_channels;
// Create the decode signal
shared_ptr<data::SignalBase> signalbase =
- shared_ptr<data::SignalBase>(new data::SignalBase(nullptr));
+ make_shared<data::SignalBase>(nullptr);
signalbase->set_decoder_stack(decoder_stack);
signalbases_.insert(signalbase);
switch(channel->type()->id()) {
case SR_CHANNEL_LOGIC:
if (!signalbase) {
- signalbase = shared_ptr<data::SignalBase>(
- new data::SignalBase(channel));
+ signalbase = make_shared<data::SignalBase>(channel);
signalbases_.insert(signalbase);
all_signal_data_.insert(logic_data_);
case SR_CHANNEL_ANALOG:
{
if (!signalbase) {
- signalbase = shared_ptr<data::SignalBase>(
- new data::SignalBase(channel));
+ signalbase = make_shared<data::SignalBase>(channel);
signalbases_.insert(signalbase);
shared_ptr<data::Analog> data(new data::Analog());
set_capture_state(Running);
// Create a new data segment
- cur_logic_segment_ = shared_ptr<data::LogicSegment>(
- new data::LogicSegment(*logic_data_, logic, cur_samplerate_));
+ cur_logic_segment_ = make_shared<data::LogicSegment>(
+ *logic_data_, logic, cur_samplerate_);
logic_data_->push_segment(cur_logic_segment_);
// @todo Putting this here means that only listeners querying
assert(data);
// Create a segment, keep it in the maps of channels
- segment = shared_ptr<data::AnalogSegment>(
- new data::AnalogSegment(*data, cur_samplerate_));
+ segment = make_shared<data::AnalogSegment>(
+ *data, cur_samplerate_);
cur_analog_segments_[channel] = segment;
// Push the segment into the analog data.