Skip to content

Commit bbcc690

Browse files
committed
chore: Update TODOs
1 parent 9955162 commit bbcc690

File tree

3 files changed

+50
-22
lines changed

3 files changed

+50
-22
lines changed

src/api/boblight.rs

+35-4
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,41 @@ impl ClientConnection {
4242
}
4343
}
4444

45-
fn set_priority(&mut self, priority: i32) {
45+
async fn set_priority(&mut self, priority: i32) {
4646
if priority < 128 || priority >= 254 {
47-
// TODO: Find first available priority
48-
self.priority = 128;
47+
self.priority = self
48+
.instance
49+
.current_priorities()
50+
.await
51+
.map(|priorities| {
52+
let mut used_priorities = priorities
53+
.iter()
54+
.map(|p| p.priority)
55+
.skip_while(|p| *p <= 128)
56+
.peekable();
57+
58+
for i in 128..255 {
59+
loop {
60+
match used_priorities.peek().cloned() {
61+
Some(used) if used == i => {
62+
// Current value is used, look at the next one
63+
used_priorities.next();
64+
break;
65+
}
66+
Some(used) if used < i => {
67+
used_priorities.next();
68+
continue;
69+
}
70+
_ => {
71+
return i;
72+
}
73+
}
74+
}
75+
}
76+
77+
128
78+
})
79+
.unwrap_or(128)
4980
} else {
5081
self.priority = priority;
5182
}
@@ -94,7 +125,7 @@ impl ClientConnection {
94125
_ => {}
95126
},
96127
message::SetArg::Priority(priority) => {
97-
self.set_priority(priority);
128+
self.set_priority(priority).await;
98129
}
99130
}
100131

src/instance/core.rs

-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ impl Core {
9898
// Update color data
9999
match message.data() {
100100
MuxedMessageData::SolidColor { color, .. } => {
101-
// TODO: Replace with fill once it's stabilized
102101
self.handle_color(*color);
103102
}
104103
MuxedMessageData::Image { image, .. } => {

src/models.rs

+15-17
Original file line numberDiff line numberDiff line change
@@ -778,10 +778,9 @@ pub struct MatrixLedConfig {
778778

779779
impl Default for MatrixLedConfig {
780780
fn default() -> Self {
781-
// TODO: Check those default values?
782781
Self {
783-
ledshoriz: 0,
784-
ledsvert: 0,
782+
ledshoriz: 1,
783+
ledsvert: 1,
785784
cabling: MatrixCabling::Snake,
786785
start: MatrixStart::TopLeft,
787786
}
@@ -1396,9 +1395,8 @@ pub enum ConfigError {
13961395
Meta(#[from] MetaError),
13971396
#[error("error loading user: {0}")]
13981397
User(#[from] UserError),
1399-
// TODO: Say which setting?
1400-
#[error("missing hyperion_inst field on instance setting")]
1401-
MissingHyperionInst,
1398+
#[error("missing hyperion_inst field on instance setting {0}")]
1399+
MissingHyperionInst(&'static str),
14021400
#[error("invalid JSON: {0}")]
14031401
Json(#[from] serde_json::Error),
14041402
}
@@ -1439,7 +1437,7 @@ impl Config {
14391437
.get_mut(
14401438
&setting
14411439
.hyperion_inst
1442-
.ok_or(ConfigError::MissingHyperionInst)?,
1440+
.ok_or(ConfigError::MissingHyperionInst("backgroundEffect"))?,
14431441
)
14441442
.unwrap()
14451443
.background_effect = Some(config)
@@ -1449,7 +1447,7 @@ impl Config {
14491447
.get_mut(
14501448
&setting
14511449
.hyperion_inst
1452-
.ok_or(ConfigError::MissingHyperionInst)?,
1450+
.ok_or(ConfigError::MissingHyperionInst("blackborderdetector"))?,
14531451
)
14541452
.unwrap()
14551453
.black_border_detector = Some(config)
@@ -1459,7 +1457,7 @@ impl Config {
14591457
.get_mut(
14601458
&setting
14611459
.hyperion_inst
1462-
.ok_or(ConfigError::MissingHyperionInst)?,
1460+
.ok_or(ConfigError::MissingHyperionInst("boblightServer"))?,
14631461
)
14641462
.unwrap()
14651463
.boblight_server = Some(config)
@@ -1469,7 +1467,7 @@ impl Config {
14691467
.get_mut(
14701468
&setting
14711469
.hyperion_inst
1472-
.ok_or(ConfigError::MissingHyperionInst)?,
1470+
.ok_or(ConfigError::MissingHyperionInst("color"))?,
14731471
)
14741472
.unwrap()
14751473
.color = Some(config)
@@ -1479,7 +1477,7 @@ impl Config {
14791477
.get_mut(
14801478
&setting
14811479
.hyperion_inst
1482-
.ok_or(ConfigError::MissingHyperionInst)?,
1480+
.ok_or(ConfigError::MissingHyperionInst("device"))?,
14831481
)
14841482
.unwrap()
14851483
.device = Some(config)
@@ -1489,7 +1487,7 @@ impl Config {
14891487
.get_mut(
14901488
&setting
14911489
.hyperion_inst
1492-
.ok_or(ConfigError::MissingHyperionInst)?,
1490+
.ok_or(ConfigError::MissingHyperionInst("effects"))?,
14931491
)
14941492
.unwrap()
14951493
.effects = Some(config)
@@ -1499,7 +1497,7 @@ impl Config {
14991497
.get_mut(
15001498
&setting
15011499
.hyperion_inst
1502-
.ok_or(ConfigError::MissingHyperionInst)?,
1500+
.ok_or(ConfigError::MissingHyperionInst("foregroundEffect"))?,
15031501
)
15041502
.unwrap()
15051503
.foreground_effect = Some(config)
@@ -1509,7 +1507,7 @@ impl Config {
15091507
.get_mut(
15101508
&setting
15111509
.hyperion_inst
1512-
.ok_or(ConfigError::MissingHyperionInst)?,
1510+
.ok_or(ConfigError::MissingHyperionInst("instCapture"))?,
15131511
)
15141512
.unwrap()
15151513
.instance_capture = Some(config)
@@ -1519,7 +1517,7 @@ impl Config {
15191517
.get_mut(
15201518
&setting
15211519
.hyperion_inst
1522-
.ok_or(ConfigError::MissingHyperionInst)?,
1520+
.ok_or(ConfigError::MissingHyperionInst("ledConfig"))?,
15231521
)
15241522
.unwrap()
15251523
.led_config = Some(config)
@@ -1529,7 +1527,7 @@ impl Config {
15291527
.get_mut(
15301528
&setting
15311529
.hyperion_inst
1532-
.ok_or(ConfigError::MissingHyperionInst)?,
1530+
.ok_or(ConfigError::MissingHyperionInst("leds"))?,
15331531
)
15341532
.unwrap()
15351533
.leds = Some(config)
@@ -1539,7 +1537,7 @@ impl Config {
15391537
.get_mut(
15401538
&setting
15411539
.hyperion_inst
1542-
.ok_or(ConfigError::MissingHyperionInst)?,
1540+
.ok_or(ConfigError::MissingHyperionInst("smoothing"))?,
15431541
)
15441542
.unwrap()
15451543
.smoothing = Some(config)

0 commit comments

Comments
 (0)