Skip to content

Would you be open to working with me and an app designer (I'd pay for them) to design a nice ui around your software #232

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 69 commits into
base: AsusAuraWindows
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
4097d18
Add Razer Blade Pro 2017 to supported devices under Linux
CalcProgrammer1 Aug 31, 2018
64a1d98
Development branch for using OpenAuraSDK's generic RGBController inte…
CalcProgrammer1 Aug 23, 2019
53b7fb2
Get OpenAuraSDK test branch building on Windows
CalcProgrammer1 Aug 23, 2019
b69add6
Update OpenAuraSDK
CalcProgrammer1 Sep 2, 2019
4473b8c
Generate effects per zone, single and linear zones supported
CalcProgrammer1 Sep 4, 2019
229b597
Multithreaded LED update function
CalcProgrammer1 Oct 4, 2019
06d3973
Update OpenAuraSDK submodule and build E1.31 support in Linux
CalcProgrammer1 Oct 27, 2019
edbef07
Add support for matrix devices in OpenAuraSDK branch, make orange and…
CalcProgrammer1 Oct 26, 2019
583b390
Update OpenAuraSDK submodule
CalcProgrammer1 Oct 27, 2019
532bc5d
Implement beginnings of OpenRGB SDK support
CalcProgrammer1 Apr 26, 2020
c8b6191
Send all controllers sequentially and let OpenRGB handle threading
CalcProgrammer1 Apr 26, 2020
9b167ae
Remove files that are no longer needed after switching to OpenRGB SDK
CalcProgrammer1 Apr 26, 2020
f77553d
Treat matrix devices as single zone for now
CalcProgrammer1 Apr 26, 2020
eee3978
Use tree view for device list and add columns for LED count and zone …
CalcProgrammer1 Apr 26, 2020
04b9dff
Add license (GPLv2)
CalcProgrammer1 Apr 26, 2020
72339e3
Resizable GUI
CalcProgrammer1 Apr 26, 2020
b50b983
Matrix effect support
CalcProgrammer1 Apr 26, 2020
650ddc1
Remove visual studio project and get the Qt project to build on Windo…
CalcProgrammer1 Apr 27, 2020
684dc2f
Use DeviceUpdateLEDs for now so that the threading behavior doesn't c…
CalcProgrammer1 Apr 27, 2020
082b4ee
Remove unnecessary loop for matrix devices
CalcProgrammer1 Apr 27, 2020
e4c36a2
Pull up OpenRGB network_devel branch to pull in nodelay changes
CalcProgrammer1 Apr 29, 2020
e6d48dd
Update OpenRGB submodule to use std::thread for client thread
CalcProgrammer1 Apr 29, 2020
bb7327d
Values of 0xFFFFFFFF in matrix map indicate unused slots. Don't upda…
CalcProgrammer1 May 1, 2020
b015629
Use std::thread for Keyboard Visualizer threads
CalcProgrammer1 May 3, 2020
a028a2c
Add box to enter IP and port of OpenRGB SDK server
CalcProgrammer1 May 6, 2020
f5e20f1
Allow multiple OpenRGB SDK client connections simultaneously
CalcProgrammer1 May 6, 2020
86fcdfc
Add support for MacOS
CalcProgrammer1 May 8, 2020
9481abd
Send client string
CalcProgrammer1 May 9, 2020
ef0c3d7
Update OpenRGB submodule to master
CalcProgrammer1 May 9, 2020
0bb0acb
Automatically reconnect to server if disconnected, display controller…
CalcProgrammer1 May 10, 2020
0b21986
Update client list whenever status changes
CalcProgrammer1 May 10, 2020
dc06fa9
Update OpenRGB submodule
CalcProgrammer1 May 10, 2020
3fda2ff
Add button to disconnect clients
CalcProgrammer1 May 14, 2020
47f2a72
Code cleanup for version 4.0
CalcProgrammer1 May 16, 2020
60daac6
Update version to 4.00 and move version definition to QMake project
CalcProgrammer1 May 16, 2020
cb12727
Set default delay to 25ms
CalcProgrammer1 May 16, 2020
917592b
Add functions for creating zone maps and use them to improve zone map…
CalcProgrammer1 May 16, 2020
cde4e88
Store the index map rather than regenerating it every cycle
CalcProgrammer1 May 17, 2020
d1190e4
Update OpenRGB submodule
CalcProgrammer1 May 17, 2020
9bcc40b
Add MacOS icon
CalcProgrammer1 May 17, 2020
f632365
Update README for OpenRGB change
CalcProgrammer1 May 17, 2020
d282267
Update README build section
CalcProgrammer1 May 19, 2020
f6e025a
Update OpenRGB submodule, update default port, and update client string
CalcProgrammer1 Jun 22, 2020
0266562
Update submodule and add GitLab CI configuration to build Windows 32/…
CalcProgrammer1 Jul 23, 2020
d7abd62
Add KV paths to include path
CalcProgrammer1 Jul 23, 2020
53ee93d
Replace jom with make
CalcProgrammer1 Jul 23, 2020
5f2e265
Fix make path
CalcProgrammer1 Jul 23, 2020
ca3f316
Add no_batch option and switch back to jom
CalcProgrammer1 Jul 23, 2020
f48e98d
Add GitLab CI configuration for project Windows settings
CalcProgrammer1 Jul 23, 2020
dd9d920
Add Debian packaging files
CalcProgrammer1 Jul 26, 2020
2b2bd78
Reenable settings file parsing and uncomment strtok_r usage, but use …
CalcProgrammer1 Jul 26, 2020
f9a7648
Fix Windows build by making pointer const
CalcProgrammer1 Jul 26, 2020
d8d76f2
Add GitLab CI Linux build target that produces an AppImage
CalcProgrammer1 Jul 31, 2020
5672c53
Make build-appimage.sh executable
CalcProgrammer1 Jul 31, 2020
a4fce7e
Fix file name in AppImage script
CalcProgrammer1 Jul 31, 2020
5aed324
Fix file name in Gitlab CI config
CalcProgrammer1 Jul 31, 2020
2d7cb0a
Add enable control for each device and initialize devices without a D…
CalcProgrammer1 Sep 1, 2020
069b218
Update linux-deploy path
CalcProgrammer1 Sep 8, 2020
1fa00fa
Handle device list updates
CalcProgrammer1 Oct 1, 2020
0043929
Fix settings file name
CalcProgrammer1 Oct 18, 2020
e0912c8
Use C++14 on MacOS
CalcProgrammer1 Mar 3, 2021
e521379
Fix README steps to build binary on Linux
RafaelKr Mar 9, 2021
8628d7c
Update icon path in README.md
SapuSeven Oct 10, 2020
2ac9c93
Create FUNDING.yml
CalcProgrammer1 Apr 9, 2021
ccd3b2e
Update OpenRGB submodule, use bundled AppImage creation tools
CalcProgrammer1 Apr 9, 2021
88499e1
Add MacOS CI
CalcProgrammer1 Apr 11, 2021
b50cc50
Add 32- and 64-bit Linux builds, AppImage and .deb
CalcProgrammer1 Apr 11, 2021
6a0b3d4
Remove KeyboardVisualizer network synchronization feature
CalcProgrammer1 Jan 19, 2025
8424448
Remove Release submodule, as it only contains 3.x and earlier release…
CalcProgrammer1 Jan 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use std::thread for Keyboard Visualizer threads
  • Loading branch information
CalcProgrammer1 committed May 3, 2020
commit b015629235aa9f768f4870c1409e3daae3d2a53a
80 changes: 8 additions & 72 deletions KeyboardVisualizerCommon/Visualizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,6 @@
\*---------------------------------------------------------*/

#include "Visualizer.h"

//Thread functions have different types in Windows and Linux
#ifdef WIN32
#define THREAD static void
#define THREADRETURN
#else
#define THREAD static void*
#define THREADRETURN return(NULL);
#endif

//Include pthread and Unix standard libraries if not building for Windows
#ifndef WIN32
#include "pthread.h"
#include "unistd.h"
#endif

#include <string.h>

#ifndef TRUE
Expand All @@ -39,43 +23,6 @@ bool ledstrip_mirror_y = false;
bool ledstrip_single_color = false;
int ledstrip_rotate_x = 0;

typedef struct
{
Visualizer* vis;
unsigned int controller;
} ledthread_arg_type;

//Threads for Visualizer.cpp
THREAD thread(void *param)
{
Visualizer* vis = static_cast<Visualizer*>(param);
vis->VisThread();
THREADRETURN
}

THREAD netconthread(void *param)
{
Visualizer* vis = static_cast<Visualizer*>(param);
vis->NetConnectThread();
THREADRETURN
}

THREAD netupdthread(void *param)
{
Visualizer* vis = static_cast<Visualizer*>(param);
vis->NetUpdateThread();
THREADRETURN
}

THREAD ledthread(void *param)
{
Visualizer* vis = static_cast<Visualizer*>(param);
vis->LEDUpdateThread();
THREADRETURN
}

//Visualizer class functions start here

Visualizer::Visualizer()
{

Expand Down Expand Up @@ -724,21 +671,10 @@ void Visualizer::StartThread()
//Set application running flag to TRUE before starting threads
running = true;

#ifdef WIN32
_beginthread(thread, 0, this);
_beginthread(netconthread, 0, this);
_beginthread(netupdthread, 0, this);
_beginthread(ledthread, 0, this);

#else
pthread_t threads[10];

pthread_create(&threads[0], NULL, &thread, this);
pthread_create(&threads[1], NULL, &netconthread, this);
pthread_create(&threads[2], NULL, &netupdthread, this);
pthread_create(&threads[3], NULL, &ledthread, this);

#endif
VisThread = new std::thread(&Visualizer::VisThreadFunction, this);
NetConnectThread = new std::thread(&Visualizer::NetConnectThreadFunction, this);
NetUpdateThread = new std::thread(&Visualizer::NetUpdateThreadFunction, this);
LEDUpdateThread = new std::thread(&Visualizer::LEDUpdateThreadFunction, this);
}

void Visualizer::Shutdown()
Expand Down Expand Up @@ -1058,7 +994,7 @@ void Visualizer::DrawPattern(VISUALIZER_PATTERN pattern, int bright, vis_pixels
}
}

void Visualizer::NetConnectThread()
void Visualizer::NetConnectThreadFunction()
{
while (1)
{
Expand Down Expand Up @@ -1087,7 +1023,7 @@ void Visualizer::NetConnectThread()
}
}

void Visualizer::NetUpdateThread()
void Visualizer::NetUpdateThreadFunction()
{
int counter = 0;
char buf[sizeof(fft_fltr)];
Expand Down Expand Up @@ -1166,7 +1102,7 @@ void Visualizer::NetUpdateThread()
}
}

void Visualizer::VisThread()
void Visualizer::VisThreadFunction()
{
while (running == true)
{
Expand Down Expand Up @@ -1415,7 +1351,7 @@ void Visualizer::VisThread()
}
}

void Visualizer::LEDUpdateThread()
void Visualizer::LEDUpdateThreadFunction()
{
while(1)
{
Expand Down
21 changes: 12 additions & 9 deletions KeyboardVisualizerCommon/Visualizer.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <fstream>
#include <string>
#include <vector>
#include <thread>

//Project includes
#include "VisualizerDefines.h"
Expand Down Expand Up @@ -81,12 +82,11 @@ class Visualizer
//Function to start thread
void StartThread();

//Visualizer Thread
void VisThread();

//Network Threads
void NetConnectThread();
void NetUpdateThread();
//Thread Functions
void LEDUpdateThreadFunction();
void NetConnectThreadFunction();
void NetUpdateThreadFunction();
void VisThreadFunction();

//Called when settings changed
void OnSettingsChanged();
Expand Down Expand Up @@ -195,6 +195,12 @@ class Visualizer
ALCdevice *device;
#endif

//Threads
std::thread * LEDUpdateThread;
std::thread * NetConnectThread;
std::thread * NetUpdateThread;
std::thread * VisThread;

//Background Step
float bkgd_step;

Expand Down Expand Up @@ -223,9 +229,6 @@ class Visualizer
unsigned char buffer[256];

void DrawSingleColorForeground(float amplitude, vis_pixels *fg_pixels, vis_pixels *out_pixels);

public:
void LEDUpdateThread();
};

#endif