1 // ----------------------------------------------------------------------------
2 // Copyright (C) 2014
3 //              David Freese, W1HKJ
4 //
5 // This file is part of flrig.
6 //
7 // flrig is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // flrig is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // aunsigned long int with this program.  If not, see <http://www.gnu.org/licenses/>.
19 // ----------------------------------------------------------------------------
20 
21 #ifndef _FT450D_H
22 #define _FT450D_H
23 
24 #include "rigbase.h"
25 
26 class RIG_FT450D : public rigbase {
27 private:
28 	bool notch_on;
29 	int  m_60m_indx;
30 public:
31 	RIG_FT450D();
~RIG_FT450D()32 	~RIG_FT450D(){}
33 
34 	void initialize();
35 
36 	bool check();
37 
38 	unsigned long int get_vfoA();
39 	void set_vfoA(unsigned long int);
40 	unsigned long int get_vfoB();
41 	void set_vfoB(unsigned long int);
42 
43 	void selectA();
44 	void selectB();
45 	void A2B();
46 	int  get_vfoAorB();
47 
48 	void set_modeA(int val);
49 	int  get_modeA();
50 	int  get_modetype(int n);
51 	void set_bwA(int val);
52 	int  get_bwA();
53 
54 	void set_modeB(int val);
55 	int  get_modeB();
56 	void set_bwB(int val);
57 	int  get_bwB();
58 
twovfos()59 	bool twovfos() {return true;}
can_split()60 	bool can_split() {return true;}
61 	void set_split(bool);
62 	int  get_split();
63 
64 	int  get_smeter();
65 	int  get_swr();
66 	int  get_alc();
67 
68 	int  get_agc();
69 	int  incr_agc();
70 	const char *agc_label();
71 	int  agc_val();
72 
73 	int  get_power_out();
74 	int  get_power_control();
get_pc_min_max_step(double & min,double & max,double & step)75 	void get_pc_min_max_step(double &min, double &max, double &step) {
76 		min = 5; pmax = max = 100; step = 1; }
77 	void set_volume_control(int val);
78 	int  get_volume_control();
79 	void get_vol_min_max_step(int &min, int &max, int &step);
80 	void set_power_control(double val);
81 	void set_PTT_control(int val);
82 	int  get_PTT();
83 	void tune_rig(int);
84 	int  get_tune();
85 	void set_attenuator(int val);
86 	int  get_attenuator();
87 	void set_preamp(int val);
88 	int  get_preamp();
89 	void set_if_shift(int val);
90 	bool get_if_shift(int &val);
91 	void get_if_min_max_step(int &min, int &max, int &step);
92 	void set_notch(bool on, int val);
93 	bool get_notch(int &val);
94 	void get_notch_min_max_step(int &min, int &max, int &step);
95 	void set_noise(bool b);
96 	void set_mic_gain(int val);
97 	int  get_mic_gain();
98 	void get_mic_min_max_step(int &min, int &max, int &step);
99 
100 	void set_rf_gain(int val);
101 	int  get_rf_gain();
102 	void get_rf_min_max_step(int &min, int &max, int &step);
103 
104 	void set_special(int v);
105 
106 	void set_vox_onoff();
107 	void set_vox_gain();
get_vox_gain_min_max_step(int & min,int & max,int & step)108 	void get_vox_gain_min_max_step(int &min, int &max, int &step) {
109 		min = 0; max = 255; step = 1; }
110 	void set_vox_hang();
get_vox_hang_min_max_step(int & min,int & max,int & step)111 	void get_vox_hang_min_max_step(int &min, int &max, int &step) {
112 		min = 100; max = 3000; step = 100; }
113 
get_cw_wpm_min_max(int & min,int & max)114 	void get_cw_wpm_min_max(int &min, int &max) {
115 		min = 4; max = 60; }
116 
117 	void set_cw_weight();
118 	void set_cw_wpm();
119 	void enable_keyer();
120 	void set_break_in();
121 	int  get_break_in();
122 
123 	void get_cw_weight();
124 	void get_cw_wpm();
125 	void get_qsk();
126 	void get_qsk_delay();
127 	void get_cw_spot_tone();
128 	void get_vox_gain();
129 	void get_vox_hang();
130 
131 	void set_cw_qsk();
get_cw_qsk_min_max_step(double & min,double & max,double & step)132 	void get_cw_qsk_min_max_step(double &min, double &max, double &step) {
133 		min = 30; max = 3000; step = 10; }
134 
135 	void set_cw_delay();
get_cw_delay_min_max_step(double & min,double & max,double & step)136 	void get_cw_delay_min_max_step(double &min, double &max, double &step) {
137 		min = 30; max = 3000; step = 10; }
138 
139 	bool set_cw_spot();
140 	void set_cw_spot_tone();
get_cw_spot_tone_min_max_step(int & min,int & max,int & step)141 	void get_cw_spot_tone_min_max_step(int &min, int &max, int &step) {
142 		min = 400; max = 800; step = 100; }
143 
get_nr_min_max_step(int & min,int & max,int & step)144 	void get_nr_min_max_step(int &min, int &max, int &step) {
145 		min = 1; max = 11; step = 1; }
146 
147 	void set_noise_reduction_val(int val);
148 	int  get_noise_reduction_val();
149 	void set_noise_reduction(int val);
150 	int  get_noise_reduction();
151 
152 	void set_xcvr_auto_on();
153 	void set_xcvr_auto_off();
154 
155 	int adjust_bandwidth(int);
156 	int def_bandwidth(int);
157 	const char ** bwtable(int);
158 
159 	void set_BANDWIDTHS(std::string s);
160 	std::string get_BANDWIDTHS();
161 
162 	void get_band_selection(int v);
163 
164 };
165 
166 #endif
167