Git Product home page Git Product logo

esacontroller's Introduction

ESA CONTROLLER

ESA Controller is a glue for some ESA related applications. In its current state, it can subscribe to run-data from Charleon's SpeedControl and pass ith through to the Youtube Upload Script by Oromit.

Further it will be able to take the youtube ID and make a new record on ESAVods.com with the run for people to find.

ESA Controller is a Node.js application built on Express. It uses no database, instead opting for a static configuration and responsive dataflow (very buzzwordy).

Usage

Install Node.js (Tested on Node v5.0.0 but no special features are used so both LTS and latest as of writing should work fine.)

To start

npm start

Defaults to using port 3333 (configurable).

Configuration

Configure the application by changing the values of default.json. It should be mostly self-explanatory. All config options are in there. Nothing is hidden.

esacontroller's People

Contributors

zephyyrr avatar btbn avatar

Watchers

James Cloos avatar  avatar

Forkers

zephyyrr

esacontroller's Issues

Write tests

Using Mocha and PhantomJS.
Both server-side and client-side.

'Save clip' button

Implement a 'clip big red button' that runs the segment combining script. Hopefully in the future it can also call a clip API on twitch (they've not made it yet)

From: current time -n
To: current time -n

Upload: no? This is mostly for showing locally on intermissions

We don't have a physical button this time but we can give the hosts a virtual button

Change YT logic to upload when next game starts

This will allow including all of the intermission at the end of youtube uploads.
Will probably require a change in SpeedControl to output an event when a new game starts.

This will also call for some kind of persistance since in some cases ESAController might need to be restarted during an intermission.

Also needs a "flush" command to manually upload the last game for last game and end of night for non-24/7 events.

Crop nudge buttons

+/- nudge buttons for 10, 25 and 100 pixel movements

Would make an adjustment half a second rather than 3 seconds. You're doing a lot of adjustments!

Recall presets

Preset storage is done.
Now we just need preset recalling.
Read file, and apply all devices accordingly to selected racks.

Add database to backend

This is something long overdue.
Store data for runtime in database.
Implement something like a persistent queue in DB.

Thinking PostgreSQL because i like PostgreSQL.
Something like Couch or Mongo could also work, but I like SQL databases better than NoSQL.

Auto image

When you select an in1606 source manually, it should send an 'auto image' command to the in1606 once the source has been selected

There should be an 'auto image' button in the in1606 area (could be called Reset Crop)

When you save a preset with in1606 settings you should be able to toggle whether to use the current cropping values, or just use auto image.

PC / HDMI console will be cropped perfectly by auto image
Analog will generally be using one of Edenal's manual cropping presets he noted down at DH

More metadata

We should be passing the following additional data to the upload script to build a more useful YouTube description:

Date/time of run beginning
Finished timer
Individual timers for each run
Additional runner social media links (we now scrape speedrun.com for flags, so we can grab any other data too)

Heartbeat

Heartbeat function between Speedcontrol and ESAController to pause the timer in the former if there's a loss of contact between the two (for example a reboot of jetengine) or a loss of internet connection to jetengine

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.