You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

170 lines
11 KiB

1 year ago
1 year ago
1 year ago
  1. #pragma once
  2. #include <fstream>
  3. #include <functional>
  4. #include <iostream>
  5. #include <list>
  6. #include <map>
  7. #include <memory>
  8. #include <mutex>
  9. #include <set>
  10. #include <sstream>
  11. #include <string>
  12. #include <vector>
  13. #include "xsync_errcode.hpp"
  14. #include "xsync_v2_sig_type.hpp"
  15. namespace xsync {
  16. using namespace std;
  17. typedef function<void(XsyncTimecode_t *timecode_msg)> xsync_on_timecode_msg_t;
  18. typedef function<void(uint32_t recordSig, XsyncTimecode_t *timecode_msg)> xsync_on_record_sig_change_msg_t;
  19. typedef function<void(xysnc_camera_sync_data_t *timecode_msg)> xsync_on_camera_sync_msg_t;
  20. class IXsync {
  21. public:
  22. virtual ~IXsync() {}
  23. public:
  24. /***********************************************************************************************
  25. * *
  26. ***********************************************************************************************/
  27. virtual xs_error_code_t changeXsyncIp(string xsync_ip) = 0;
  28. virtual bool ping() = 0;
  29. virtual void registerOnTimecodeMsgCallback(xsync_on_timecode_msg_t cb) = 0;
  30. virtual void registerOnCameraSyncMsgCallback(xsync_on_camera_sync_msg_t cb) = 0;
  31. virtual void registerOnRecordSigChangeMsgCallback(xsync_on_record_sig_change_msg_t cb) = 0;
  32. virtual xs_error_code_t generatorNewMac() = 0;
  33. virtual xs_error_code_t factoryReset() = 0;
  34. virtual xs_error_code_t reboot() = 0;
  35. virtual xs_error_code_t changeNetworkConfig(string ip, string mask, string gateway) = 0;
  36. virtual xs_error_code_t readSn(string &sn) = 0;
  37. virtual xs_error_code_t readMac(string &mac) = 0;
  38. public:
  39. virtual xs_error_code_t reg_write(uint32_t regadd, uint32_t regvalue, uint32_t &regbackvalue, int32_t overtime_ms = 100) = 0;
  40. virtual xs_error_code_t reg_read(uint32_t regadd, uint32_t &regvalue, int32_t overtime_ms = 100) = 0;
  41. public:
  42. /***********************************************************************************************
  43. * *
  44. ***********************************************************************************************/
  45. virtual xs_error_code_t ExternalTimecode_setSource(InputInterface_t src) = 0;
  46. virtual xs_error_code_t ExternalTimecode_getSource(InputInterface_t &timecode_select) = 0;
  47. virtual xs_error_code_t ExternalTimecode_setFormat(TimecodeFormat_t format) = 0;
  48. virtual xs_error_code_t ExternalTimecode_getFormat(TimecodeFormat_t &format) = 0;
  49. virtual xs_error_code_t ExternalTimecode_readCode(XsyncTimecode_t &timecode) = 0;
  50. virtual xs_error_code_t TTLInputModule1_detectFreq(uint32_t &freq) = 0;
  51. virtual xs_error_code_t TTLInputModule2_detectFreq(uint32_t &freq) = 0;
  52. virtual xs_error_code_t TTLInputModule3_detectFreq(uint32_t &freq) = 0;
  53. virtual xs_error_code_t TTLInputModule4_detectFreq(uint32_t &freq) = 0;
  54. virtual xs_error_code_t ExternalGenlock_detectFreq(float &freq) = 0;
  55. /***********************************************************************************************
  56. * *
  57. ***********************************************************************************************/
  58. virtual xs_error_code_t InternalTimecode_setFormat(TimecodeFormat_t format) = 0;
  59. virtual xs_error_code_t InternalTimecode_getFormat(TimecodeFormat_t &format) = 0;
  60. virtual xs_error_code_t InternalTimecode_setCode(XsyncTimecode_t timecode) = 0;
  61. virtual xs_error_code_t InternalTimecode_getCode(XsyncTimecode_t &timecode) = 0;
  62. virtual xs_error_code_t InternalGenlock_setFormat(GenlockFormat_t format) = 0;
  63. virtual xs_error_code_t InternalGenlock_getFormat(GenlockFormat_t &format) = 0;
  64. virtual xs_error_code_t InternalClock_setFreq(float freq) = 0;
  65. virtual xs_error_code_t InternalClock_getFreq(float &freq) = 0;
  66. virtual xs_error_code_t SysTimecode_setSource(uint32_t sig) = 0;
  67. virtual xs_error_code_t SysTimecode_getSource(uint32_t &sig) = 0;
  68. virtual xs_error_code_t SysTimecode_readFormat(TimecodeFormat_t &format) = 0;
  69. virtual xs_error_code_t SysTimecode_readCode(XsyncTimecode_t &timecode) = 0;
  70. virtual xs_error_code_t SysGenlock_setSrc(uint32_t source) = 0;
  71. virtual xs_error_code_t SysGenlock_getSrc(uint32_t &source) = 0;
  72. virtual xs_error_code_t SysGenlock_readFreq(float &freq) = 0;
  73. virtual xs_error_code_t SysClock_setSrc(SignalType_t sig) = 0;
  74. virtual xs_error_code_t SysClock_getSrc(SignalType_t &sig) = 0;
  75. virtual xs_error_code_t SysClock_setTriggerEdge(TriggerEdge_t edge) = 0;
  76. virtual xs_error_code_t SysClock_getTriggerEdge(TriggerEdge_t &edge) = 0;
  77. virtual xs_error_code_t SysClock_setFreqDivision(uint32_t div) = 0;
  78. virtual xs_error_code_t SysClock_geFreqtDivision(uint32_t &div) = 0;
  79. virtual xs_error_code_t SysClock_setFreqMultiplication(uint32_t muti) = 0;
  80. virtual xs_error_code_t SysClock_getFreqMultiplication(uint32_t &muti) = 0;
  81. virtual xs_error_code_t SysClock_readOutSigFreq(float &freq) = 0;
  82. virtual xs_error_code_t SysClock_readInSigFreq(float &freq) = 0;
  83. virtual xs_error_code_t RecordSigGenerator_setContrlMode(ControlMode_t mode) = 0;
  84. virtual xs_error_code_t RecordSigGenerator_getContrlMode(ControlMode_t &mode) = 0;
  85. virtual xs_error_code_t RecordSigGenerator_manualStart() = 0;
  86. virtual xs_error_code_t RecordSigGenerator_manualStop() = 0;
  87. virtual xs_error_code_t RecordSigGenerator_setAutoStartTimecode(XsyncTimecode_t timecode) = 0;
  88. virtual xs_error_code_t RecordSigGenerator_setAutoStopTimecode(XsyncTimecode_t timecode) = 0;
  89. virtual xs_error_code_t RecordSigGenerator_getAutoStartTimecode(XsyncTimecode_t &timecode) = 0;
  90. virtual xs_error_code_t RecordSigGenerator_getAutoStopTimecode(XsyncTimecode_t &timecode) = 0;
  91. virtual xs_error_code_t RecordSigGenerator_setTimecodeCtrlFlag(uint32_t autoStart, uint32_t autoStop) = 0;
  92. virtual xs_error_code_t RecordSigGenerator_getTimecodeCtrlFlag(uint32_t &autoStart, uint32_t &autoStop) = 0;
  93. virtual xs_error_code_t RecordSigGenerator_setExternalTTLTriggerSrc(InputInterface_t ttlPortNum) = 0;
  94. virtual xs_error_code_t RecordSigGenerator_getExternalTTLTriggerSrc(InputInterface_t &ttlPortNum) = 0;
  95. virtual xs_error_code_t RecordSigGenerator_setExternalTTLTriggerPolarity(uint32_t polarity) = 0;
  96. virtual xs_error_code_t RecordSigGenerator_getExternalTTLTriggerPolarity(uint32_t &polarity) = 0;
  97. virtual xs_error_code_t RecordSigGenerator_setRecordExposureTime(uint32_t us) = 0;
  98. virtual xs_error_code_t RecordSigGenerator_getRecordExposureTime(uint32_t &us) = 0;
  99. virtual xs_error_code_t RecordSigGenerator_setRecordExposureOffsetTime(uint32_t us) = 0;
  100. virtual xs_error_code_t RecordSigGenerator_getRecordExposureOffsetTime(uint32_t &us) = 0;
  101. virtual xs_error_code_t RecordSigGenerator_getRecordState(uint32_t &state) = 0;
  102. virtual xs_error_code_t RecordSigGenerator_readTimecodeSnapshot(XsyncTimecode_t &timecode) = 0;
  103. /***********************************************************************************************
  104. * *
  105. ***********************************************************************************************/
  106. virtual xs_error_code_t TimecodeOutputModule_setBncOutputLevel(int level) = 0;
  107. virtual xs_error_code_t TimecodeOutputModule_getBncOutputLevel(int &level) = 0;
  108. virtual xs_error_code_t TimecodeOutputModule_setHeadphoneOutputLevel(int level) = 0;
  109. virtual xs_error_code_t TimecodeOutputModule_getHeadphoneOutputLevel(int &level) = 0;
  110. virtual xs_error_code_t TTLOutputModule1_setSrcSigType(SignalType_t source) = 0;
  111. virtual xs_error_code_t TTLOutputModule1_getSrcSigType(SignalType_t &source) = 0;
  112. virtual xs_error_code_t TTLOutputModule1_setFreqDivision(uint32_t div) = 0;
  113. virtual xs_error_code_t TTLOutputModule1_getFreqDivision(uint32_t &div) = 0;
  114. virtual xs_error_code_t TTLOutputModule1_setFreqMultiplication(uint32_t multi) = 0;
  115. virtual xs_error_code_t TTLOutputModule1_getFreqMultiplication(uint32_t &multi) = 0;
  116. virtual xs_error_code_t TTLOutputModule1_readInFreq(float &freq) = 0;
  117. virtual xs_error_code_t TTLOutputModule1_readOutFreq(float &freq) = 0;
  118. virtual xs_error_code_t TTLOutputModule2_setSrcSigType(SignalType_t source) = 0;
  119. virtual xs_error_code_t TTLOutputModule2_getSrcSigType(SignalType_t &source) = 0;
  120. virtual xs_error_code_t TTLOutputModule2_setFreqDivision(uint32_t div) = 0;
  121. virtual xs_error_code_t TTLOutputModule2_getFreqDivision(uint32_t &div) = 0;
  122. virtual xs_error_code_t TTLOutputModule2_setFreqMultiplication(uint32_t multi) = 0;
  123. virtual xs_error_code_t TTLOutputModule2_getFreqMultiplication(uint32_t &multi) = 0;
  124. virtual xs_error_code_t TTLOutputModule2_readInFreq(float &freq) = 0;
  125. virtual xs_error_code_t TTLOutputModule2_readOutFreq(float &freq) = 0;
  126. virtual xs_error_code_t TTLOutputModule3_setSrcSigType(SignalType_t source) = 0;
  127. virtual xs_error_code_t TTLOutputModule3_getSrcSigType(SignalType_t &source) = 0;
  128. virtual xs_error_code_t TTLOutputModule3_setFreqDivision(uint32_t div) = 0;
  129. virtual xs_error_code_t TTLOutputModule3_getFreqDivision(uint32_t &div) = 0;
  130. virtual xs_error_code_t TTLOutputModule3_setFreqMultiplication(uint32_t multi) = 0;
  131. virtual xs_error_code_t TTLOutputModule3_getFreqMultiplication(uint32_t &multi) = 0;
  132. virtual xs_error_code_t TTLOutputModule3_readInFreq(float &freq) = 0;
  133. virtual xs_error_code_t TTLOutputModule3_readOutFreq(float &freq) = 0;
  134. virtual xs_error_code_t TTLOutputModule4_setSrcSigType(SignalType_t source) = 0;
  135. virtual xs_error_code_t TTLOutputModule4_getSrcSigType(SignalType_t &source) = 0;
  136. virtual xs_error_code_t TTLOutputModule4_setFreqDivision(uint32_t div) = 0;
  137. virtual xs_error_code_t TTLOutputModule4_getFreqDivision(uint32_t &div) = 0;
  138. virtual xs_error_code_t TTLOutputModule4_setFreqMultiplication(uint32_t multi) = 0;
  139. virtual xs_error_code_t TTLOutputModule4_getFreqMultiplication(uint32_t &multi) = 0;
  140. virtual xs_error_code_t TTLOutputModule4_readInFreq(float &freq) = 0;
  141. virtual xs_error_code_t TTLOutputModule4_readOutFreq(float &freq) = 0;
  142. };
  143. } // namespace xsync