main
reng 3 months ago
parent 55b67ce009
commit 3a104bf704
  1. 18
      vite/src-tauri/src/lib.rs
  2. 2
      vite/src/App.css
  3. 12
      vite/src/comps/debug.jsx
  4. 14
      vite/src/pages/flow_free.jsx

@ -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| {
@ -183,3 +186,16 @@ 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<IpAddr, Box<dyn std::error::Error>> {
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)
}

@ -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{

@ -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 (
<div className="grid grid-cols-5 gap-2 [&>button]:rounded-full [&>button]:bg-white bg-gray-200 p-2 w-full justify-center">
<div className="grid grid-cols-3 gap-2 [&>button]:rounded-full [&>button]:bg-white bg-gray-200 p-2 w-full justify-center">
<button onClick={() =>{
sendOsc(OSC_ADDRESS.STATUS, 'reset');
// refLight.current.set(1);
@ -23,10 +23,10 @@ export function DebugControl({}){
<button onClick={() => sendOsc(OSC_ADDRESS.STATUS, 'go')}>go</button>
<button onClick={() => sendOsc(OSC_ADDRESS.STATUS, 'end')}>end</button>
<div className="flex flex-col gap-1">
<button className="btn btn-success" onClick={() => sendPrompt('a dog')}>Test Prompt</button>
<button className="btn btn-success" onClick={() => sendPrompt(TEST_PROMPT)}>Test Prompt</button>
</div>
{/* <div className="flex flex-col gap-1"> */}
<button className="btn btn-success" onClick={() => sendPrompt('a dog')}>Test Prompt #1</button>
<button className="btn btn-success" onClick={() => sendPrompt(TEST_PROMPT)}>Test Prompt #2</button>
{/* </div> */}
</div>
)
}

@ -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,12 +650,21 @@ export function FreeFlow(){
onOscMessageReceived(onOsc); // Set up OSC message listener
invoke('get_ip').then((ip)=>{
console.log('Local IP address:', ip);
setLocalIP(ip);
});
},[]);
return (
<main className="items-start">
<section className="flex-1 flex flex-col gap-2 self-stretch overflow-hidden">
<div className="bg-purple-300 text-3xl flex flex-row justify-between px-4 items-center gap-1">
<span className='font-bold'>PC {data?.id}</span>
<span className="">{localIP || '...'}</span>
</div>
<DebugControl/>
<div className="w-full p-2 grid grid-cols-4 gap-2 items-stretch justify-center *:max-h-[5rem]">
<div className="bg-gray-100 text-4xl font-bold mb-4 flex justify-center items-center">
@ -670,6 +681,7 @@ export function FreeFlow(){
/>
{/* <Light ref={refLight} /> */}
<VoiceAnalysis/>
{/* <div className="flex flex-col">
<label className="text-center">Voice</label>
<button className={`${voice==Voice.ONYX && 'bg-gray-300'}`} onClick={() => setVoice(Voice.ONYX)}>Onyx</button>
@ -685,6 +697,8 @@ export function FreeFlow(){
saveHistory(history);
}}>Save Log</button>
</div>
</div>
<div className="flex-1 overflow-y-auto">
<table className="border-collapse **:border-y w-full **:p-2 text-sm">

Loading…
Cancel
Save