Skip to content

Commit bb1ea95

Browse files
committed
Improve VTX manager init and config
1 parent ebc0a23 commit bb1ea95

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

jni/osd_dji_overlay_udp.c

+9-1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ typedef enum
7979

8080
#define BACK_BUTTON_DELAY 4
8181

82+
#define VTX_MPS_CONFIG_KEY "vtx_msp"
83+
static u_int8_t vtx_manager_enabled;
84+
8285
#define SWAP32(data) \
8386
( (((data) >> 24) & 0x000000FF) | (((data) >> 8) & 0x0000FF00) | \
8487
(((data) << 8) & 0x00FF0000) | (((data) << 24) & 0xFF000000) )
@@ -496,7 +499,9 @@ static void process_data_packet(uint8_t *buf, int len, dji_shm_state_t *radio_sh
496499
snprintf(str, 8, "A %2.1fV", packet->tx_voltage / 64.0f);
497500
display_print_string(overlay_display_info.char_width - 7, overlay_display_info.char_height - 7, str, 7);
498501
}
499-
changeChannel(packet->fc_vtx_channel);
502+
if(vtx_manager_enabled == 1) {
503+
changeChannel(packet->fc_vtx_channel);
504+
}
500505
if(len > 6) {
501506
DEBUG_PRINT("Got new packet with variant %.4s\n", packet->fc_variant);
502507
// should have FC type
@@ -755,6 +760,9 @@ void osd_directfb(duss_disp_instance_handle_t *disp, duss_hal_obj_handle_t ion_h
755760
int compression_dict_size = 0;
756761
void *compression_dict = open_dict(DICTIONARY_VERSION, &compression_dict_size);
757762

763+
vtx_manager_enabled = get_boolean_config_value(VTX_MPS_CONFIG_KEY);
764+
setupVTXManager();
765+
758766
uint64_t event_number;
759767
while (!quit)
760768
{

jni/util/vtx_manager.c

+6-10
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
#include <stdlib.h>
22
#include <dlfcn.h>
3-
#include "json/osd_config.h"
43
#include "util/debug.h"
54
#include "vtx_manager.h"
65

7-
#define VTX_MPS_CONFIG_KEY "vtx_msp"
86
#define CHANNEL_PUBLIC 8
97

108
static void *tp1801_gui_lib = NULL;
@@ -14,7 +12,11 @@ static uint32_t userSettingsInstance = 0;
1412
static __gs_gui_config *gs_gui_config = 0;
1513
static int8_t currentChannel = -1;
1614

17-
void setupManager() {
15+
void setupVTXManager() {
16+
if(setChannelPilotOriginal != NULL) {
17+
return;
18+
}
19+
1820
//Load SetPilotChannel original
1921
setChannelPilotOriginal = dlsym (RTLD_NEXT, "_ZN17GlassUserSettings15setPilotChannelEtb");
2022
if (setChannelPilotOriginal == NULL) {
@@ -46,12 +48,6 @@ void setupManager() {
4648
}
4749

4850
void changeChannel(int8_t channel) {
49-
if(!get_boolean_config_value(VTX_MPS_CONFIG_KEY)) {
50-
return;
51-
}
52-
53-
setupManager();
54-
5551
if (channel <= 0 || channel > 8) {
5652
printf("VTX_MANAGER Error:, invalid channel index: %d\n", channel);
5753
return;
@@ -70,4 +66,4 @@ void changeChannel(int8_t channel) {
7066
int8_t channelIdx = channel - 1;
7167
setChannelPilotOriginal(userSettingsGetInstanceOriginal(), channelIdx, true);
7268
}
73-
}
69+
}

0 commit comments

Comments
 (0)