|
|
@ -487,6 +487,7 @@ xsync_net_state_t Xsync::getNetState() { return m_net_state; } |
|
|
|
|
|
|
|
void Xsync::Basic_registerOnTimecodeMsgCallback(xsync_on_timecode_msg_t on_timecode_msg_cb) { m_on_timecode_msg_cb = on_timecode_msg_cb; } |
|
|
|
void Xsync::Basic_registerOnCameraSyncMsgCallback(xsync_on_camera_sync_msg_t on_camera_sync_msg_cb) { m_on_camera_sync_msg_cb = on_camera_sync_msg_cb; } |
|
|
|
void Xsync::Basic_registerOnWorkstateChangeMsgCallback(xsync_on_workstate_change_msg_t on_workstate_change_msg_cb) { m_on_workstate_change_msg_cb = on_workstate_change_msg_cb; } |
|
|
|
|
|
|
|
xs_error_code_t Xsync::xsync_send_cmd_block(iflytop_xsync_packet_header_t *cmd, iflytop_xsync_packet_header_t *rx_data, int32_t buffersize, int32_t overtime_ms) { |
|
|
|
lock_guard<recursive_mutex> lock(lock_); |
|
|
@ -619,14 +620,17 @@ xs_error_code_t Xsync::reg_read_muti(uint32_t regadd, uint32_t nreg, vector<uint |
|
|
|
} |
|
|
|
|
|
|
|
void Xsync::parseTimecodeMsgAndReport(XsyncNetAdd &from, uint8_t *data, size_t length) { |
|
|
|
//
|
|
|
|
iflytop_timecode_report_packet_t *packet = (iflytop_timecode_report_packet_t *)data; |
|
|
|
Timecode64_t tc64; |
|
|
|
tc64.tc0 = packet->timecode0; |
|
|
|
tc64.tc1 = packet->timecode1; |
|
|
|
|
|
|
|
XsyncTimecode_t timecode = timecode64ToXsyncTimeCode(tc64); |
|
|
|
if (m_on_timecode_msg_cb) m_on_timecode_msg_cb(&timecode); |
|
|
|
iflytop_xsync_event_report_packet_t *packet = (iflytop_xsync_event_report_packet_t *)data; |
|
|
|
if (packet->eventid == ktimecode_report_event) { |
|
|
|
Timecode64_t tc64; |
|
|
|
tc64.tc0 = packet->data[0]; |
|
|
|
tc64.tc1 = packet->data[1]; |
|
|
|
XsyncTimecode_t timecode = timecode64ToXsyncTimeCode(tc64); |
|
|
|
if (m_on_timecode_msg_cb) m_on_timecode_msg_cb(&timecode); |
|
|
|
} else if (packet->eventid == kxsync_work_state_report_event) { |
|
|
|
// 信号发生器状态改变
|
|
|
|
if (m_on_workstate_change_msg_cb) m_on_workstate_change_msg_cb(packet->data[0]); |
|
|
|
} |
|
|
|
} |
|
|
|
void Xsync::parseCameraSyncMsgAndReport(XsyncNetAdd &from, uint8_t *data, size_t length) { |
|
|
|
uint32_t count = 0; |
|
|
@ -704,14 +708,16 @@ xs_error_code_t Xsync::Basic_getGenlockFormat(GenlockFormat_t &format) { |
|
|
|
return kxs_ec_success; |
|
|
|
} |
|
|
|
xs_error_code_t Xsync::Basic_setTimecodeFormat(TimecodeFormat_t format) { |
|
|
|
DO_XSYNC(SigGenerator_setTimecodeFormat(format)); |
|
|
|
DO_XSYNC(TimecodeInputModule_setTimecodeFormat(format)); |
|
|
|
return kxs_ec_success; |
|
|
|
} |
|
|
|
xs_error_code_t Xsync::Basic_getTimecodeFormat(TimecodeFormat_t &format) { |
|
|
|
DO_XSYNC(SigGenerator_getTimecodeFormat(format)); |
|
|
|
uint32_t readbak = 0; |
|
|
|
DO_XSYNC(reg_write(reg::kSigGenerator_timecode_format, format, readbak, 10)); |
|
|
|
DO_XSYNC(reg_write(reg::ktimecode_in_timecode_format, format, readbak, 10)); |
|
|
|
// DO_XSYNC(reg_write(reg::ktimecode_out_timecode_format, format, readbak, 10)); //readonly
|
|
|
|
return kxs_ec_success; |
|
|
|
} |
|
|
|
// xs_error_code_t Xsync::Basic_getTimecodeFormat(TimecodeFormat_t &format) {
|
|
|
|
// DO_XSYNC(SigGenerator_getTimecodeFormat(format));
|
|
|
|
// return kxs_ec_success;
|
|
|
|
// }
|
|
|
|
/*******************************************************************************
|
|
|
|
* TTLOutputModule * |
|
|
|
*******************************************************************************/ |
|
|
@ -990,10 +996,7 @@ xs_error_code_t Xsync::SigGenerator_getGenlockFormat(GenlockFormat_t &format) { |
|
|
|
format = (GenlockFormat_t)readbak; |
|
|
|
return ecode; |
|
|
|
} |
|
|
|
xs_error_code_t Xsync::SigGenerator_setTimecodeFormat(TimecodeFormat_t format) { |
|
|
|
uint32_t readbak = 0; |
|
|
|
return reg_write(reg::kSigGenerator_timecode_format, format, readbak, 10); |
|
|
|
} |
|
|
|
xs_error_code_t Xsync::SigGenerator_setTimecodeFormat(TimecodeFormat_t format) { return Basic_setTimecodeFormat(format); } |
|
|
|
xs_error_code_t Xsync::SigGenerator_getTimecodeFormat(TimecodeFormat_t &format) { |
|
|
|
uint32_t readbak = 0; |
|
|
|
auto ecode = reg_read(reg::kSigGenerator_timecode_format, readbak, 10); |
|
|
@ -1102,24 +1105,20 @@ xs_error_code_t Xsync::TimecodeInputModule_setSrcSelect(timecode_input_module::T |
|
|
|
DO_XSYNC(reg_write(reg::ktimecode_in_timecode_sig_selt, timecode_select, readbak, 10)); |
|
|
|
return kxs_ec_success; |
|
|
|
} |
|
|
|
xs_error_code_t Xsync::TimecodeInputModule_getSrcSelect(timecode_input_module::TriggerSigType_t timecode_select) { |
|
|
|
xs_error_code_t Xsync::TimecodeInputModule_getSrcSelect(timecode_input_module::TriggerSigType_t &timecode_select) { |
|
|
|
uint32_t readbak = 0; |
|
|
|
DO_XSYNC(reg_read(reg::ktimecode_in_timecode_sig_selt, readbak, 10)); |
|
|
|
timecode_select = (timecode_input_module::TriggerSigType_t)readbak; |
|
|
|
return kxs_ec_success; |
|
|
|
} |
|
|
|
xs_error_code_t Xsync::TimecodeInputModule_setTimecodeFormat(TimecodeFormat_t format) { |
|
|
|
uint32_t readbak = 0; |
|
|
|
DO_XSYNC(reg_write(reg::ktimecode_in_timecode_format, format, readbak, 10)); |
|
|
|
return kxs_ec_success; |
|
|
|
} |
|
|
|
xs_error_code_t Xsync::TimecodeInputModule_setTimecodeFormat(TimecodeFormat_t format) { return Basic_setTimecodeFormat(format); } |
|
|
|
xs_error_code_t Xsync::TimecodeInputModule_getTimecodeFormat(TimecodeFormat_t &format) { |
|
|
|
uint32_t readbak = 0; |
|
|
|
DO_XSYNC(reg_read(reg::ktimecode_in_timecode_format, readbak, 10)); |
|
|
|
format = (TimecodeFormat_t)readbak; |
|
|
|
return kxs_ec_success; |
|
|
|
} |
|
|
|
xs_error_code_t Xsync::TimecodeInputModule_getTimecode(XsyncTimecode_t& timecode) { |
|
|
|
xs_error_code_t Xsync::TimecodeInputModule_getTimecode(XsyncTimecode_t &timecode) { |
|
|
|
uint32_t readbak = 0; |
|
|
|
xs_error_code_t ecode = kxs_ec_success; |
|
|
|
|
|
|
|