diff --git a/vite/src-tauri/src/lib.rs b/vite/src-tauri/src/lib.rs index ec8e3c4..0ed741e 100644 --- a/vite/src-tauri/src/lib.rs +++ b/vite/src-tauri/src/lib.rs @@ -10,6 +10,8 @@ use webview2_com::Microsoft::Web::WebView2::Win32::{ }; use windows::core::{Interface, PCWSTR}; use serde::Serialize; +use std::net::TcpStream; +use std::net::IpAddr; #[derive(Serialize, Clone)] struct OscEvent { @@ -93,7 +95,8 @@ pub fn run() { get_env, send_osc_message, reset_permission, - send_dmx_message + send_dmx_message, + get_ip ]) .plugin(tauri_plugin_http::init()) .setup(|app| { @@ -182,4 +185,17 @@ fn send_dmx_message(message: &str) -> Result<(), String> { } Ok(()) +} + +#[tauri::command] +fn get_ip() -> String { + let local_ip = get_local_ip().unwrap(); + format!("{}", local_ip) +} + +fn get_local_ip() -> Result> { + let socket = std::net::UdpSocket::bind("0.0.0.0:0")?; + socket.connect("8.8.8.8:80")?; + let local_ip = socket.local_addr()?.ip(); + Ok(local_ip) } \ No newline at end of file diff --git a/vite/src/App.css b/vite/src/App.css index ca0bd58..a0d46b8 100644 --- a/vite/src/App.css +++ b/vite/src/App.css @@ -11,7 +11,7 @@ html{ } main{ - @apply flex-1 grid grid-cols-2 gap-4 justify-start p-8 overflow-hidden; + @apply flex-1 grid grid-cols-2 gap-4 justify-start p-4 overflow-hidden; } label{ diff --git a/vite/src/comps/debug.jsx b/vite/src/comps/debug.jsx index c8e2584..304c8bf 100644 --- a/vite/src/comps/debug.jsx +++ b/vite/src/comps/debug.jsx @@ -3,7 +3,7 @@ import { useData } from '../util/useData.jsx'; export const TEST_PROMPT='A distant, ambient setting with gentle light'; -export function DebugControl({}){ +export function DebugControl({refLight}){ const {data} = useData(); @@ -14,7 +14,7 @@ export function DebugControl({}){ } return ( -
+
-
- - -
+ {/*
*/} + + + {/*
*/}
) } \ No newline at end of file diff --git a/vite/src/pages/flow_free.jsx b/vite/src/pages/flow_free.jsx index ec0a2a5..6a8741c 100644 --- a/vite/src/pages/flow_free.jsx +++ b/vite/src/pages/flow_free.jsx @@ -1,3 +1,4 @@ +import { invoke } from '@tauri-apps/api/core'; import { useEffect, useRef, useState } from "react"; import SpeechRecognition, { useSpeechRecognition } from 'react-speech-recognition'; @@ -49,6 +50,7 @@ export function FreeFlow(){ const [cuelist, setCuelist] = useState([]); const [currentCue, setCurrentCue] = useState(null); const [nextCue, setNextCue] = useState(null); + const [localIP, setLocalIP] = useState(null); const [chatWelcome, setChatWelcome] = useState(null); const [audioInput, setAudioInput] = useState(true); @@ -648,13 +650,22 @@ export function FreeFlow(){ onOscMessageReceived(onOsc); // Set up OSC message listener + invoke('get_ip').then((ip)=>{ + console.log('Local IP address:', ip); + setLocalIP(ip); + }); + },[]); return (
- +
+ PC {data?.id} + {localIP || '...'} +
+
{refCurrentCue.current?.name} @@ -670,6 +681,7 @@ export function FreeFlow(){ /> {/* */} + {/*
@@ -685,6 +697,8 @@ export function FreeFlow(){ saveHistory(history); }}>Save Log
+ +