Skip to content

Commit d17b58d

Browse files
authored
Bevy 0.17 (#10)
1 parent 07786c2 commit d17b58d

File tree

9 files changed

+44
-42
lines changed

9 files changed

+44
-42
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- uses: dtolnay/rust-toolchain@stable
3737
- name: Install Dependencies
3838
if: runner.os == 'linux'
39-
run: sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libusb-1.0-0-dev libhidapi-dev
39+
run: sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libusb-1.0-0-dev libhidapi-dev libwayland-dev libxkbcommon-dev
4040
- name: Run cargo test
4141
run: cargo test
4242

Cargo.toml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bevy_streamdeck"
3-
version = "0.6.0"
3+
version = "0.7.0"
44
edition = "2024"
55
authors = ["François Mockers <[email protected]>"]
66
description = "Elgato Stream Deck plugin for Bevy"
@@ -28,15 +28,15 @@ assets = ["dep:bevy_asset"]
2828
# features = ["multi_threaded"]
2929

3030
[dependencies]
31-
bevy_ecs = { version = "0.16.0", default-features = false }
32-
bevy_app = { version = "0.16.0", default-features = false }
33-
bevy_input = { version = "0.16.0", default-features = false }
34-
bevy_tasks = { version = "0.16.0", default-features = false }
35-
bevy_color = { version = "0.16.0", default-features = false }
36-
bevy_math = { version = "0.16.0" }
37-
bevy_render = { version = "0.16.0", default-features = false, optional = true }
38-
bevy_asset = { version = "0.16.0", default-features = false, optional = true }
39-
bevy_image = { version = "0.16.0", default-features = false, optional = true }
31+
bevy_ecs = { version = "0.17", default-features = false }
32+
bevy_app = { version = "0.17", default-features = false }
33+
bevy_input = { version = "0.17", default-features = false }
34+
bevy_tasks = { version = "0.17", default-features = false }
35+
bevy_color = { version = "0.17", default-features = false }
36+
bevy_math = { version = "0.17" }
37+
bevy_render = { version = "0.17", default-features = false, optional = true }
38+
bevy_asset = { version = "0.17", default-features = false, optional = true }
39+
bevy_image = { version = "0.17", default-features = false, optional = true }
4040
streamdeck = { version = "0.9", default-features = false }
4141
crossbeam-channel = "0.5"
4242
image = { version = "0.25", optional = true }
@@ -45,7 +45,7 @@ glam = { version = "0.29" }
4545

4646
[dev-dependencies]
4747
rand = "0.8"
48-
bevy = { version = "0.16.0" }
48+
bevy = { version = "0.17" }
4949

5050
[[example]]
5151
name = "image"

README.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ app.add_plugin(StreamDeckPlugin);
2121
### Handling Input Events
2222

2323
Receive events from button presses (see [inputs example](https://github.com/vleue/bevy_streamdeck/blob/main/examples/inputs.rs)):
24+
2425
```rust
2526
fn print_streamdeck_events(mut streamdeck_input_events: EventReader<StreamDeckInput>) {
2627
for event in streamdeck_input_events.iter() {
@@ -32,6 +33,7 @@ fn print_streamdeck_events(mut streamdeck_input_events: EventReader<StreamDeckIn
3233
### Setting Button Colors
3334

3435
Set a button color (see [colors example](https://github.com/vleue/bevy_streamdeck/blob/main/examples/colors.rs)):
36+
3537
```rust
3638
fn set_color(streamdeck: Res<StreamDeck>) {
3739
streamdeck.set_key_color(1, Color::BLUE);
@@ -42,6 +44,7 @@ fn set_color(streamdeck: Res<StreamDeck>) {
4244
### Displaying Images
4345

4446
Display an image on a button (see [image example](https://github.com/vleue/bevy_streamdeck/blob/main/examples/image.rs)):
47+
4548
```rust
4649
fn set_image(streamdeck: Res<StreamDeck>, logo: Res<Logo>, images: Res<Assets<Image>>) {
4750
let handle: Handle<Image> = ...;
@@ -51,7 +54,6 @@ fn set_image(streamdeck: Res<StreamDeck>, logo: Res<Logo>, images: Res<Assets<Im
5154
}
5255
```
5356

54-
5557
## Platform-Specific Setup
5658

5759
### Linux
@@ -62,11 +64,12 @@ For Linux setup, please refer to the [rust-streamdeck getting started guide](htt
6264

6365
### Bevy Compatibility
6466

65-
|Bevy|bevy_streamdeck|
66-
|---|---|
67-
|0.16|0.6|
68-
|0.15|0.5|
69-
|0.14|0.4|
70-
|0.13|0.3|
71-
|0.9|0.2|
72-
|0.8|0.1|
67+
| Bevy | bevy_streamdeck |
68+
| ---- | --------------- |
69+
| 0.17 | 0.7 |
70+
| 0.16 | 0.6 |
71+
| 0.15 | 0.5 |
72+
| 0.14 | 0.4 |
73+
| 0.13 | 0.3 |
74+
| 0.9 | 0.2 |
75+
| 0.8 | 0.1 |

examples/animated.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use bevy::{asset::AssetPlugin, log::LogPlugin, prelude::*, render::texture::ImagePlugin};
1+
use bevy::{asset::AssetPlugin, log::LogPlugin, prelude::*};
22
use bevy_streamdeck::{StreamDeck, StreamDeckPlugin};
33

44
fn main() {

examples/demo.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use std::time::Duration;
22

33
use bevy::{
4-
app::AppExit, asset::AssetPlugin, log::LogPlugin, prelude::*, render::texture::ImagePlugin,
5-
time::common_conditions::on_timer,
4+
app::AppExit, asset::AssetPlugin, log::LogPlugin, prelude::*, time::common_conditions::on_timer,
65
};
76
use bevy_streamdeck::{ImageMode, StreamDeck, StreamDeckPlugin};
87
use rand::Rng;
@@ -36,7 +35,7 @@ fn main() {
3635
fn change_color(
3736
streamdeck: Res<StreamDeck>,
3837
time: Res<Time>,
39-
mut app_exit_events: EventWriter<AppExit>,
38+
mut app_exit: MessageWriter<AppExit>,
4039
) {
4140
if let Some(_) = streamdeck.kind() {
4241
let color = Color::hsl(
@@ -46,7 +45,7 @@ fn change_color(
4645
);
4746
streamdeck.set_key_color(1, color);
4847
if (time.elapsed_secs() / 5.0).cos() + 0.9995 < 0.0 {
49-
app_exit_events.send(AppExit::Success);
48+
app_exit.write(AppExit::Success);
5049
}
5150
}
5251
}

examples/image.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use bevy::{asset::AssetPlugin, log::LogPlugin, prelude::*, render::texture::ImagePlugin};
1+
use bevy::{asset::AssetPlugin, log::LogPlugin, prelude::*};
22
use bevy_streamdeck::{StreamDeck, StreamDeckPlugin};
33
use rand::Rng;
44

examples/inputs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ fn main() {
1212
.run();
1313
}
1414

15-
fn print_streamdeck_events(mut streamdeck_input_events: EventReader<StreamDeckInput>) {
16-
for event in streamdeck_input_events.read() {
15+
fn print_streamdeck_events(mut streamdeck_input: MessageReader<StreamDeckInput>) {
16+
for event in streamdeck_input.read() {
1717
info!("{:?}", event);
1818
}
1919
}

examples/whack_a_mole.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ fn whack(
111111
streamdeck_key: Res<ButtonInput<StreamDeckKey>>,
112112
streamdeck: Res<StreamDeck>,
113113
mut player: ResMut<Player>,
114-
mut app_exit_events: EventWriter<AppExit>,
114+
mut app_exit: MessageWriter<AppExit>,
115115
) {
116116
for (entity, mole) in moles.iter() {
117117
if streamdeck_key.just_pressed(StreamDeckKey(mole.key)) {
@@ -123,15 +123,15 @@ fn whack(
123123
info!("Mega ouch!");
124124
if player.lives == 0 {
125125
info!("You lost!");
126-
app_exit_events.send(AppExit::error());
126+
app_exit.write(AppExit::error());
127127
}
128128
}
129129
MoleType::Bad => {
130130
player.lives = player.lives.saturating_sub(1);
131131
info!("Ouch!");
132132
if player.lives == 0 {
133133
info!("You lost!");
134-
app_exit_events.send(AppExit::error());
134+
app_exit.write(AppExit::error());
135135
}
136136
}
137137
MoleType::Good => {

src/lib.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::time::Duration;
33
use bevy_app::{App, AppExit, Last, Plugin, PreStartup, PreUpdate};
44
pub use bevy_color::{Color, ColorToComponents, LinearRgba};
55
use bevy_ecs::{
6-
event::{Event, EventReader, EventWriter},
6+
message::{Message, MessageReader, MessageWriter},
77
resource::Resource,
88
system::{Commands, Res, ResMut},
99
};
@@ -22,7 +22,7 @@ pub struct StreamDeckPlugin;
2222

2323
impl Plugin for StreamDeckPlugin {
2424
fn build(&self, app: &mut App) {
25-
app.add_event::<StreamDeckInput>()
25+
app.add_message::<StreamDeckInput>()
2626
.init_resource::<ButtonInput<StreamDeckKey>>()
2727
.add_systems(PreStartup, listener)
2828
.add_systems(PreUpdate, receiver)
@@ -33,7 +33,7 @@ impl Plugin for StreamDeckPlugin {
3333
#[derive(Clone, Copy, Hash, PartialEq, Eq)]
3434
pub struct StreamDeckKey(pub u8);
3535

36-
#[derive(Event, Debug)]
36+
#[derive(Message, Debug)]
3737
pub enum StreamDeckInput {
3838
Press(u8),
3939
Release(u8),
@@ -122,11 +122,11 @@ fn listener(mut commands: Commands) {
122122
if lost_connection {
123123
streamdeck = None;
124124
}
125-
if streamdeck.is_none() {
126-
if let Ok(new_streamdeck) = streamdeck::StreamDeck::connect(0x0fd9, 0x0063, None) {
127-
let _ = event_tx.send(StreamDeckEvent::Connected(new_streamdeck.kind()));
128-
streamdeck = Some(new_streamdeck);
129-
}
125+
if streamdeck.is_none()
126+
&& let Ok(new_streamdeck) = streamdeck::StreamDeck::connect(0x0fd9, 0x0063, None)
127+
{
128+
let _ = event_tx.send(StreamDeckEvent::Connected(new_streamdeck.kind()));
129+
streamdeck = Some(new_streamdeck);
130130
}
131131
}
132132
});
@@ -142,7 +142,7 @@ fn receiver(
142142
mut streamdeck: ResMut<StreamDeck>,
143143
internal: Res<StreamDeckInternal>,
144144
mut inputs: ResMut<ButtonInput<StreamDeckKey>>,
145-
mut input_events: EventWriter<StreamDeckInput>,
145+
mut input_events: MessageWriter<StreamDeckInput>,
146146
) {
147147
inputs.clear();
148148
for from_stream in internal.events.try_iter() {
@@ -262,7 +262,7 @@ impl StreamDeck {
262262
}
263263
}
264264

265-
fn exit_on_exit(streamdeck: Res<StreamDeck>, mut exit_events: EventReader<AppExit>) {
265+
fn exit_on_exit(streamdeck: Res<StreamDeck>, mut exit_events: MessageReader<AppExit>) {
266266
if exit_events.read().next().is_some() {
267267
let _ = streamdeck.orders.send(StreamDeckOrder::Reset);
268268
let _ = streamdeck.orders.send(StreamDeckOrder::Exit);

0 commit comments

Comments
 (0)