Publish LumaOps source

This commit is contained in:
LumaOps release export
2026-09-03 01:18:36 +02:00
commit 7f1c0e5f71
2363 changed files with 501543 additions and 0 deletions
@@ -0,0 +1,46 @@
/*---------------------------------------------------------*\
| PalitGPUController.cpp |
| |
| Driver for Palit GPU |
| |
| Manatsawin Hanmongkolchai 11 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "PalitGPUController.h"
PalitGPUController::PalitGPUController(i2c_smbus_interface* bus, palit_dev_id dev, std::string dev_name)
{
this->bus = bus;
this->dev = dev;
this->name = dev_name;
}
PalitGPUController::~PalitGPUController()
{
}
std::string PalitGPUController::GetDeviceLocation()
{
std::string return_string(bus->device_name);
char addr[5];
snprintf(addr, 5, "0x%02X", dev);
return_string.append(", address ");
return_string.append(addr);
return("I2C: " + return_string);
}
std::string PalitGPUController::GetName()
{
return(name);
}
void PalitGPUController::SetDirect(unsigned char red, unsigned char green, unsigned char blue)
{
// NvAPI_I2CWriteEx: Dev: 0x08 RegSize: 0x01 Reg: 0x03 Size: 0x04 Data: 0xFF 0x00 0x00 0xFF
uint8_t values[] = {red, green, blue, 0xFF};
bus->i2c_smbus_write_i2c_block_data(dev, PALIT_GPU_REG_LED, sizeof(values), values);
}
@@ -0,0 +1,44 @@
/*---------------------------------------------------------*\
| PalitGPUController.h |
| |
| Driver for Palit GPU |
| |
| Manatsawin Hanmongkolchai 11 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include <string>
#include "i2c_smbus.h"
typedef unsigned char palit_dev_id;
enum
{
PALIT_GPU_MODE_DIRECT = 0x00,
};
enum
{
PALIT_GPU_REG_LED = 0x03,
};
class PalitGPUController
{
public:
PalitGPUController(i2c_smbus_interface* bus, palit_dev_id dev, std::string dev_name);
~PalitGPUController();
std::string GetDeviceLocation();
std::string GetName();
void SetDirect(unsigned char red, unsigned char green, unsigned char blue);
private:
i2c_smbus_interface* bus;
palit_dev_id dev;
std::string name;
};
@@ -0,0 +1,64 @@
/*---------------------------------------------------------*\
| PalitGPUControllerDetect.cpp |
| |
| Detector for Palit GPU |
| |
| Manatsawin Hanmongkolchai 11 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include "Detector.h"
#include "PalitGPUController.h"
#include "RGBController_PalitGPU.h"
#include "i2c_smbus.h"
#include "pci_ids.h"
/******************************************************************************************\
* *
* DetectPalitGPUControllers *
* *
* Detect Palit GPU controllers on the enumerated I2C busses at address 0x49. *
* *
* bus - pointer to i2c_smbus_interface where Palit GPU device is connected *
* dev - I2C address of Palit GPU device *
* * *
* Ligolas Neo Malicdem - Added 1060, 1070, 1070ti support *
\******************************************************************************************/
void DetectPalitGPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name)
{
if(bus->port_id != 1)
{
return;
}
/*-----------------------------------------------------*\
| Check for PALIT string |
\*-----------------------------------------------------*/
const uint8_t palit[] = {'P', 'A', 'L', 'I', 'T'};
for(size_t i = 0; i < sizeof(palit); i++)
{
int32_t letter = bus->i2c_smbus_read_byte_data(i2c_addr, 0x07 + (u8)i);
if(palit[i] != letter)
{
return;
}
}
PalitGPUController* controller = new PalitGPUController(bus, i2c_addr, name);
RGBController_PalitGPU* rgb_controller = new RGBController_PalitGPU(controller);
ResourceManager::get()->RegisterRGBController(rgb_controller);
} /* DetectPalitGPUControllers() */
REGISTER_I2C_PCI_DETECTOR("Palit GeForce GTX 1060", DetectPalitGPUControllers, NVIDIA_VEN, NVIDIA_GTX1060_DEV, NVIDIA_SUB_VEN, NVIDIA_GTX1060_DEV, 0x08);
REGISTER_I2C_PCI_DETECTOR("Palit GeForce GTX 1070", DetectPalitGPUControllers, NVIDIA_VEN, NVIDIA_GTX1070_DEV, NVIDIA_SUB_VEN, NVIDIA_GTX1070_DEV, 0x08);
REGISTER_I2C_PCI_DETECTOR("Palit GeForce GTX 1070 Ti", DetectPalitGPUControllers, NVIDIA_VEN, NVIDIA_GTX1070TI_DEV, NVIDIA_SUB_VEN, NVIDIA_GTX1070TI_DEV, 0x08);
REGISTER_I2C_PCI_DETECTOR("Palit GeForce GTX 1080", DetectPalitGPUControllers, NVIDIA_VEN, NVIDIA_GTX1080_DEV, NVIDIA_SUB_VEN, NVIDIA_GTX1080_DEV, 0x08);
REGISTER_I2C_PCI_DETECTOR("Palit GeForce GTX 1080 Ti", DetectPalitGPUControllers, NVIDIA_VEN, NVIDIA_GTX1080TI_DEV, NVIDIA_SUB_VEN, NVIDIA_GTX1080TI_DEV, 0x08);
@@ -0,0 +1,113 @@
/*---------------------------------------------------------*\
| RGBController_PalitGPU.cpp |
| |
| RGBController for Palit GPU |
| |
| Manatsawin Hanmongkolchai 11 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#include "RGBController_PalitGPU.h"
/**------------------------------------------------------------------*\
@name Palit GPU
@category GPU
@type I2C
@save :x:
@direct :white_check_mark:
@effects :x:
@detectors DetectPalitGPUControllers
@comment
\*-------------------------------------------------------------------*/
RGBController_PalitGPU::RGBController_PalitGPU(PalitGPUController* controller_ptr)
{
controller = controller_ptr;
name = controller->GetName();
vendor = "Palit";
description = "Legacy Palit RGB GPU Device";
location = controller->GetDeviceLocation();
type = DEVICE_TYPE_GPU;
mode Direct;
Direct.name = "Direct";
Direct.value = PALIT_GPU_MODE_DIRECT;
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR;
Direct.color_mode = MODE_COLORS_PER_LED;
modes.push_back(Direct);
SetupZones();
// Initialize active mode
active_mode = 0;
}
void RGBController_PalitGPU::SetupZones()
{
/*---------------------------------------------------------*\
| This device only has one LED, so create a single zone and |
| LED for it |
\*---------------------------------------------------------*/
zone* new_zone = new zone();
led* new_led = new led();
new_zone->name = "GPU Zone";
new_zone->type = ZONE_TYPE_SINGLE;
new_zone->leds_min = 1;
new_zone->leds_max = 1;
new_zone->leds_count = 1;
new_zone->matrix_map = NULL;
new_led->name = "GPU LED";
/*---------------------------------------------------------*\
| Push the zone and LED on to device vectors |
\*---------------------------------------------------------*/
leds.push_back(*new_led);
zones.push_back(*new_zone);
SetupColors();
}
void RGBController_PalitGPU::ResizeZone(int /*zone*/, int /*new_size*/)
{
/*---------------------------------------------------------*\
| This device does not support resizing zones |
\*---------------------------------------------------------*/
}
void RGBController_PalitGPU::DeviceUpdateLEDs()
{
DeviceUpdateMode();
}
void RGBController_PalitGPU::UpdateZoneLEDs(int /*zone*/)
{
DeviceUpdateLEDs();
}
void RGBController_PalitGPU::UpdateSingleLED(int /*led*/)
{
DeviceUpdateLEDs();
}
void RGBController_PalitGPU::DeviceUpdateMode()
{
RGBColor color = colors[0];
unsigned char r = RGBGetRValue(color);
unsigned char g = RGBGetGValue(color);
unsigned char b = RGBGetBValue(color);
switch(modes[active_mode].value)
{
case PALIT_GPU_MODE_DIRECT:
controller->SetDirect(r, g, b);
break;
default:
break;
}
}
@@ -0,0 +1,33 @@
/*---------------------------------------------------------*\
| RGBController_PalitGPU.h |
| |
| RGBController for Palit GPU |
| |
| Manatsawin Hanmongkolchai 11 Apr 2023 |
| |
| This file is part of the OpenRGB project |
| SPDX-License-Identifier: GPL-2.0-or-later |
\*---------------------------------------------------------*/
#pragma once
#include "RGBController.h"
#include "PalitGPUController.h"
class RGBController_PalitGPU : public RGBController
{
public:
RGBController_PalitGPU(PalitGPUController* controller_ptr);
void SetupZones();
void ResizeZone(int zone, int new_size);
void DeviceUpdateLEDs();
void UpdateZoneLEDs(int zone);
void UpdateSingleLED(int led);
void DeviceUpdateMode();
private:
PalitGPUController* controller;
};