2021-01-03 03:59:59 +00:00
|
|
|
// Copyright 2015-2019 Mobilinkd LLC <rob@mobilinkd.com>
|
2018-07-30 02:34:53 +00:00
|
|
|
// All rights reserved.
|
|
|
|
|
|
|
|
#ifndef INC_PTT_HPP_
|
|
|
|
#define INC_PTT_HPP_
|
|
|
|
|
|
|
|
#include "GPIO.hpp"
|
2021-01-03 03:59:59 +00:00
|
|
|
#include "LEDIndicator.h"
|
2018-07-30 02:34:53 +00:00
|
|
|
|
|
|
|
namespace mobilinkd { namespace tnc {
|
|
|
|
|
|
|
|
struct PTT {
|
|
|
|
virtual void on() = 0;
|
|
|
|
virtual void off() = 0;
|
|
|
|
virtual ~PTT() {}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SimplexPTT : PTT {
|
|
|
|
void on() {
|
2021-01-03 03:59:59 +00:00
|
|
|
tx_on(); // LED
|
2018-07-30 02:34:53 +00:00
|
|
|
gpio::PTT_SIMPLEX::on(); // PTT
|
|
|
|
}
|
|
|
|
void off() {
|
2021-01-03 03:59:59 +00:00
|
|
|
tx_off(); // LED
|
2018-07-30 02:34:53 +00:00
|
|
|
gpio::PTT_SIMPLEX::off(); // PTT
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct MultiplexPTT : PTT {
|
|
|
|
void on() {
|
2021-01-03 03:59:59 +00:00
|
|
|
tx_on(); // LED
|
2018-07-30 02:34:53 +00:00
|
|
|
gpio::PTT_MULTIPLEX::on(); // PTT
|
|
|
|
}
|
|
|
|
void off() {
|
2021-01-03 03:59:59 +00:00
|
|
|
tx_off(); // LED
|
2018-07-30 02:34:53 +00:00
|
|
|
gpio::PTT_MULTIPLEX::off(); // PTT
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
}} // mobilinkd::tnc
|
|
|
|
|
|
|
|
|
|
|
|
#endif // INC_PTT_HPP_
|