platform::timeline
This commit is contained in:
parent
c0de520811
commit
6e85b7fa35
16 changed files with 157 additions and 217 deletions
|
@ -16,8 +16,8 @@ crate-type = ["staticlib", "cdylib", "rlib"]
|
|||
tauri-build = { version = "=2.0.0-beta.17", features = [] }
|
||||
|
||||
[dependencies]
|
||||
shared.workspace = true
|
||||
wellen.workspace = true
|
||||
shared = { path = "../shared", features = ["backend"] }
|
||||
serde_json = "1.0"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
tauri = { version = "=2.0.0-beta.22", features = ["macos-private-api", "linux-ipc-protocol"] }
|
||||
|
|
|
@ -61,6 +61,25 @@ async fn load_and_get_signal(
|
|||
Ok(serde_json::to_value(signal).unwrap())
|
||||
}
|
||||
|
||||
#[tauri::command(rename_all = "snake_case")]
|
||||
async fn timeline(
|
||||
signal_ref_index: usize,
|
||||
screen_width: u32,
|
||||
store: tauri::State<'_, Store>,
|
||||
) -> Result<serde_json::Value, ()> {
|
||||
let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap();
|
||||
let mut waveform_lock = store.waveform.lock().unwrap();
|
||||
let waveform = waveform_lock.as_mut().unwrap();
|
||||
// @TODO maybe run it in a thread to not block the main one or return the result through a Tauri channel
|
||||
waveform.load_signals_multi_threaded(&[signal_ref]);
|
||||
let signal = waveform.get_signal(signal_ref).unwrap();
|
||||
|
||||
// @TODO create Timeline
|
||||
let timeline = shared::Timeline { blocks: Vec::new() };
|
||||
|
||||
Ok(serde_json::to_value(timeline).unwrap())
|
||||
}
|
||||
|
||||
#[tauri::command(rename_all = "snake_case")]
|
||||
async fn unload_signal(signal_ref_index: usize, store: tauri::State<'_, Store>) -> Result<(), ()> {
|
||||
let signal_ref = wellen::SignalRef::from_index(signal_ref_index).unwrap();
|
||||
|
@ -87,6 +106,7 @@ pub fn run() {
|
|||
get_hierarchy,
|
||||
get_time_table,
|
||||
load_and_get_signal,
|
||||
timeline,
|
||||
unload_signal,
|
||||
])
|
||||
.run(tauri::generate_context!())
|
||||
|
|
Reference in a new issue