Skip to content

Commit

Permalink
a little cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
F0903 committed Sep 10, 2024
1 parent 83ebac3 commit 8f92e41
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 12 deletions.
15 changes: 10 additions & 5 deletions autopower_proxy/src/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ use serde::{Deserialize, Serialize};
use std::{
fs::File,
io::{BufReader, BufWriter, Write},
path::{Path, PathBuf},
};

const LOGGER: Logger = Logger::new("power_config", "autopower_proxy");
Expand Down Expand Up @@ -44,15 +45,16 @@ impl Default for PowerConfig {
}

impl PowerConfig {
fn get(path: &str) -> Result<Self, ConfigError> {
LOGGER.debug("Reading power config...");
fn get(path: &Path) -> Result<Self, ConfigError> {
LOGGER.debug(format!("Reading power config at {}", path.display()));

let fs = File::open(path).map_err(|_| ConfigError::CouldNotLoadOrCreate)?;
let buf = BufReader::new(fs);
serde_json::from_reader(buf).map_err(|_| ConfigError::CouldNotLoadOrCreate)
}

fn new(path: &str) -> Result<Self, ConfigError> {
LOGGER.debug("Writing new power config...");
fn new(path: &Path) -> Result<Self, ConfigError> {
LOGGER.debug(format!("Writing new power config at {}", path.display()));
let new_config = PowerConfig::default();
let fs = File::create(path).map_err(|_| ConfigError::CouldNotLoadOrCreate)?;
let mut buf = BufWriter::new(fs);
Expand All @@ -64,7 +66,10 @@ impl PowerConfig {

pub fn get_or_create() -> Result<Self, ConfigError> {
const CONFIG_PATH: &str = "./config.json";
Self::get(CONFIG_PATH).or_else(|_| Self::new(CONFIG_PATH))
let path = PathBuf::from(CONFIG_PATH)
.canonicalize()
.map_err(|_| ConfigError::CouldNotLoadOrCreate)?;
Self::get(&path).or_else(|_| Self::new(&path))
}

pub fn get_wired_config(&self) -> &StateConfig {
Expand Down
46 changes: 46 additions & 0 deletions src/debug_utils.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
use autopower_shared::logging::Logger;
use windows::Win32::UI::WindowsAndMessaging;

pub fn print_power_event_type(event_type: u32, logger: &Logger) {
match event_type {
WindowsAndMessaging::PBT_APMOEMEVENT => logger.debug("Power event was PBT_APMOEMEVENT"),
WindowsAndMessaging::PBT_APMPOWERSTATUSCHANGE => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}
WindowsAndMessaging::PBT_APMQUERYSTANDBY => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}
WindowsAndMessaging::PBT_APMQUERYSTANDBYFAILED => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}
WindowsAndMessaging::PBT_APMQUERYSUSPEND => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}
WindowsAndMessaging::PBT_APMQUERYSUSPENDFAILED => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}
WindowsAndMessaging::PBT_APMRESUMEAUTOMATIC => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}
WindowsAndMessaging::PBT_APMRESUMECRITICAL => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}
WindowsAndMessaging::PBT_APMRESUMESTANDBY => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}
WindowsAndMessaging::PBT_APMRESUMESUSPEND => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}

WindowsAndMessaging::PBT_APMSTANDBY => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}
WindowsAndMessaging::PBT_APMSUSPEND => {
logger.debug("Power event was PBT_APMPOWERSTATUSCHANGE")
}
WindowsAndMessaging::PBT_POWERSETTINGCHANGE => {
logger.debug("Power event was PBT_POWERSETTINGCHANGE")
}
_ => logger.debug("Power event was unknown."),
}
}
1 change: 1 addition & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use autopower_shared::logging::Logger;

mod debug_utils;
mod handler_data;
mod proxy;
mod services;
Expand Down
12 changes: 5 additions & 7 deletions src/services/power_service.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use super::WindowsService;
use crate::{handler_data::HandlerData, proxy::Proxy};
use crate::{debug_utils::print_power_event_type, handler_data::HandlerData, proxy::Proxy};
use autopower_shared::{
logging::Logger,
proxy_command::{PowerConfigSelection, ProxyCommand},
Expand All @@ -25,7 +25,7 @@ use windows::{
SystemServices::GUID_ACDC_POWER_SOURCE,
Threading::{CreateEventW, SetEvent, WaitForSingleObject, INFINITE},
},
UI::WindowsAndMessaging::{self, PBT_APMPOWERSTATUSCHANGE, PBT_POWERSETTINGCHANGE},
UI::WindowsAndMessaging::{self, PBT_POWERSETTINGCHANGE},
},
};

Expand Down Expand Up @@ -99,16 +99,14 @@ impl PowerService {
event_data,
} = data;

//temp debug
if event_type == PBT_APMPOWERSTATUSCHANGE {
LOGGER.debug("Power event was PBT_APMPOWERSTATUSCHANGE");
}

if event_type != PBT_POWERSETTINGCHANGE {
LOGGER.debug("Power event was not PBT_POWERSETTINGCHANGE");
return;
}

#[cfg(debug_assertions)]
print_power_event_type(event_type, &LOGGER);

let pbs = event_data as *mut POWERBROADCAST_SETTING;
unsafe {
if (*pbs).PowerSetting != GUID_ACDC_POWER_SOURCE {
Expand Down

0 comments on commit 8f92e41

Please sign in to comment.