mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-29 20:10:28 -04:00 
			
		
		
		
	Preparation for safe dynamic linking to Hamlib where minor Hamlib upgrades can be deployed just by replacing the DLL/SO.
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #ifndef DX_LAB_SUITE_COMMANDER_TRANSCEIVER_HPP__
 | |
| #define DX_LAB_SUITE_COMMANDER_TRANSCEIVER_HPP__
 | |
| 
 | |
| #include <memory>
 | |
| 
 | |
| #include "TransceiverFactory.hpp"
 | |
| #include "PollingTransceiver.hpp"
 | |
| 
 | |
| class QTcpSocket;
 | |
| class QByteArray;
 | |
| class QString;
 | |
| 
 | |
| //
 | |
| // DX Lab Suite Commander Interface
 | |
| //
 | |
| // Implemented as a Transceiver decorator  because we may want the PTT
 | |
| // services of another Transceiver  type such as the HamlibTransceiver
 | |
| // which can  be enabled by wrapping  a HamlibTransceiver instantiated
 | |
| // as a "Hamlib Dummy" transceiver in the Transceiver factory method.
 | |
| //
 | |
| class DXLabSuiteCommanderTransceiver final
 | |
|   : public PollingTransceiver
 | |
| {
 | |
|   Q_OBJECT;                     // for translation context
 | |
| 
 | |
| public:
 | |
|   static void register_transceivers (logger_type *, TransceiverFactory::Transceivers *, unsigned id);
 | |
| 
 | |
|   // takes ownership of wrapped Transceiver
 | |
|   explicit DXLabSuiteCommanderTransceiver (logger_type *, std::unique_ptr<TransceiverBase> wrapped,
 | |
|                                            QString const& address, bool use_for_ptt,
 | |
|                                            int poll_interval, QObject * parent = nullptr);
 | |
| 
 | |
| protected:
 | |
|   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 on) override;
 | |
| 
 | |
|   void do_poll () override;
 | |
| 
 | |
| private:
 | |
|   MODE get_mode ();
 | |
|   void simple_command (QString const&);
 | |
|   QString command_with_reply (QString const&);
 | |
|   bool write_to_port (QString const&);
 | |
|   QString frequency_to_string (Frequency) const;
 | |
|   Frequency string_to_frequency (QString) const;
 | |
| 
 | |
|   std::unique_ptr<TransceiverBase> wrapped_; // may be null
 | |
|   bool use_for_ptt_;
 | |
|   QString server_;
 | |
|   QTcpSocket * commander_;
 | |
|   QLocale locale_;
 | |
| };
 | |
| 
 | |
| #endif
 |