PDA

View Full Version : TinySC - plugins



Paul Webster
2009-09-03, 12:53
Is it expected to be possible to add add-ins to TinySC.
Without the web interface it will be harder - but given that there was no web interface to add add-ins before then it could still be possible.

Will the discussion around this topic now move into the public beta area rather than a private area?

Mark Lanctot
2009-09-03, 12:54
TinySC won't support plugins.

Some plugins will be supported on SN though.

autopilot
2009-09-03, 13:28
TinySC won't support plugins.



Not officially, as they might slow things down. but they can be installed. I have installed a few, inc iplayer. No web interface can be a problem for some though.

epoch1970
2009-09-03, 14:23
TinySC won't support plugins.

Some plugins will be supported on SN though.

I hope IR blaster (and the like) can be supported.

peterw
2009-09-03, 14:40
I hope IR blaster (and the like) can be supported.

One benefit of the SqueezeOS/SqueezePlay platform upon which Touch and Radio are based is the ability to do a lot of this stuff in "applets" that run on the Squeezebox itself, and therefore can work on SqueezeNetwork.

IR blaster is a rather primitive example of what should be possible: Touch supports a number of common USB-to-serial adapters out of the box, so with $15 worth of cabling (and a 3rd party applet), your Touch could directly control any A/V receiver or amp that has an RS232 interface -- precise volume control, amp status polling, lots of nice stuff.

mherger
2009-09-03, 20:32
> Not officially, as they might slow things down. but they can be
> installed. I have installed a few, inc iplayer. No web interface can be
> a problem for some though.

Some plugins might need a bit of work to support the web less mode best. I
hope to come up with some descriptions what needs to be done once we
restart working on "tiny SC".

erland
2009-09-04, 09:54
> Not officially, as they might slow things down. but they can be
> installed. I have installed a few, inc iplayer. No web interface can be
> a problem for some though.

Some plugins might need a bit of work to support the web less mode best. I
hope to come up with some descriptions what needs to be done once we
restart working on "tiny SC".

Just out of interest, does a simple perl plugin use a lot more memory than an Squeezeplay lua applet ?
I'm just asking since applets are support but plugins aren't.

Or is there something else than memory that's the bottle neck ?

mherger
2009-09-04, 22:29
> Just out of interest, does a simple perl plugin use a lot more memory
> than an Squeezeplay lua applet ?

This depends. But it's easier to do so. Plus it's easy to miss the
critical parts to make it _not_ load the full http code or fail on it
because it isn't there.

pfarrell
2009-09-04, 22:34
erland wrote:
> Just out of interest, does a simple perl plugin use a lot more memory
> than an Squeezeplay lua applet ?

Just guessing, probably there is no perl?
Hmmm, that seems unlikely without completely rewriting
SqueezeCenter/SqueezeBoxServer.

Clearly, I'm not a developer....

--
Pat Farrell
http://www.pfarrell.com/

autopilot
2009-09-05, 01:59
The main issue i can see with writing plugins (Apps) in lua is that people will have a mixture of SqOS and IP3K devices and want the plug-in to work with them all. Is that going to be an problem?

bpa
2009-09-05, 02:03
TinSC is in Perl and there is Perl in Touch. AFAIK it is a special optimised build.

I think lua applets are for clients only and so SC plugins will still need to be written in Perl. However most common IP3K and SQueezePlay menu stuff can be done using XMLBrowser/opml.

mherger
2009-09-05, 22:03
> The main issue i can see with writing plugins (Apps) in lua is that
> people will have a mixture of SqOS and IP3K devices and want the plug-in
> to work with them all. Is that going to be an problem?

Sure, it doesn't help. But a lot can be done without any Lua code at all
(if you want). Most of what you see on Controller/Touch/Radio isn't coded
in Lua, but served by SC/SN. Eg. Biography/AlbumReview should be working
incl. artwork etc. without one single line of Lua (I chose the word
"should" because it's broken right now... but that's a different issue).

In order to do screensavers, visualisers etc. you'll have to go Lua. But
then these could be apps which would work if SC is not running.

Michael

erland
2009-09-05, 23:23
Some plugins might need a bit of work to support the web less mode best. I
hope to come up with some descriptions what needs to be done once we
restart working on "tiny SC".

...

Biography/AlbumReview should be working
incl. artwork etc. without one single line of Lua (I chose the word
"should" because it's broken right now... but that's a different issue).

Biography/AlbumReview is a great example of things that would be nice to be able to use with TinySC, they don't require a lot of configuration. I'm guessing it would be possible, but maybe not easy, to implement them completely in lua. However, if a perl version without web interface configuration support would work as good it feels like a better solution.

Other plugins like some of mine really requires the web interface to make it "easy/possible" for the user to configure them, so these are probably not a good candidate to run on TinySC.

I think you really need to decide why TinySC won't support plugins.

If it just about avoiding support issues from users trying to install things that require the web interface that could be easily solved by only making it possible to install plugins which the third party developer has specified works with TinySC. To do this we just need to add something to the plugin repositories xml file that indicates if a plugin works with TinySC or not.

If it's a resource issue where a perl plugin always takes up a lot more resources than a lua applet with similar functionality I understand that you might want to completely forbid plugins in TinySC (besides maybe manually installed through ssh).

mherger
2009-09-05, 23:52
> I think you really need to decide why TinySC won't support plugins.

One of the main reasons: it's an audio device. We want to minimize the
risk of audio hiccups due to TinySC issues. Plugging in a usb storage
should just work. If you want more - get more. Get more hardware to run
full SC.

This doesn't mean you can tinker TinySC to do more. But we won't support
it _officially_. As Alan said - it's just a command line switch.

EowynCarter
2009-09-07, 02:38
"" Some plugins will be supported on SN though""
My vote for alienBBC ! (Or anything alowing transcoding for mms / rtsp)
None of the stations I like to listen works because of that... That's a pain. Some seams to have a touch for beta. That still don't work right ?

usch
2009-10-20, 04:54
Get more hardware to run full SC.

Hm. I hoped to migrate my whole library to a Touch with an USB stick in the long term to get rid of SC/SBS on my PC. I would not mind editing config files with a text editor in the absence of a web interface, but I'm afraid I cannot have things like TrackStat or SQL playlists on TinySC, right?

rotho
2009-10-20, 05:41
Among the numerous plugins available with SC, I was a big fan of Erland's Custom Scan and Custom Browse, because I have a huge collection of classical CDs and I want to browse them by Composer, by Conductor, by Orchestra, etc., etc.

Are there any chance that such a custom browsing could be available one way or another with TinySC ?

Or perhaps the browsing capability of the Touch is improved in comparison with the SB3, and my wishes are already taken care of without the need of a plugin ? (One can always dream...)

bluegaspode
2009-10-20, 06:44
And another question: How can LUA-Applets (Screensafers) be supported, if there is not WEB-UI where I can set a repository.xml ?

Or will Applet-Repositories be moved to MySqueezeboxCom ?
Or will only 'official/recommended' Applets be supported, because there are already registered in the standard distro ?

froth
2009-10-20, 08:40
I am looking at going to the touch just to move away from a dedicated server. My library is small, 20 - 30,000 tracks and the only plug in that like and use is the weather plug in. I have a boom in the kitchen that when powered off displays the weather which is something all in the family check daily. I would miss this feature as I really do not need another clock to be displayed in my kitchen.

I already run a usb drive with all my ripped music, the only think I would look at doing is going to a quite usb drive vs. the one I have now.

erland
2009-10-20, 09:52
I'm afraid I cannot have things like TrackStat or SQL playlists on TinySC, right?

I'm pretty sure you can forget about TrackStat and SQL Playlist, they are just too resource intensive to run directly on the Touch. However, there is a point on the road map called "magic playlists" which should do similar things. I don't think this will be implemented in the first Touch release but hopefully sometime in the future.



Among the numerous plugins available with SC, I was a big fan of Erland's Custom Scan and Custom Browse, because I have a huge collection of classical CDs and I want to browse them by Composer, by Conductor, by Orchestra, etc., etc.

Are there any chance that such a custom browsing could be available one way or another with TinySC ?

Flexible browsing is on the road map, so my guess is that something like this will be supported but probably not in the initial release. I think the current plan is to implement this in 8.1 or something similar.



Or perhaps the browsing capability of the Touch is improved in comparison with the SB3, and my wishes are already taken care of without the need of a plugin ? (One can always dream...)

It's easier to browse in your library thanks to the larger screen, but it currently don't have any more browsing menus than SB3.


And another question: How can LUA-Applets (Screensafers) be supported, if there is not WEB-UI where I can set a repository.xml ?

I'm guessing that the respository.xml files from known devlelopers might be available through mysqueezebox.com



Or will only 'official/recommended' Applets be supported, because there are already registered in the standard distro ?

You can always setup a temporary Squeezebox Server just to be able to install a custom applet. It's only needed during installation so you can setup the custom repository.xml file.


I am looking at going to the touch just to move away from a dedicated server. My library is small, 20 - 30,000 tracks and the only plug in that like and use is the weather plug in.

And I thought my 3500 track library was a small one...

I'm personally a bit skeptical if the TinySC on the Touch is going to be able to handle 30000 tracks. I might be completely wrong about this but I suspect TinySC will work best with smaller libraries.

I think there was a weather applet released recently in the 3rd party plugins forum, so if you just want a weather screen saver I'm pretty sure there will be solutions available.

usch
2009-10-20, 16:27
I'm personally a bit skeptical if the TinySC on the Touch is going to be able to handle 30000 tracks.
Uh-oh. It better should. I am at 17000 tracks by now, and I have only ripped about half of my CDs so far. I mean, where's the point to attach a huge external USB drive when you can only have 5000 tracks or so? For libraries that small an SDHC of CF slot would habe been sufficient.


I'm pretty sure you can forget about TrackStat and SQL Playlist, they are just too resource intensive to run directly on the Touch. However, there is a point on the road map called "magic playlists" which should do similar things.
When I think about it, maybe I can get close to what I want with only the Custom Skip and Dynamic Playlists plugin. But I do need a means to rate tracks, there's no way around that. I hope this will be part of the magic. :)

erland
2009-10-20, 16:40
Uh-oh. It better should. I am at 17000 tracks by now, and I have only ripped about half of my CDs so far. I mean, where's the point to attach a huge external USB drive when you can only have 5000 tracks or so? For libraries that small an SDHC of CF slot would habe been sufficient.

It only have 128MB of primary memory and at the moment half of that is allocated even though TinySC isn't started. This might of course be optimized before the Touch is available in the store, so it might work. Someone from Logitech will have to answer how many tracks it's designed to be able to handle.



When I think about it, maybe I can get close to what I want with only the Custom Skip and Dynamic Playlists plugin. But I do need a means to rate tracks, there's no way around that. I hope this will be part of the magic. :)

Rating has to be supported, without rating support magic playlists are pointless, IMHO.

peterw
2009-10-20, 16:50
It only have 128MB of primary memory and at the moment half of that is allocated even though TinySC isn't started. This might of course be optimized before the Touch is available in the store, so it might work. Someone from Logitech will have to answer how many tracks it's designed to be able to handle.

It should be possible to put a swap file on the USB drive or an SD card, though I don't know if that would help performance or just let Touch run sluggishly in circumstances that would otherwise cause it to crash & reboot.

You should also be able to manually install old plugins on Touch, manually restart TinySC with the web UI enabled to configure the plugins, and then restart TinySC with the web UI disabled for performance reasons.

erland
2009-10-20, 16:55
You should also be able to manually install old plugins on Touch, manually restart TinySC with the web UI enabled to configure the plugins, and then restart TinySC with the web UI disabled for performance reasons.

Haven't all CPAN dependencies for the web interface been removed ?
Or are they still installed on the Touch but just not used ?

The configuration of most plugins should be possible to do on a PC installation of Squeezebox Server and then just move the plugin prefs file to the Touch via SSH.

However, the plugins has to be designed to be able to run without the web interface. I think many plugins, including mine, initialize web page handlers at plugin initialization. This has to be changed so they detect if web interface is available and only run that part of the code if it is.