attempting to make async work

This commit is contained in:
Chris Cochrun 2024-12-13 23:04:59 -06:00
parent 5152e2ff3f
commit 4c352df050
2 changed files with 27 additions and 20 deletions

View file

@ -372,31 +372,38 @@ impl cosmic::Application for App {
None None
} }
fn update( fn update(&mut self, message: Message) -> Task<Message> {
&mut self,
message: Message,
) -> cosmic::Task<cosmic::app::Message<Message>> {
match message { match message {
Message::Present(message) => { Message::Present(message) => {
debug!(?message); debug!(?message);
let task = self.presenter.update(message);
if self.presentation_open { if self.presentation_open {
if let Some(video) = &mut self.presenter.video { if let Some(video) = &mut self.presenter.video {
video.set_muted(false); video.set_muted(false);
} }
} }
let task = self.presenter.update(message);
debug!("Past"); debug!("Past");
// let task = Task::perform(
// async { debug!("inside async") },
// |_| cosmic::app::Message::App(Message::None),
// );
// self.core.nav_bar_toggle(); // self.core.nav_bar_toggle();
// task.then(|x| { task.then(move |x| {
// debug!(?x);
// Task::none()
// })
let task = task.map(|x| {
debug!(?x); debug!(?x);
cosmic::app::Message::None Task::perform(
}); async move {
task println!("hi");
// Task::batch([task]) debug!(?x);
},
|_| cosmic::app::Message::App(Message::None),
)
})
// let task = task.map(|x| {
// debug!(?x);
// cosmic::app::Message::App(Message::None)
// });
// task.chain(Task::none())
// task
} }
Message::File(file) => { Message::File(file) => {
self.file = file; self.file = file;

View file

@ -111,10 +111,7 @@ impl Presenter {
} }
} }
pub fn update( pub fn update(&mut self, message: Message) -> Task<Message> {
&mut self,
message: Message,
) -> Task<cosmic::app::Message<Message>> {
match message { match message {
Message::NextSlide => { Message::NextSlide => {
debug!("next slide"); debug!("next slide");
@ -195,7 +192,7 @@ impl Presenter {
let _ = self.update(Message::EndAudio); let _ = self.update(Message::EndAudio);
} }
} }
op.map(|x| cosmic::app::Message::App(x)) op
} }
Message::EndVideo => { Message::EndVideo => {
// if self.current_slide.video_loop() { // if self.current_slide.video_loop() {
@ -252,7 +249,10 @@ impl Presenter {
debug!("hi"); debug!("hi");
start_audio(Arc::clone(&self.sink.1), audio); start_audio(Arc::clone(&self.sink.1), audio);
} }
Task::none() Task::perform(
async { debug!("inside async") },
|_| Message::None,
)
} }
Message::EndAudio => { Message::EndAudio => {
self.sink.1.stop(); self.sink.1.stop();