mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
chore: add implementation planning for G635L/G835L support
This commit is contained in:
+53
-1
@@ -138,6 +138,10 @@ impl AnimeImage {
|
||||
match anime_type {
|
||||
AnimeType::GA401 => 0.3,
|
||||
AnimeType::GU604 => 0.28,
|
||||
// TODO: Calculate correct values for G635L and G835L.
|
||||
// Known values for G835L W*H is 34*68
|
||||
AnimeType::G635L => 0.28,
|
||||
AnimeType::G835L => 0.28,
|
||||
_ => 0.283,
|
||||
}
|
||||
}
|
||||
@@ -162,6 +166,20 @@ impl AnimeImage {
|
||||
/// ^ ------+
|
||||
/// first_x
|
||||
/// ```
|
||||
///
|
||||
/// TODO: add the cases for G635L and G835L
|
||||
/// This is how it looks like, but calculation may be a bit more complex
|
||||
/// ```text
|
||||
/// |\
|
||||
/// | \
|
||||
/// | \
|
||||
/// | \
|
||||
/// \ \
|
||||
/// \ \
|
||||
/// \ \
|
||||
/// \ \
|
||||
/// \____\
|
||||
/// ```
|
||||
fn first_x(anime_type: AnimeType, y: u32) -> u32 {
|
||||
match anime_type {
|
||||
AnimeType::GA401 => {
|
||||
@@ -221,6 +239,19 @@ impl AnimeImage {
|
||||
}
|
||||
38 - Self::first_x(anime_type, y) + y % 2
|
||||
}
|
||||
// TODO: Implement this
|
||||
// AnimeType::G635L => {
|
||||
// if y <= 11 {
|
||||
// return 34;
|
||||
// }
|
||||
// 39 - y / 2
|
||||
// }
|
||||
// AnimeType::G635E => {
|
||||
// if y <= 11 {
|
||||
// return 34;
|
||||
// }
|
||||
// 39 - y / 2
|
||||
// }
|
||||
_ => {
|
||||
if y <= 11 {
|
||||
return 34;
|
||||
@@ -235,8 +266,10 @@ impl AnimeImage {
|
||||
match anime_type {
|
||||
// 33.0 = Longest row LED count (physical) plus half-pixel offset
|
||||
AnimeType::GA401 => (33.0 + 0.5) * Self::scale_x(anime_type),
|
||||
|
||||
AnimeType::GU604 => (38.0 + 0.5) * Self::scale_x(anime_type),
|
||||
// TODO: Implement this
|
||||
// AnimeType::G635L => (34.0 + 0.5) * Self::scale_x(anime_type),
|
||||
// AnimeType::G835L => (34.0 + 0.5) * Self::scale_x(anime_type),
|
||||
_ => (35.0 + 0.5) * Self::scale_x(anime_type),
|
||||
}
|
||||
}
|
||||
@@ -246,6 +279,9 @@ impl AnimeImage {
|
||||
match anime_type {
|
||||
AnimeType::GA401 => 55,
|
||||
AnimeType::GU604 => 62,
|
||||
// TODO: Implement this
|
||||
// AnimeType::G635L => 68,
|
||||
// AnimeType::G835L => 68,
|
||||
_ => 61,
|
||||
}
|
||||
}
|
||||
@@ -256,6 +292,11 @@ impl AnimeImage {
|
||||
// 54.0 = End column LED count (physical) plus one dead pixel
|
||||
AnimeType::GA401 => (54.0 + 1.0) * Self::scale_y(anime_type),
|
||||
AnimeType::GU604 => 62.0 * Self::scale_y(anime_type),
|
||||
|
||||
// TODO: Implement this
|
||||
// AnimeType::G635L => (34.0 + 0.5) * Self::scale_y(anime_type),
|
||||
// AnimeType::G835L => (34.0 + 0.5) * Self::scale_y(anime_type),
|
||||
|
||||
// GA402 may not have dead pixels and require only the physical LED count
|
||||
_ => 61.0 * Self::scale_y(anime_type),
|
||||
}
|
||||
@@ -269,7 +310,18 @@ impl AnimeImage {
|
||||
1 | 3 => 35, // Some rows are padded
|
||||
_ => 36 - y / 2,
|
||||
},
|
||||
|
||||
// TODO: Implement this
|
||||
// AnimeType::G635L => match y {
|
||||
|
||||
// },
|
||||
// AnimeType::G835L => match y {
|
||||
|
||||
// },
|
||||
|
||||
// This seems redundant
|
||||
AnimeType::GU604 => AnimeImage::width(anime_type, y),
|
||||
|
||||
// GA402 does not have padding, equivalent to width
|
||||
_ => AnimeImage::width(anime_type, y),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user