59class TransceiverBase :
public Transceiver {
63 TransceiverBase(QObject *parent)
64 : Transceiver{parent}, last_sequence_number_{0} {}
70 void start(
unsigned sequence_number)
noexcept override final;
72 unsigned sequence_number)
noexcept override final;
73 void stop()
noexcept override final;
84 struct error :
public std::runtime_error {
85 explicit error(
char const *
const msg) : std::runtime_error(msg) {}
86 explicit error(QString
const &msg)
87 : std::runtime_error(msg.toStdString()) {}
95 virtual void do_post_start() {}
97 virtual void do_stop() = 0;
98 virtual void do_post_stop() {}
100 virtual void do_frequency(Frequency, MODE,
bool no_ignore) = 0;
101 virtual void do_post_frequency(Frequency, MODE) {}
106 virtual void do_tx_frequency(Frequency, MODE,
bool no_ignore) = 0;
107 virtual void do_post_tx_frequency(Frequency, MODE) {}
109 virtual void do_mode(MODE) = 0;
110 virtual void do_post_mode(MODE) {}
112 virtual void do_ptt(
bool =
true) = 0;
113 virtual void do_post_ptt(
bool =
true) {}
115 virtual void do_sync(
bool force_signal =
false,
bool no_poll =
false) = 0;
117 virtual bool do_pre_update() {
return true; }
120 void update_rx_frequency(Frequency);
121 void update_other_frequency(Frequency = 0);
122 void update_split(
bool);
123 void update_mode(MODE);
124 void update_PTT(
bool =
true);
127 void update_complete(
bool force_signal =
false);
130 void offline(QString
const &reason);
135 bool maybe_low_resolution(Frequency low_res, Frequency high_res);
140 explicit may_update(TransceiverBase *self,
bool force_signal =
false)
141 : self_{self}, force_signal_{force_signal} {}
142 ~may_update() { self_->update_complete(force_signal_); }
145 TransceiverBase *self_;
152 unsigned last_sequence_number_;