WSJT-X/Transceiver/HamlibTransceiver.hpp
Bill Somerville f972fc18e1
Remove direct struct access from usage of the Hamlib API
Preparation for safe dynamic linking to Hamlib where minor Hamlib
upgrades can be deployed just by replacing the DLL/SO.
2021-02-02 22:45:45 +00:00

41 lines
1.2 KiB
C++

#ifndef HAMLIB_TRANSCEIVER_HPP_
#define HAMLIB_TRANSCEIVER_HPP_
#include <QString>
#include "TransceiverFactory.hpp"
#include "PollingTransceiver.hpp"
#include "pimpl_h.hpp"
// hamlib transceiver and PTT mostly delegated directly to hamlib Rig class
class HamlibTransceiver final
: public PollingTransceiver
{
Q_OBJECT // for translation context
public:
static void register_transceivers (logger_type *, TransceiverFactory::Transceivers *);
static void unregister_transceivers ();
explicit HamlibTransceiver (logger_type *, unsigned model_number, TransceiverFactory::ParameterPack const&,
QObject * parent = nullptr);
explicit HamlibTransceiver (logger_type *, TransceiverFactory::PTTMethod ptt_type, QString const& ptt_port,
QObject * parent = nullptr);
~HamlibTransceiver ();
private:
int do_start () override;
void do_stop () override;
void do_frequency (Frequency, MODE, bool no_ignore) override;
void do_tx_frequency (Frequency, MODE, bool no_ignore) override;
void do_mode (MODE) override;
void do_ptt (bool) override;
void do_poll () override;
class impl;
pimpl<impl> m_;
};
#endif