LAN-Tunes

buildscc | 08 Mar 2012 | | projects

Lan-Tunes is a collaborative multimedia server written in python by Allan Wirth that is licensed under the MIT License. You can see what we’ve been playing at http://www.last.fm/user/builds. Version 0.1 is planned for release by the end of March 2012. 0.1 Beta will be coming slightly before.

You can download the wrapper script here.

Contents

Repository

The bzr repository for Lan-Tunes can be found on Launchpad at http://launchpad.net/lan-tunes.

Bugs/TODO

To see the current bug list check the launchpad bug tracker at https://bugs.launchpad.net/lan-tunes.

Creating a new plugin

Creating new plugins for Lan-Tunes is easy. Plugins fall into two categories, frontends and backends. Backends plugins add new media types to display, whereas frontend plugins mostly either modify the playlist state or respond to changes in the playlist. For example, youtube is a backend plugin whereas last.fm is a frontend.

Frontend

Creating a new frontend plugin is easy. A frontend plugin is merely a module (or package, if the plugin requires multiple source files) that defines a class Plugin that subclasses FrontendPlugin (from src/frontendplugin.py). Plugin must have the same constructor signature as FrontendPlugin and must also call FrontendPlugin’s constructor. Frontend plugins are designed to run in their own thread, although they are not required to (for example, the lastfm plugin has no thread of its own).

Frontend plugins that require their own thread should override the functions run() and kill(). run() will be called in a separate thread, and calling kill from the main thread SHOULD cause run to return (and ideally join with it). Note: Because run will be in a separate thread, all calls to GUI methods must be made through the util.idle_add interface in order to avoid locking problems.

Frontend plugins can also connect to the methods of the playlistmanager object that they are passed in the constructor.

For an example of a simple, non-threaded plugin see src/frontends/lastfm/init.py.

For additional documentation see src/frontendplugin.py.

Backend

Backend plugins are slightly more complicated. Like a frontend plugin, a backend plugin is merely a module (or package) that defines a class Plugin that subclasses BackendPlugin (from src/backendplugin.py). Again, Plugin must have the same constructor signature as BackendPlugin and must call BackendPlugin’s constructor. Unlike frontend plugins, backend plugins do not explicitly have their own threads (although they can for playback).

The following methods of BackendPlugin must be overridden:

For a simple example of a backend plugin see /src/backends/youtube/init.py. For an example of a plugin that wraps the core VLC plugin see /src/backends/xhamster/init.py.

For additional documentation see /src/backendplugin.py and /README.


Older · View Archive (146)

Meeting Minutes for 2012-02-29

02/29/2012

Kyle Brogle

  • So new officer elections will be held the week after spring break, so submit tickets!

John-Nicholas Furst / Dan Gastler

  • The door is back in gear so talk to John to get in the database for swipe access. If the door jams, text Dan Gastler (if you don’t have his number, ask him in person). If you want to hack on the door, talk to Dan or someone else on the project.

George Silvis

Just a short update on computers, they are set to sleep to save some power/ temperature/ etc.

Monica Gribouski

For multitouch: we have to spend some time coating the plexiglass (this weekend). Show up and help!

Dan Gastler

BUILDS portal project: potentially make more of them, or somehow standardize them, and get some sort of inter-hackerspace portal art going.

Allan Wirth

Lantunes is now more stable than ever! On the wiki there’s a good guide for how to hack/use lantunes.

George Silvis

If you’re interested in porting a VBA (virtual boy advance, gameboy (advance) emulator) to linux and mac OS, talk to monica, george or john.

Chris Woodall

BUILDS Bot! 12 Ounce now can follow lines, yielding a successful project. BUILDS bot is now one step closer to creating a Robot Overlord. The next meeting is tomorrow night (3/1/2012) at 8pm.

Allan Wirth

BUILDS coding bee is set to be held the weekend after break. We are still accepting language suggestions, so talk to George or Allan if you’re interested.

Chris Woodall

Stop by this sunday (at 4pm) to travel to Sprout at Davis Square to check out the BOSS lab (Boston Open Source Science Lab) (Map (Directions from 700 Commonwealth aka Warren Towers)

Newer

BUILDSbot: 12 Ounce

BUILDSbot 12 Ounce is part of the overarching BUILDSbot project. The goal is to create a functional robot which can take commands from a USB serial connection (possibly move to a wireless connection eventually). The robot should also be capable of doing line following as its main function. USB connectivity is simply for testing and possibly to help simplify future wireless based communication schemes.