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 _IC7200_H
22 #define _IC7200_H
23 
24 #include "ICbase.h"
25 
26 class RIG_IC7200 : public RIG_ICOM {
27 private:
28 	int atten_level;
29 public:
30 	RIG_IC7200();
~RIG_IC7200()31 	~RIG_IC7200(){}
32 
33 	bool CW_sense;
34 
35 	void initialize();
36 
37 	bool check();
38 
39 	void selectA();
40 	void selectB();
41 
42 	unsigned long int get_vfoA ();
43 	void set_vfoA (unsigned long int freq);
44 
45 	unsigned long int get_vfoB(void);
46 	void set_vfoB(unsigned long int f);
47 
48 	int  get_modetype(int n);
49 	void set_modeA(int val);
50 	int  get_modeA();
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 
59 	void set_PTT_control(int val);
60 	int  get_PTT();
61 	void set_volume_control(int val);
62 	int  get_volume_control();
63 	void get_vol_min_max_step(int &min, int &max, int &step);
64 	void set_attenuator(int val);
65 	int  next_attenuator();
66 	int  get_attenuator();
67 	int  get_smeter();
68 	int  get_power_out(void);
69 	int  get_swr(void);
70 	int  get_alc(void);
71 
72 	void set_noise(bool val);
73 	int  get_noise();
74 	void set_nb_level(int val);
75 	int  get_nb_level();
76 
77 	void set_noise_reduction(int val);
78 	int  get_noise_reduction();
79 	void set_noise_reduction_val(int val);
80 	int  get_noise_reduction_val();
81 
get_nr_min_max_step(int & min,int & max,int & step)82 	void get_nr_min_max_step(int &min, int &max, int &step) {
83 		min = 0; max = 15; step = 1; }
84 
85 	void set_preamp(int val);
86 	int  next_preamp();
87 	int  get_preamp();
88 	void set_rf_gain(int val);
89 	int  get_rf_gain();
90 	void set_squelch(int val);
91 	int  get_squelch();
92 
93 	void set_power_control(double val);
94 	int  get_power_control();
95 
96 	void set_mic_gain(int val);
97 	int  get_mic_gain();
98 	void get_mic_gain_min_max_step(int &min, int &max, int &step);
99 
100 	void set_notch(bool on, int val);
101 	bool get_notch(int &val);
102 	void get_notch_min_max_step(int &min, int &max, int &step);
103 
104 	bool get_if_shift(int &val);
105 	void set_if_shift(int val);
106 	void get_if_min_max_step(int &min, int &max, int &step);
107 
108 	void set_pbt_inner(int val);
109 	void set_pbt_outer(int val);
110 
111 	int  get_pbt_inner();
112 	int  get_pbt_outer();
113 
114 	const char *FILT(int val);
115 	const char *nextFILT();
116 
117 	int  get_FILT(int mode);
118 	void set_FILT(int filter);
119 
120 	void set_FILTERS(std::string s);
121 	std::string get_FILTERS();
122 
123 	void set_BANDWIDTHS(std::string s);
124 	std::string get_BANDWIDTHS();
125 
126 	int  get_agc();
127 	int  incr_agc();
128 	const char *agc_label();
129 	int  agc_val();
130 
131 	int  adjust_bandwidth(int m);
132 	int  def_bandwidth(int m);
133 
134 	void set_compression(int, int);
135 	void get_compression(int &on, int &val);
get_comp_min_max_step(int & min,int & max,int & step)136 	void get_comp_min_max_step(int &min, int &max, int &step) {
137 		min = 0; max = 10; step = 1; }
138 
139 	void set_auto_notch(int val);
140 	int  get_auto_notch();
141 
142 	void set_vox_onoff();
143 	void set_split(bool);
144 	int  get_split();
145 	bool can_split();
146 	const char **bwtable(int);
147 
canswap()148 	bool  canswap() { return true; }
149 
150 	void set_cw_wpm();
151 	void get_cw_wpm_min_max(int &min, int &max);
152 
153 	void set_break_in();
154 	void set_cw_qsk();
155 	void get_cw_qsk_min_max_step(double &min, double &max, double &step);
156 
157 	void set_cw_spot_tone();
158 	void get_cw_spot_tone_min_max_step(int &min, int &max, int &step);
159 
160 	void set_cw_vol();
161 
162 	void setVfoAdj(double v);
163 	double getVfoAdj();
get_vfoadj_min_max_step(int & min,int & max,int & step)164 	void get_vfoadj_min_max_step(int &min, int &max, int &step) {
165 		min = 0; max = 100; step = 1; }
166 
167 	void set_band_selection(int v);
168 	void get_band_selection(int v);
169 
170 protected:
171 	int  filter_nbr;
172 };
173 
174 #endif
175