Skip to content

Commit a7b2fc1

Browse files
author
Jesus Lopez Garcia
committed
Adding public channel selection
Need to refactor the .h - testing for now
1 parent f295a42 commit a7b2fc1

File tree

2 files changed

+338
-9
lines changed

2 files changed

+338
-9
lines changed

jni/util/vtx_manager.c

+26-9
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22
#include <dlfcn.h>
33
#include "json/osd_config.h"
44
#include "util/debug.h"
5+
#include "vtx_manager.h"
56

67
#define VTX_MPS_CONFIG_KEY "vtx_msp"
8+
#define CHANNEL_PUBLIC 8
79

810
static void *tp1801_gui_lib = NULL;
911
static uint32_t (* setChannelPilotOriginal)(void *this,unsigned short param_1, bool param_2) = 0;
1012
static uint32_t (* userSettingsGetInstanceOriginal)() = 0;
1113
static uint32_t userSettingsInstance = 0;
14+
static __gs_gui_config *gs_gui_config = 0;
1215
static int8_t currentChannel = -1;
1316

14-
void changeChannel(int8_t channel) {
15-
if(!get_boolean_config_value(VTX_MPS_CONFIG_KEY)) {
16-
return;
17-
}
18-
17+
void setupManager() {
1918
//Load SetPilotChannel original
2019
setChannelPilotOriginal = dlsym (RTLD_NEXT, "_ZN17GlassUserSettings15setPilotChannelEtb");
2120
if (setChannelPilotOriginal == NULL) {
@@ -38,6 +37,21 @@ void changeChannel(int8_t channel) {
3837
return;
3938
}
4039

40+
userSettingsInstance = userSettingsGetInstanceOriginal();
41+
if(userSettingsInstance == NULL) {
42+
printf("dlsym: error loading user setting instance");
43+
return;
44+
}
45+
gs_gui_config = (__gs_gui_config *)*(uint32_t *)((int)userSettingsInstance + 0xe4);
46+
}
47+
48+
void changeChannel(int8_t channel) {
49+
if(!get_boolean_config_value(VTX_MPS_CONFIG_KEY)) {
50+
return;
51+
}
52+
53+
setupManager();
54+
4155
if (channel <= 0 || channel > 8) {
4256
printf("VTX_MANAGER Error:, invalid channel index: %d\n", channel);
4357
return;
@@ -48,9 +62,12 @@ void changeChannel(int8_t channel) {
4862
}
4963
currentChannel = channel;
5064

51-
// if 8, need to set to public
5265
DEBUG_PRINT("VTX_MANAGER: requesting to the goggles to set channel %d\n", channel);
53-
54-
int8_t channelIdx = channel - 1;
55-
setChannelPilotOriginal(userSettingsGetInstanceOriginal(), channelIdx, true);
66+
67+
if(channel == CHANNEL_PUBLIC){
68+
gs_gui_config->gs_modem_set_public_chnl(gs_gui_config->gs_info);
69+
} else {
70+
int8_t channelIdx = channel - 1;
71+
setChannelPilotOriginal(userSettingsGetInstanceOriginal(), channelIdx, true);
72+
}
5673
}

jni/util/vtx_manager.h

+312
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,312 @@
1+
#include <time.h>
2+
3+
4+
typedef struct GlassRacingChnlUI GlassRacingChnlUI, *PGlassRacingChnlUI;
5+
typedef struct GlassRacingChnlUI GlassRacingChnlUI_t;
6+
7+
struct GlassRacingChnlUI {
8+
char dummy[0x4a0];
9+
float gs_voltage;
10+
char dummy2[0xa];
11+
uint16_t gs_bitrate;
12+
char dummy3[0x200]; //ends at 0x6b0
13+
14+
}__attribute__((packed, aligned(1)));
15+
16+
static GlassRacingChnlUI *chnl_ui;
17+
18+
typedef enum gs_link_stat_t {
19+
GS_LINK_STAT_NORMAL=0,
20+
GS_LINK_STAT_WEAK=1,
21+
GS_LINK_STAT_LOST=2,
22+
GS_LINK_STAT_UKNOWN=3
23+
} gs_link_stat_t;
24+
25+
typedef enum Record_sender {
26+
RECORD_BUTTON=0,
27+
RECORD_DISARM=1
28+
} Record_sender;
29+
30+
typedef enum record_state {
31+
RECORD_STATE_IDLE=0,
32+
RECORD_STATE_RECORDING=1,
33+
RECORD_STATE_STOP_ERROR=2,
34+
RECORD_STATE_STOP_FULL=3,
35+
RECORD_STATE_STOP_WRITE_SLOW=4,
36+
RECORD_STATE_STARTING=5,
37+
RECORD_STATE_STOPPING=6
38+
} record_state;
39+
40+
typedef enum record_state record_state_t;
41+
42+
typedef struct __gs_queue __gs_queue, *P__gs_queue;
43+
typedef struct __gs_queue gs_queue_t;
44+
45+
struct __gs_queue {
46+
uint32_t * addr;
47+
uint32_t size;
48+
uint32_t num;
49+
uint32_t writer;
50+
uint32_t reader;
51+
};
52+
53+
typedef struct __gs_gui_config __gs_gui_config, *P__gs_gui_config;
54+
typedef struct __gs_gui_config gs_gui_config_t;
55+
56+
struct __gs_gui_config {
57+
gs_queue_t * osd_gen_data_queue;
58+
gs_queue_t * osd_home_data_queue;
59+
gs_queue_t * file_del_queue;
60+
gs_queue_t * camera_stat_queue;
61+
gs_queue_t * camera_cap_param_queue;
62+
gs_queue_t * camera_pb_param_queue;
63+
gs_queue_t * camera_file_info_queue;
64+
gs_queue_t * camera_dcf_abstract_queue;
65+
gs_queue_t * camera_fov_param_queue;
66+
gs_queue_t * rc_bat_stat_queue;
67+
gs_queue_t * signal_quality_queue;
68+
gs_queue_t * uav_bat_common_info_queue;
69+
gs_queue_t * sdr_wl_env_queue;
70+
gs_queue_t * sdr_uav_data_queue;
71+
gs_queue_t * sdr_gnd_data_queue;
72+
gs_queue_t * rc_param_queue;
73+
gs_queue_t * rc_pushed_gps_queue;
74+
gs_queue_t * racing_drone_fc_osd_queue;
75+
bool * touchpadLockState;
76+
void * gs_info;
77+
int (* gs_ext_fc_get_craft_name)(void *ctx,char *craft_name);
78+
int (* gs_ext_fc_get_pid)(void *ctx,uint8_t type,uint8_t *value);
79+
int (* gs_ext_fc_get_rate)(void *ctx,uint8_t type,uint8_t *value);
80+
int (* gs_ext_fc_get_osd_profile_index)(void *ctx,uint8_t *osd_index);
81+
int (* gs_ext_fc_select_file)(void *ctx,uint8_t type,uint8_t index);
82+
int (* gs_ext_fc_copy_file)(void *ctx,uint8_t type,uint8_t src_index,uint8_t dst_index);
83+
int (* gs_ext_fc_write_eeprom)(void *ctx);
84+
int (* gs_ext_fc_get_rc_channel)(void *ctx,uint8_t chnl_index,uint16_t *value);
85+
int (* gs_ext_fc_get_aux_mode_id_by_index)(void *ctx,uint8_t *aux_id,uint8_t aux_index,uint8_t *start_step,uint8_t *end_step);
86+
int (* gs_ext_fc_get_aux_mode)(void *ctx,uint8_t aux_id,uint8_t *aux_index,uint8_t *start_step,uint8_t *end_step);
87+
int (* gs_ext_fc_set_aux_mode)(void *ctx,uint8_t aux_id,uint8_t aux_index,uint8_t start_step,uint8_t end_step);
88+
int (* gs_ext_fc_set_request_type)(void *ctx,uint8_t type);
89+
int (* gs_ext_fc_get_request_type)(void *ctx,uint8_t *type);
90+
int (* gs_ext_fc_get_ag_gain)(void *ctx,uint16_t *ag_gain);
91+
int (* gs_ext_fc_set_ag_gain)(void *ctx,uint16_t ag_gain);
92+
int (* gs_ext_fc_get_ag_thr)(void *ctx,uint16_t *thr);
93+
int (* gs_ext_fc_set_ag_thr)(void *ctx,uint16_t thr);
94+
int (* gs_ext_fc_get_thr_boost)(void *ctx,uint8_t *boost);
95+
int (* gs_ext_fc_set_thr_boost)(void *ctx,uint8_t boost);
96+
int (* gs_ext_fc_get_ff_trans)(void *ctx,uint8_t *ff_trans);
97+
int (* gs_ext_fc_set_ff_trans)(void *ctx,uint8_t ff_trans);
98+
int (* gs_ext_fc_get_filter)(void *ctx,uint8_t filter_type,uint16_t *value);
99+
int (* gs_ext_fc_set_filter)(void *ctx,uint8_t filter_type,uint16_t value);
100+
int (* gs_ext_fc_get_rate_profile_index)(void *ctx,uint8_t *rate_index);
101+
int (* gs_ext_fc_set_rate)(void *ctx,uint8_t type,uint8_t value);
102+
int (* gs_ext_fc_get_super_rate)(void *ctx,uint8_t type,uint8_t *value);
103+
int (* gs_ext_fc_set_super_rate)(void *ctx,uint8_t type,uint8_t value);
104+
int (* gs_ext_fc_get_expo)(void *ctx,uint8_t type,uint8_t *value);
105+
int (* gs_ext_fc_set_expo)(void *ctx,uint8_t type,uint8_t value);
106+
int (* gs_ext_fc_get_dyn_thr)(void *ctx,uint8_t *value);
107+
int (* gs_ext_fc_set_dyn_thr)(void *ctx,uint8_t value);
108+
int (* gs_ext_fc_get_thr_mid)(void *ctx,uint8_t *value);
109+
int (* gs_ext_fc_set_thr_mid)(void *ctx,uint8_t value);
110+
int (* gs_ext_fc_get_thr_expo)(void *ctx,uint8_t *value);
111+
int (* gs_ext_fc_set_thr_expo)(void *ctx,uint8_t value);
112+
int (* gs_ext_fc_get_tpa)(void *ctx,uint16_t *value);
113+
int (* gs_ext_fc_set_tpa)(void *ctx,uint16_t value);
114+
int (* gs_ext_fc_get_pid_f)(void *ctx,uint8_t type,uint16_t *ff);
115+
int (* gs_ext_fc_set_pid_f)(void *ctx,uint8_t type,uint16_t ff);
116+
int (* gs_ext_fc_get_pid_profile_index)(void *ctx,uint8_t *pid_index);
117+
int (* gs_ext_fc_set_pid)(void *ctx,uint8_t type,uint8_t value);
118+
int (* gs_ext_fc_get_battery_state)(void *ctx,void *state);//(void *ctx,batteryState_e *state);
119+
int (* gs_ext_fc_get_battery_voltage)(void *ctx,uint16_t *batt_voltage);
120+
int (* gs_ext_fc_get_battery_avg_voltage)(void *ctx,uint16_t *avg_batt_voltage);
121+
int (* gs_ext_fc_get_battery_amperage)(void *ctx,uint16_t *batt_amperage);
122+
int (* gs_ext_fc_get_battery_mah)(void *ctx,uint16_t *mah);
123+
int (* gs_ext_fc_get_battery_usage)(void *ctx,uint16_t *percent);
124+
int (* gs_ext_fc_get_battery_power)(void *ctx,uint16_t *power);
125+
int (* gs_ext_fc_set_arming_disabled)(void *ctx,uint8_t arming_disabled);
126+
int (* gs_ext_fc_get_arming_disabled)(void *ctx,uint32_t *arming_disabled);
127+
int (* gs_ext_fc_get_version)(void *ctx,uint8_t *major,uint8_t *minor,uint8_t *patch_level);
128+
int (* gs_ext_fc_set_sbus_mode)(void *ctx,uint8_t sbus_mode);
129+
int (* gs_ext_fc_get_racing_osd_info)(void *ctx,void *osdInfo);//(void *ctx,DUSS_MSG_FC_RACING_DRONE_OSD_PUSH_t *osdInfo);
130+
int (* gs_ext_fc_get_osd_position)(void *ctx,int num,bool *activated,int *x,int *y);
131+
int (* gs_ext_fc_get_units)(void *ctx,uint8_t *units);
132+
int (* gs_ext_fc_get_fly_mode)(void *ctx,uint16_t *fly_mode);
133+
int (* gs_ext_fc_get_rtc_date)(void *ctx,void *rtc);//(void *ctx,DUSS_MSG_EXT_FC_RTC_t *rtc);
134+
int (* gs_ext_fc_get_esc_temperature)(void *ctx,uint8_t *temp);
135+
void (* dummy_1)(void);
136+
void (* dummy_2)(void);
137+
int (* gs_media_adjust_fov)(void *ctx,uint32_t scaling,int16_t x,int16_t y);
138+
int (* gs_bl_set_brightness_value)(void *ctx,uint8_t value);
139+
int (* gs_bl_get_brightness_value)(void *ctx,uint8_t *value);
140+
void (* get_device_volume)(void);
141+
void (* set_device_volume)(void);
142+
void (* gs_imu_acc_gyro_calibrate)(char *configfile);
143+
void (* gs_imu_initialize)(void);
144+
void (* gs_imu_destroy)(void);
145+
void (* gs_imu_start)(void);
146+
void (* gs_imu_stop)(void);
147+
void (* gs_imu_get_init_status)(void);
148+
void (* gs_imu_get_attitude)(void);
149+
int (* gs_sd_format_wrap)(void *ctx);
150+
int (* gs_sd_get_info_wrap)(void *ctx,void *sd_info);//(void *ctx,gs_local_sd_info_t *sd_info)
151+
int (* gs_get_battery_info)(void *ctx,void *bat_info);//(void *ctx,DUSS_MSG_RC_BAT_INFO_t *bat_info);
152+
int (* gs_get_device_active_state)(void *ctx,int device_type);
153+
int (* gs_av_in_us_get_brightness)(void *ctx,uint8_t *value);
154+
int (* gs_av_in_us_set_brightness)(void *ctx,uint8_t value);
155+
void (* dummy_3)(void);
156+
int (* gs_av_in_us_get_satutation)(void *ctx,uint8_t *value);
157+
int (* gs_av_in_us_set_saturaton)(void *ctx,uint8_t value);
158+
int (* gs_reset_user_settings)(void *ctx);
159+
int (* gs_ui_event_tracking)(void *ctx,int32_t value,uint8_t event_type,uint8_t event_sub_id);
160+
void (* gs_get_real_flight_stat)(uint8_t *stat);
161+
void (* gs_set_flight_stat)(uint8_t stat);
162+
int (* gs_watermarker_us_get_flag)(void *ctx,uint8_t *value);
163+
int (* gs_watermarker_us_set_flag)(void *ctx,uint8_t value);
164+
int (* gs_watermarker_us_reset)(void *ctx);
165+
int (* gs_player_open)(void *ctx,char *filename);
166+
int (* gs_player_close)(void *ctx);
167+
int (* gs_player_stop)(void *ctx);
168+
int (* gs_player_pause)(void *ctx);
169+
int (* gs_player_resume)(void *ctx);
170+
int (* gs_player_seek_time)(void *ctx,uint32_t time);
171+
int (* gs_player_seek)(void *ctx,uint32_t pos);
172+
int (* gs_player_get_duration)(char *filename,uint32_t *duration);
173+
int (* gs_player_get_cur_time)(void *ctx,uint32_t *cur_time,uint32_t *duration);
174+
int (* gs_player_get_state)(void *ctx,uint32_t *state);
175+
int (* gs_player_get_fileinfo)(char *filename,void *file_info);//(char *filename,vdec_video_file_info_t *file_info);
176+
int (* gs_player_is_playing)(void *ctx,bool *is_playing);
177+
int (* gs_player_delete_file)(char *filename);
178+
int (* gs_send_camera_cmd_async)(void *event_obj,int cam_cmd,void *msg,uint32_t msg_len,uint16_t seq_id);//(duss_event_client *event_obj,int cam_cmd,void *msg,uint32_t msg_len,uint16_t seq_ id)
179+
int (* gs_set_camera_param)(void *ctx,uint8_t param_type,uint8_t param);
180+
int (* gs_uav_camera_get_rec_time)(void *ctx,int *mode,int *rec_time);
181+
int (* gs_modem_pairing_control_wrap)(void *ctx,uint32_t ctrl);
182+
void (* dummy_4)(void);
183+
void (* dummy_5)(void);
184+
void (* dummy_6)(void);
185+
void (* dummy_7)(void);
186+
void (* dummy_8)(void);
187+
void (* dummy_9)(void);
188+
void (* dummy_10)(void);
189+
void (* dummy_11)(void);
190+
void (* dummy_12)(void);
191+
void (* dummy_13)(void);
192+
void (* dummy_14)(void);
193+
void (* dummy_15)(void);
194+
void (* dummy_16)(void);
195+
int (* gs_modem_get_link_state_wrap)(void *ctx,gs_link_stat_t *link_stat);
196+
int (* gs_modem_get_bandwidth)(void *ctx,uint16_t *bandwidth);
197+
int (* gs_modem_set_bandwidth)(void *ctx,uint16_t bandwidth);
198+
int (* gs_modem_get_chnl)(void *ctx,uint16_t *chnl_id);
199+
int (* gs_modem_set_chnl_scan_info)(void *ctx,uint8_t chnl_num,uint8_t bandwidth);
200+
int (* gs_modem_rob_chnl_cancel)(void *ctx);
201+
int (* gs_modem_rob_chnl)(void *ctx,uint16_t chnl_id);
202+
int (* gs_modem_get_rob_left_time)(void *ctx,uint8_t *left_time);
203+
int (* gs_modem_get_rob_flag)(void *ctx,uint8_t *flag);
204+
int (* gs_modem_clear_rob_flag)(void *ctx);
205+
int (* gs_modem_set_public_chnl)(void *ctx);
206+
int (* gs_modem_is_drone_broadcast)(void *ctx,uint16_t *is_brdcst);
207+
int (* gs_modem_enable_drone_broadcast)(void *ctx,uint16_t enable);
208+
int (* gs_modem_listen_broadcast)(void *ctx,uint16_t chnl_id);
209+
int (* gs_modem_is_silent)(void *ctx,uint16_t *is_silent);
210+
int (* gs_modem_set_chnl)(void *ctx,uint16_t chnl_id);
211+
int (* gs_modem_scan_chnl_x)(void *ctx,uint8_t chnl_id,uint8_t bandwidth);
212+
int (* gs_modem_check_ant_status)(void *ctx);
213+
int (* gs_modem_if_new_chnl_scan_info)(void *ctx,uint8_t *flag);
214+
int (* gs_modem_if_new_phy_check_info)(void *ctx,uint8_t *flag);
215+
int (* gs_modem_if_update_bandwidth_pending)(void *ctx,uint8_t *pending);
216+
int (* gs_modem_clear_scan_flag)(void *ctx);
217+
int (* gs_modem_clear_check_flag)(void *ctx);
218+
int (* gs_modem_get_chnl_scan_info)(void *ctx,uint8_t chnl_id,uint8_t *occupied,uint8_t *work_ind,uint32_t *ipsd );
219+
int (* gs_modem_get_ant_status)(void *ctx,uint8_t *tx_ant,uint8_t *rx_ant);
220+
int (* gs_modem_get_dbg_mcs)(void *ctx,uint16_t *mcs);
221+
int (* gs_modem_set_dbg_mcs)(void *ctx,uint16_t mcs);
222+
int (* gs_modem_get_dbg_harq)(void *ctx,uint16_t *harq);
223+
int (* gs_modem_set_dbg_harq)(void *ctx,uint16_t harq);
224+
int (* gs_modem_get_dbg_codec_rate)(void *ctx,uint16_t *codec_rate);
225+
int (* gs_modem_set_dbg_codec_rate)(void *ctx,uint16_t codec_rate);
226+
int (* gs_modem_get_signal_quality)(void *ctx,void *signal_quality);//(void *ctx,glass_signal_quality_t *signal_quality);
227+
int (* gs_modem_get_rc_signal_quality)(void *ctx,void *rc_signal_quality);//(void *ctx,glass_signal_quality_t *rc_signal_quality)
228+
int (* gs_modem_set_bandwidth_mode)(void *ctx,uint16_t bandwidth_id);
229+
int (* gs_modem_change_silent_mode)(void *ctx,uint8_t mode);
230+
int (* gs_modem_get_chnl_cnt_wrap)(void *ctx,uint16_t *chnl_cnt);
231+
int (* gs_modem_get_freq_by_index_wrap)(void *ctx,uint16_t *freqByIndex,uint16_t chnlId);
232+
int (* gs_modem_get_scan_type_wrap)(void *ctx,uint8_t *scanType);
233+
int (* gs_modem_get_wireless_area_id)(void *ctx,uint8_t *area_id);
234+
int (* gs_modem_get_pairing_finish_flag)(void *ctx,uint8_t *pairing_finish);
235+
int (* gs_modem_check_conf_items)(void *ctx);
236+
int (* gs_rc_get_version)(void *ctx,char *ap_ver,char *board_sn,int8_t *valid);
237+
int (* gs_rc_get_version_async)(void *ctx);
238+
int (* gs_rc_set_subtrim)(void *ctx,uint8_t stick,int16_t st);
239+
int (* gs_rc_set_subtrim_async)(void *ctx,uint8_t stick,int16_t st);
240+
int (* gs_rc_get_subtrim_sync)(void *ctx,void *subtrim);//(void *ctx,rc_set_all_st_t *subtrim)
241+
int (* gs_rc_get_subtrim_async)(void *ctx);
242+
int (* gs_rc_set_reverse)(void *ctx,uint8_t stick,uint8_t rev);
243+
int (* gs_rc_get_reverse_sync)(void *ctx,void *reverse);//(void *ctx,rc_set_reverse_t *reverse)
244+
int (* gs_rc_get_reverse_async)(void *ctx);
245+
int (* gs_rc_set_endpoint)(void *ctx,uint8_t stick_ch,uint8_t ep_min,uint8_t ep_max);
246+
int (* gs_rc_set_endpoint_async)(void *ctx,uint8_t stick_ch,uint8_t ep_min,uint8_t ep_max);
247+
int (* gs_rc_get_endpoint_sync)(void *ctx,void *ep);//(void *ctx,rc_set_all_ep_t *ep)
248+
int (* gs_rc_get_endpoint_async)(void *ctx);
249+
int (* gs_rc_set_function_mode)(void *ctx,uint8_t func,uint8_t stick,uint8_t set_val);
250+
int (* gs_rc_get_function_mode)(void *ctx,void *func_mode);//(void *ctx,rc_set_function_pack_t *func_mode)
251+
int (* gs_rc_set_stick_mode)(void *ctx,uint8_t stick_mode);
252+
int (* gs_rc_get_stick_mode_async)(void *ctx);
253+
int (* gs_rc_get_stick_mode_ext)(void *ctx,uint8_t *mode);
254+
int (* gs_rc_get_stick_mode_sync)(void *ctx,uint8_t *mode);
255+
int (* gs_rc_set_stick_cali_stage)(void *ctx,uint8_t tid,uint8_t stage,uint8_t *rc_stage);
256+
int (* gs_rc_get_stick_cali_value)(void *ctx,uint8_t tid,int8_t *x1_pct,int8_t *y1_pct,int8_t *x2_pct,int8_t *y2_pct);
257+
int (* gs_rc_set_warning_mode)(void *ctx,int warn);//(void *ctx,rc_set_warning_mode_pack_t warn)
258+
int (* gs_rc_get_warning_mode)(void *ctx,void *warn);//(void *ctx,rc_set_warning_mode_pack_t *warn)
259+
int (* gs_rc_monitor_setup)(void *ctx,void *monitor);//(void *ctx,rc_monitor_pack_t *monitor)
260+
int (* gs_rc_reset_all_get_status)(void *ctx);
261+
int (* gs_rc_reset_default_async)(void *ctx,uint8_t resetType);
262+
uint8_t (* gs_rc_get_lock_state)(void *ctx);
263+
uint8_t (* gs_rc_get_link_state)(void *ctx);
264+
int (* gs_vcm_register_channel_switch_callback_wrap)(void *ctx,int callback,void *data);//(void *ctx,gs_video_channel_switch_callback_t callback,void *data)
265+
int (* gs_vcm_register_channel_push_callback_wrap)(void *ctx,int callback,void *data);//(void *ctx,gs_video_channel_push_callback_t callback,void *data)
266+
int (* gs_vcm_query_current_channel_wrap)(void *ctx,void *chnl_id);//(void *ctx,gs_video_channel_id_t *chnl_id)
267+
int (* gs_vcm_enable_channel_wrap)(void *ctx,int chnl_id);//(void *ctx,gs_main_channel_id_t chnl_id)
268+
int (* gs_vcm_disable_channel_wrap)(void *ctx,int chnl_id);//(void *ctx,gs_main_channel_id_t chnl_id)
269+
int (* gs_vcm_enable_sub_channel_wrap)(void *ctx,void *sub_chnl_id);//(void *ctx,gs_video_channel_id_t *sub_chnl_id)
270+
int (* gs_vcm_disable_sub_channel_wrap)(void *ctx,void *sub_chnl_id);//(void *ctx,gs_video_channel_id_t *sub_chnl_id)
271+
int (* gs_vcm_local_playback_on_wrap)(void *ctx,char *video_path);
272+
int (* gs_vcm_local_playback_off_wrap)(void *ctx);
273+
int (* gs_vcm_rc_setting_on_wrap)(void *ctx);
274+
int (* gs_vcm_rc_setting_off_wrap)(void *ctx);
275+
int (* gs_common_send_cmd)(void *ctx,void *cmd,bool sync);//(void *ctx,gs_common_cmd_t *cmd,bool sync)
276+
int (* gs_get_codec_debug_osd_info)(void *ctx,void *info);//(void *ctx,debug_codec_osd_info_t *info)
277+
int (* gs_get_cam_debug_osd_info)(void *ctx,void *info);//(void *ctx,debug_cam_osd_info_t *info)
278+
int (* gs_get_temp_debug_osd_info)(void *ctx,void *info);//(void *ctx,debug_temp_osd_info_t *info)
279+
int (* gs_get_uav_max_temp)(void *ctx,int32_t *uav_temp);
280+
int (* gs_get_cp_debug_osd_info)(void *ctx,void *info);//(void *ctx,debug_cp_osd_info_t *info)
281+
int (* gs_set_racing_enc_strategy)(void *ctx,uint8_t strategy);
282+
int (* gs_debug_is_camera_in_record)(void *ctx,int *record_state);
283+
int (* gs_get_cparm_version)(void *ctx,char *arm_ver);
284+
int (* gs_get_dsp_version)(void *ctx,char *dsp_ver);
285+
int (* gs_get_flight_time)(void *ctx,uint64_t *flight_time);
286+
int (* gs_get_arm_status)(void *ctx,uint8_t *flag);
287+
int (* gs_clear_adb_log_info)(void *ctx);
288+
int (* gs_reset_camera_param)(void *ctx);
289+
int (* gs_set_low_power_mode)(void *ctx,bool mode);
290+
int (* gs_get_uav_version)(void *ctx,char *ap_ver,char *board_sn);
291+
int (* gs_get_uav_hardware_version)(void *ctx,char *hw_ver);
292+
int (* gs_get_uav_power_status)(void *ctx,uint8_t *power_status,uint8_t *arm_flag);
293+
int (* gs_get_uav_camera_type)(void *ctx,uint8_t *cam_type);
294+
int (* gs_get_liveview_fps)(void *ctx,uint8_t *lv_fps);
295+
int (* gs_fbdev_open)(void);
296+
int (* gs_fbdev_disp_frame)(int *frm_id);
297+
int (* gs_fbdev_close)(void);
298+
int (* gs_record_liveview)(void *ctx,bool b_record);
299+
int (* gs_liveview_get_state)(void *ctx,int *lv_rec_state);
300+
int (* gs_lv_transcode_get_looping_mode)(void *ctx);
301+
int (* gs_lv_transcode_set_looping_mode)(void *ctx,int rec_mode);//(void *ctx,record_mode_t rec_mode)
302+
int (* gs_lv_transcode_get_state)(void *ctx);
303+
int (* gs_lv_transcode_record)(void *ctx,bool b_record,Record_sender sender);
304+
int (* gs_lv_transcode_get_rec_time)(void *ctx,int *rec_time);
305+
int (* gs_enable_audio_liveview)(void *ctx,bool b_enable);
306+
int (* gs_get_frame_delay_e2e)(void *ctx,uint16_t *delay);
307+
int (* gs_get_chnl_status)(void *ctx,uint16_t *chnl_status);
308+
int (* gs_get_pigeon_battery_info)(void *ctx,void *vol);//(void *ctx,gs_battery_voltage_t *vol)
309+
int (* gs_get_sd_status)(void *ctx,int type,uint8_t *sd_status,uint32_t *total_kbytes,uint32_t *free_kbytes);
310+
int (* gs_pwm_buzzer_playback)(void *ctx,int freq,int duty,int delay_ms);
311+
int (* gs_pwm_buzzer_enable_bat)(void *ctx,bool enable);
312+
};

0 commit comments

Comments
 (0)