@@ -3,17 +3,17 @@ import { UseDatum } from 'react-usedatum';
33import { queryCameraList } from './RecorderApi' ;
44import { showErrorDialog } from '../components/ErrorDialog' ;
55import { useIsRecording , useRecordingProps } from './RecorderData' ;
6- import { setViscaIP , useViscaIP } from '../visca/ViscaState' ;
7- import { sendViscaCommand } from '../visca/ViscaAPI' ;
6+ import { useViscaIP } from '../visca/ViscaState' ;
87
98export const [ useCameraList , setCameraList ] = UseDatum <
109 { name : string ; address : string } [ ]
1110> ( [ ] ) ;
1211
1312export const CameraMonitor = ( ) => {
1413 const [ isRecording ] = useIsRecording ( ) ;
15- const [ viscaIP ] = useViscaIP ( ) ;
1614 const [ recordingProps ] = useRecordingProps ( ) ;
15+ const [ cameraList ] = useCameraList ( ) ;
16+ const [ , setViscaIP ] = useViscaIP ( ) ;
1717
1818 /** Periodically query for the available NDI cameras */
1919 useEffect ( ( ) => {
@@ -33,28 +33,30 @@ export const CameraMonitor = () => {
3333 return ( ) => clearInterval ( timer ) ;
3434 } , [ isRecording ] ) ;
3535
36- /** Periodically send a VISCA Command to detect camera connection issues */
3736 useEffect ( ( ) => {
38- if ( viscaIP !== recordingProps . networkIP ) {
39- setViscaIP ( recordingProps . networkIP ) ;
40- return undefined ;
41- }
42- if ( ! viscaIP ) {
43- return undefined ;
37+ // Keep the camera IP address in sync with the selected camera
38+ const camera = cameraList . find (
39+ ( c ) => c . name === recordingProps . networkCamera ,
40+ ) ;
41+ if ( camera ) {
42+ setViscaIP ( camera . address ) ;
4443 }
44+ } , [ cameraList , recordingProps . networkCamera , setViscaIP ] ) ;
4545
46- // const monitor = () => {
47- // sendViscaCommand({ type: 'AUTO_FOCUS_VALUE' })
48- // .then(() => {
49- // return true;
50- // })
51- // .catch(() => {});
52- // };
53- // monitor();
54- // const timer = setInterval(monitor, 5000);
55- // return () => clearInterval(timer);
56- return undefined ;
57- } , [ recordingProps . networkIP , viscaIP ] ) ;
46+ /** Periodically send a VISCA Command to detect camera connection issues */
47+ // useEffect(() => {
48+ // // const monitor = () => {
49+ // // sendViscaCommand({ type: 'AUTO_FOCUS_VALUE' })
50+ // // .then(() => {
51+ // // return true;
52+ // // })
53+ // // .catch(() => {});
54+ // // };
55+ // // monitor();
56+ // // const timer = setInterval(monitor, 5000);
57+ // // return () => clearInterval(timer);
58+ // return undefined;
59+ // }, [viscaIP]);
5860
5961 // eslint-disable-next-line react/jsx-no-useless-fragment
6062 return < > </ > ;
0 commit comments