commit - 207f666c3d7cf037442177517c1f9be4086753e5
commit + fb76ff78ffe64b14cdb01c182c210501ad069e77
blob - b9b187c2ce5a5fa21504decfef318f828a0a13f5
blob + 2192435fd61b5e457a083495f038da4950d89e5e
--- Cargo.lock
+++ Cargo.lock
"once_cell",
"version_check",
"zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
]
[[package]]
checksum = "822c4000301ac390e65995c62207501e3ef800a1fc441df913a5e8e4dc374816"
dependencies = [
"num-traits",
+]
+
+[[package]]
+name = "clap-verbosity"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7bf75a8e0407a558bd7e8e7919baa352e21fb0c1c7702a63c853f2277c4c63"
+dependencies = [
+ "clap",
+ "log",
+ "serde",
]
[[package]]
]
[[package]]
+name = "env_filter"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0"
+dependencies = [
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.11.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
+[[package]]
name = "equivalent"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
[[package]]
name = "iced"
"anyhow",
"clap",
"clap-num",
+ "clap-verbosity",
"cosmic-text",
+ "env_logger",
"image 0.25.5",
"itertools 0.14.0",
+ "log",
"open",
"ppa6",
]
"getrandom 0.2.15",
"libredox",
"thiserror 1.0.69",
+]
+
+[[package]]
+name = "regex"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
]
[[package]]
+name = "regex-automata"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
+
+[[package]]
name = "renderdoc-sys"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
blob - 867716caa94b36a848fa267a7d41752729fd7012
blob + 96dea95ed7d82307d30c22533c7b5efe2ab3b0bd
--- ppa6-print/Cargo.toml
+++ ppa6-print/Cargo.toml
itertools = "0.14.0"
open = "5.3.2"
ppa6.workspace = true
+env_logger = "0.11.6"
+clap-verbosity = "2.1.0"
+log = "0.4.25"
blob - 485ff57e6e2db8bcc9b0f363fe9de846f0aaff9c
blob + 440bb5d975d986111bc18f835dc355ea4a65dcd0
--- ppa6-print/src/main.rs
+++ ppa6-print/src/main.rs
use anyhow::Result;
use clap::Parser;
use clap_num::maybe_hex;
+use clap_verbosity::Verbosity;
use cosmic_text::{Attrs, Buffer, Color, FontSystem, Metrics, Shaping, SwashCache};
use image::{imageops::{dither, ColorMap, FilterType}, DynamicImage, GrayImage, ImageFormat, ImageReader, Luma, RgbImage};
use ppa6::{usb_context, Document, Printer};
/// Adjust constrast, positive values increase contrast, negative values decrease contrast
#[arg(short, long, default_value_t = 0.0)]
contrast: f32,
+
+ #[command(flatten)]
+ verbose: Verbosity,
}
struct BlackWhiteMap(u8);
fn main() -> Result<()> {
let cli = Cli::parse();
+ env_logger::builder()
+ .filter_level(cli.verbose.log_level_filter())
+ .init();
let data = if cli.file == Path::new("-") {
let mut data = Vec::new();
let ctx = usb_context()?;
let mut printer = Printer::find(&ctx)?;
+ log::info!("IP: {}", printer.get_ip()?);
+ log::info!("Firmware: {}", printer.get_firmware()?);
+ log::info!("Serial: {}", printer.get_serial()?);
+ log::info!("Hardware: {}", printer.get_hardware()?);
+ log::info!("Name: {}", printer.get_name()?);
+ log::info!("MAC: {:x?}", printer.get_mac()?);
+ log::info!("Battery: {}%", printer.get_battery()?);
+
+
for i in 0..cli.num {
printer.print(&doc, cli.feed && i == (cli.num - 1))?;
}