Giter VIP home page Giter VIP logo

emufun's People

Contributors

toxicfrog avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

emufun's Issues

Remote control capability

It would be nice to be able to control emufun over the network, without needing a physical controller. We can already do this with VLC, after all.

First draft design: spawn a background thread with a listen socket. When it gets a command message, pass that to the main thread, which checks it (probably in the input event dispatcher?) once per frame. So then you can send commands as event names like "up" or "key_r" and boosh!

Better error handling

At the moment, when an unexpected error occurs, emufun goes to the love2d error reporting screen, which is (a) hard to read and (b) doesn't let you do anything except quit the program. It would be nice to gracefully recover from errors, for example, by displaying the error message but then giving the user the option to return to the top of the library.

Obviously not all errors can be recovered from, but for ones that can this would be nice.

[feature] implement Kitten Mode

Suzie has a habit of flopping on the keyboard early in the morning. In the best case this means we wake up three hours early to the sound of Jeremy Clarkson explaining why caravans are the devil. In the worst case it means she finds the quit button and spends the next hour exploring the contents of my desktop. Emufun needs a mode that can be toggled on and off from the controller which disallows everything except controller input.

Version upgrades are an abomination unto Nuggan

Specifically, EmuFun does not cope well when upgrades change aspects of the configuration files, and throws.

For minor config updates (new keys), it should have sensible defaults. For major updates, where compatibility cannot be automatically guaranteed, it should produce sensible error messages.

In the former case it would also be nice to have it append the new keys to the config file - we can't just re-output the entire thing from the computed results, because the user might have interesting logic, but appending should be safe. This also needs some kind of versioning of the config file.

There should probably be a more general meta-bug for turning throws into error messages, since right now there's not really any recovery possible if an error occurs.

Log completed files

EmuFun should keep track of which files have been viewed (using a .emufun-watched file or similar). This is mainly useful when watching TV series, rather than when playing games (which it turns out is what we've mostly be using emufun for after all).

It should also be possible to manually toggle the watched status of something. This may require a UI redesign.

Display loading indicator

It should be immediately obvious when EmuFun is loading something. Otherwise it's not clear whether it's doing a big load, or hasn't registered your input.

Improve directory scanning performance

Right now there is a long delay while emufun (re)scans a directory, especially when accessing a network mount from windows. It would be nice if it could scan the media directory in the background during calibration.

Love2d has limited threading support, so it could spawn one or more threads to do filesystem scans in the background while the user is calibrating or scrolling through the directory or the like.

The hard part is communicating the results back to the main thread; in particular, love2d doesn't support transmitting tables between threads. I can either find a workaround, or submit a patch that adds that feature.

Latter requires storing the table in C/space because love2d ITC routines are mostly asynchronous. Blergh.

UI rework

The current user interface is kind of clunky. It would be nice to be able to do more things to items than "activate". Perhaps this is as simple as adding a submenu to each object containing more options, perhaps it needs a more fundamental redesign.

Intermittent crashes on windows

This is believed to be an issue with luafilesystem on windows. Solutions are probably to use a custom build of love2d with luafilesystem linked into it directly, or somehow avoid the use of luafilesystem entirely.

Clear event buffer on finishing loading

When EmuFun is loading something, it continues to buffer events. This means that if the user presses more keys, they will all take effect as soon as it finishes loading, often with unwanted results.
#13 should address this somewhat by making it clear that emufun has actually registered the input, but this will help deal with accidental keystrokes as well.

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.