From 3ee2c5c7dcd143387f858f629e341259f9fc746d Mon Sep 17 00:00:00 2001 From: Enoch OfficePC Date: Wed, 13 Sep 2023 22:31:25 -0600 Subject: [PATCH] Documentation Updates --- README.md | 12 +++++++++--- screenshot.png | Bin 11466 -> 14115 bytes 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6f16ce3..e3117cb 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,17 @@ The program is structured as a simple GUI that allows you to choose which parts ![App screenshot](screenshot.png) -- The blue square surrounds the `Test` button. This button will cause the lights to flicker. This is useful for identifying which light corresponds to which IP address when you're setting things up. +- **Test Button** - This button will cause the lights to flicker. This is useful for identifying which light corresponds to which IP address when you're setting things up. -- The red square allows you to choose which part of the screen each light should sync with. You can choose from the following options: "Full", "Left Half", "Right Half", "Top Half", "Bottom Half". +- **Red square Radio Buttons** - allows you to choose which part of the screen each light should sync with. You can choose from the following options: "Full", "Left Half", "Right Half", "Top Half", "Bottom Half". -- The `Run` button at the bottom of the app starts the screen syncing process. Once this is clicked, each selected light will start mirroring the colors of its assigned screen area. However, please note that this feature is currently a little buggy. Once the screen syncing process has been started, you won't be able to minimize the app window. We're working on fixing this in future updates! +- **Run** - run button starts the screen color sync. + +- **Update Frequency** - time to wait between each sync. Better performance when it set to 0, but it increases CPU/Network usage + +- **Color Processing Algorithm** - Choice of algorithm to use to process colors. + - Median - middle color sort by RGB intensity + - LeVibrant - chooses more vibrabt colors. Example, light saber swords in a fight scene. *Significantly Better in my opinion* ## Installation diff --git a/screenshot.png b/screenshot.png index cdc1cd8381c8e525de22fbc1be0e321e345d1dfe..993c245fb7aab94b3e6181e519551421f4255c5f 100644 GIT binary patch literal 14115 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 bpOK>Cd3_<(Iz@bcjHLWZU7