Skip to content

matthewn4444/Lightpack-Filter-and-API

Repository files navigation

Lightpack Filter & API

Author: Matthew Ng ([email protected])

Add Lights to the back of your TV! Use the Lightpack filter to have videos render color to the back of your TV in realtime!

Or you can program your own projects with your Lightpack device with the API!

Lightpack

Image from Lightpack's website

This includes two projects:

  1. Lightpack Filter for MPC-HC
  2. Lightpack C++ API (unofficial)

Lightpack Filter Installation

Lightpack Filter GUI

Choose either setup installation or unzip the package anywhere on your computer

Binaries (Windows x86/x64)

Go here for more information on setup and usage.

Source Code

Go here for compile and building instructions.

What is this?

Lightpack Concept/Device

Lightpack was a kickstarted project and the APIs were openned source. Users put lights on the back of their televisions and the computer can send colors to the lights, extending the picture's/video's experience. I have taken the open source software and created a C++ and Node.js API.

Lightpack Filter

The filter allows you to play a video with lightpack shown in realtime without any lag. You can play a video with Media player classic (MPC) and lightpack will update the colors of what is shown on the screen.

For more information, go here.

This filter only works on Windows.

More Device Support

I do not have any other devices besides Lightpack. If you want support for another device, you can email me if you can help me build it (I would mainly give you builds to test on your device).

C++ API

I have created a single API for C++ and Node.js to interface to the device and Prismatik. These APIs are cross-platform and should work on Windows, Mac and Linux.

For more information, go here.

Example Usage

#include <Lightpack.h>
#include <iostream>

using namespace std;
using namespace Lightpack;

#define HOST "127.0.0.1"
#define PORT 3636
#define APIKEY "{cb832c47-0a85-478c-8445-0b20e3c28cdd}"


int main()
{
    // Send colors to the device
    LedDevice device;
    if (device.open()) {
        cout << "Connected directly to the device" << endl;
        device.setBrightness(100);
        device.setColorToAll(255, 255, 0); // RGB value
    }
    else {
        cout << "Prismatik is probably running, try that" << endl;

        // Send colors via Prismatik
        PrismatikClient light;
        // Test all the functions in the Lightpack API
        if (light.connect(HOST, PORT, {}, APIKEY) == Lightpack::OK) {
            cout << "Connected to Prismatik"
            light.lock();
            light.setBrightness(100);
            light.setColorToAll(255, 255, 0);
        }
        else {
            cout << "USB not connected" << endl;
        }
    }
    return 0;
}

Check the wiki for the entire API