forked from m5evt/linhpsdr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathext.c
129 lines (112 loc) · 2.68 KB
/
ext.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/* Copyright (C)
* 2018 - John Melton, G0ORX/N6LYT
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <gtk/gtk.h>
#ifdef SOAPYSDR
#include <SoapySDR/Device.h>
#endif
#include "discovered.h"
#include "bpsk.h"
#include "band.h"
#include "adc.h"
#include "dac.h"
#include "receiver.h"
#include "transmitter.h"
#include "wideband.h"
#include "radio.h"
#include "main.h"
#include "vfo.h"
#include "ext.h"
int ext_vox_changed(void *data) {
vox_changed((RADIO *)data);
return 0;
}
int ext_ptt_changed(void *data) {
g_print("ext_ptt_changed\n");
ptt_changed((RADIO *)data);
return 0;
}
int ext_set_mox(void *data) {
MOX *m=(MOX *)data;
set_mox(m->radio,m->state);
g_free(m);
return 0;
}
int ext_set_frequency_a(void *data) {
RX_FREQUENCY *f=(RX_FREQUENCY *)data;
g_mutex_lock(&f->rx->mutex);
if(f->rx!=NULL) {
f->rx->frequency_a=f->frequency;
f->rx->band_a=get_band_from_frequency(f->frequency);
}
frequency_changed(f->rx);
update_vfo(f->rx);
g_mutex_unlock(&f->rx->mutex);
g_free(f);
return 0;
}
int ext_set_mode(void *data) {
MODE *m=(MODE *)data;
if (m->rx != NULL) {
m->rx->mode_a = m->mode_a;
}
receiver_mode_changed(m->rx, m->rx->mode_a);
update_vfo(m->rx);
g_free(m);
return 0;
}
int ext_tx_set_ps(void *data) {
transmitter_set_ps(radio->transmitter,(uintptr_t)data);
return 0;
}
/*
int ext_ps_twotone(void *data) {
ps_twotone((uintptr_t)data);
return 0;
}
*/
int ext_vfo_update(void *data) {
RECEIVER *rx=(RECEIVER *)data;
update_vfo(rx);
return 0;
}
int ext_vfo_step(void *data) {
RX_STEP *s=(RX_STEP *)data;
RECEIVER *rx=s->rx;
if(rx!=NULL) {
rx->frequency_a=rx->frequency_a+(rx->step*s->step);
rx->band_a=get_band_from_frequency(rx->frequency_a);
}
update_vfo(s->rx);
g_free(s);
return 0;
}
int ext_set_afgain(void *data) {
RX_GAIN *s=(RX_GAIN *)data;
RECEIVER *rx=s->rx;
if(rx!=NULL) {
rx->volume=s->gain;
}
update_vfo(s->rx);
g_free(s);
return 0;
}