Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - tschak909

Pages: [1] 2 3 ... 11
1
Users / Is anyone using the Game Player?
« on: February 15, 2014, 06:15:26 am »
I'm just curious.

-Thom

2
Developers / Improving Performance of Play All
« on: September 30, 2013, 02:51:04 am »
Hey guys, Looking for some database help here.

Basically, if you have a LARGE media library, say, 20,000 pieces of audio, and you hit Play All to play them all, there is a considerable amount of processing time that happens, before anything appears to happen from the user's perspective.

This is caused by this snippet of code:

http://pastebin.com/LqWuDeDy

(all discussion here focuses on the pluto_media database)

What's happening here, is:

* When a user hits Play All, it sends an MH Play Media command to the Media Plugin, the filename is !Gxxx, e.g. !G250, that is, the current mediafile grid for Orbiter #250.
* The code snippet catches the special !G case, and immediately embarks upon a loop to traverse through the table, grabbing the cell values.
* For each cell you see, there is the text you see, and the actual value passed back to the code, and depending on which view you see, you can either be looking at a pile of Attributes (Director, Genre, etc.), or at a pile of files (the Title view, Filename view), so you'll see e.g. a set of !F1234, !F1235, or !A1234, !A1235, for PK_File 1234, 1235 or PK_Attribute 1234,1235 respectively.
* Then there are the two if's... for files, our job is easy, we get the appropriate row from the File Table, and put together the directory and file path, and then pass that along.
* For Attributes, this is more involved. We need to get the Attribute, then we need to match that against entries in the File_Attribute table, and grab all the matching PK_Files for each PK_Attribute, and THEN do what we mention above.
* At this point, the returned full path to the file is then passed into a new MediaFile object, and then added to the deque of MediaFile objects to become the playlist.
* Then the process repeats, until ALL of the cells have been traversed.

This process involves a potentially large number of individual queries the size of toothpicks. These toothpicks are small, and are inconsequential for the database to query and return, but, we also have the process of taking that data, peeling it apart, and acting upon it by doing more tiny queries, in a loop, all of this happening serially, and therefore incredibly inefficiently.

Why does this matter?

Well, besides the obvious effect of longer and longer delays from the user's standpoint, any code built on DCE has a built-in deadlock prevention timer. That is, if you send a message, and that message takes longer than 30 seconds to complete, DCE will assume that things have stalled, and the offending process will be terminated. Since Plugins like the Media Plugin run in exactly the same address space as DCERouter, that means the DCERouter gets killed if some work in a plugin takes too long to complete! Router goes "bye-bye;" whole system says, "sayonara."

So even if you can PUT UP with the egregious delay while asking the system to play a large number of media, there will hit a point where your system will take too long to process the "Play All", and your system will appear to crash. First, your Orbiters, then the core. It will recover, but your intended goal of playing the media won't happen.

Ok, so, what's the goal?

We need to make this block of code more efficient, and the way I can see that happening, is to make a proper database query to return ALL of the PK_File entries that match either the list of !F or !A entries that are present in the currently visible datagrid. This can subsequently be peeled apart linearly into MediaFiles and dequed appropriately. I believe this will decrease the delay to less than a few seconds, if not less than 1 second, for 99% of cases,

but, I am not an SQL wizard, and need some help to try and construct this query.

Any thoughts?

-Thom

3
Users / Atari 5200 and Intellivision now have Keypad overlays!
« on: September 05, 2013, 05:28:46 am »
The upcoming 1204 release will feature a Game Player with Keypad overlay support for Atari 5200 and Intellivision games, which _really_ need these keypad overlays to play the games.

Here are some Photos, enjoy :)

https://sphotos-b-dfw.xx.fbcdn.net/hphotos-ash3/1272106_10151550939417115_1965740363_o.jpg <-- Atari 5200 / Star Raiders

https://fbcdn-sphotos-f-a.akamaihd.net/hphotos-ak-ash4/1271492_10151553245637115_557938787_o.jpg <-- PBA Bowling / Intellivision

https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-prn2/1172552_10151553245597115_959071502_o.jpg <-- Armor Battle / Intellivision

https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/1273384_10151553245602115_926171992_o.jpg <-- Auto Racing / Intellivision

https://sphotos-a-dfw.xx.fbcdn.net/hphotos-frc3/1167519_10151553245742115_1874943942_o.jpg <-- Boxing / Intellivision

https://sphotos-a-dfw.xx.fbcdn.net/hphotos-prn2/1262558_10151553245732115_935462222_o.jpg <-- NBA Basketball / Intellivision

And an earlier one, showing MLB Baseball:
https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-frc1/812655_10151549830647115_592893759_o.jpg

As you can see, these overlays are integral to the game, and are needed to play the game in the first place, so they've now been added.

-Thom

4
Users / Kickstarter Campaign to fund a programmer?
« on: September 04, 2013, 07:15:56 pm »
Hi.

I am starting this thread to gauge interest, and promote discussion.

If I were to start a KickStarter campaign, to fund $50,000, for me to work wholly on LinuxMCE for a year, would there be enough interest? You know me. You know what I can do. What are your thoughts?

-Thom

5
Users / Weather Plugin Developer needs data entry help!
« on: August 24, 2013, 03:16:55 am »
Hello everyone,

I need your help.

In the pluto_main database, there are three tables, Country, Region, and City, which are ultimately used to find a particular city or town. I want the Weather device to use this data, to pick not only which weather data to display, but also which weather radar data to automatically select for display.

But for this to work, I need lots of data mapped.

Here is a list of all the maps that Weather.com offers from its map room.

https://96.226.245.101/work/maps.xml

Some of them are animated, some of them are static.

And these need to be mapped to countries and regions in the LinuxMCE database, so that when the Weather device looks at your installation, it will select the most appropriate maps to display.

Does anyone want to help? Yes, this is exceedingly tedious, and potentially thousands of mappings may need to be done, but in the end, it will allow for an ease of use and a "just works" functionality that everyone can appreciate.

I will point out, that not EVERY single city needs to be mapped, just the countries and regions.

I would be very indebted to those who help out, and help to make the weather functionality in LinuxMCE heads and shoulders above everything else out there!

Thanks for reading,
-Thom


6
Developers / Revamped the Voicemail UI on Orbiter
« on: August 23, 2013, 04:04:20 am »
I am currently checking in a multitude of changes to Telecom_Plugin and to Orbiter, to facilitate a better voicemail screen.

(to forum members: No, I will not back port this to 10.04. This is for the next release. Please don't ask.)

Current features:

* Able to distinguish between new and old voicemails both with textual label and color coding.
* Able to play individual voicemails. Voicemails are moved from new to old while playing, and UI is updated.
* Able to delete individual voicemails, with confirmation. Any deletions also update on other orbiters which may be viewing the same screen.
* Able to skip forward/backward 2 seconds in voicemail.
* Voicemail playback uses resume feature, which for now causes the remote not to display while playing back.
* Able to delete all voicemails for user, with confirmation.

To do:
* Play All. This is actually implemented, and is checked in, however, I have HIDDEN the button for now, because MH Play Media's resume functionality is broken, please see below.
* Caller ID. For some reason, Caller ID is NOT making it across to my individual voicemail metadata text files. It was the last time I did any work on this, and I haven't a clue why. :(
* Squeezebox/Squeezeslave playback. Figure out why this isn't working. Maybe a file access issue.

A note about MH Play Media resume:

MH Play Media has a resume parameter. This was defined by Pluto so that something else could jump in and temporarily replace a playing stream, and when it was done, to return to the previously playing stream (if one existed). It also has the benefit of not changing the active remotes in the room, so as to not confuse anyone.

However, this functionality is currently very broken.

I believe the playback events (playback started/finished) are not properly setting state, and this is causing some weirdness, namely that I can only play one thing in a stream, even if I have multiple MediaFiles in the deque, I only hear the first one, before it drops, and when the stream is finished, the previous stream is not continuing to play. I am trying to track this problem down, as a great number of useful features can be derived from this one flag, which we desperately need, but finding the source of the breakage is not proving to be easy; may take a while for me to solve this, so for now, the Play All button is hidden.

All of the relevant bits are being checked in right now, and will be placed on the list of stuff to build shortly.

-Thom

(posted simultaneously to telecom working group, and to forum)

7
Users / Coming Soon: Weather view, and Weather Events
« on: August 15, 2013, 12:04:54 am »
Hello everyone,

If you've been following the Developers Forum, you may notice that I am developing support for Weather views in Orbiter, and Weather Events, for the next release.

There are two parts being developed, the first part is the Plugin, which runs on the router, and holds the weather information gathered by various weather events (Temperature changed, forecast changed, etc.), and updates the Orbiter displays appropriately,

The other part concerns the Weather devices, which would gather weather from a source(s) and emit events for the Weather PlugIn to catch. This data could come from a weather station, or from online sources such as AccuWeather, The Weather Channel, etc.

Here is a preview video showing the plugin part working. I am feeding the Weather Plugin some fake data, courtesy of MessageSend, so I can test everything.

http://www.youtube.com/watch?v=ofw-yYRRbts

More information coming soon, enjoy!
-Thom

8
Users / At Home with LinuxMCE: Photos
« on: July 26, 2013, 09:37:06 pm »
Hello everyone,

Starting a new thread for pictures from users, showing living at home with a LinuxMCE installation, have fun! :)

I'll start with my latest pics, playing Tetris in the Living Room.





-Thom

9
Users / New Video: LinuxMCE and the Joggler
« on: July 26, 2013, 06:28:37 pm »
Hey guys,

Made a new video demonstrating the o2 Joggler, and how it works in a LinuxMCE enabled home. Nothing big, just exercising my production chops.

http://www.youtube.com/watch?v=JwZWqv7Jj7c

-Thom

10
Developers / Calling experienced Asterisk architects
« on: July 20, 2013, 03:55:41 am »
We are getting ready to completely nuke the Asterisk configuration we've been using (based on an ANCIENT AMP, which was never fixed for FreePBX), and to do a completely brand new configuration specially tailored for LinuxMCE, from scratch, and I need EXPERIENCED Asterisk architects to help design the new dialplan.

There is a flow being started here on the wiki: http://wiki.linuxmce.org/index.php/Proposed_Asterisk_Dialplan ... It is not finished, we know, we are all still adding to it, but there is enough here to start implementing a dialplan for inbound call routing.

Currently I'm doing the initial research, and scribbling down the necessary functionality and working on the flow described above, while testing out some ideas on my system here, Foxi352 is also helping out, as is posde.

Anyway,

If there are any of you in here, please private message me, and I will continue talking with you on email.

-Thom

11
Developers / Developing a Weather Plugin, videos
« on: July 18, 2013, 07:33:38 am »
Hello everybody.

I am doing a series of videos detailing the creation of a Weather Plugin, as an example of how to use Plugins to add whole house functionality to Orbiter.

The first video can be viewed here: https://vimeo.com/70533158

-Thom

12
Developers / Workshop Video: How are devices made plug and play?
« on: July 15, 2013, 03:53:13 pm »
Hey Guys,

I decided to make a video after doing a number of patches to the system so that the built in media director SimplePhone, could not only use a specific sound card, for making calls and playing rings, but that the Plug and Play detection for the Phoenix Solo USB could be debugged and made to work correctly in all cases, leveraging the knowledge I've gained over the last 4 years, since I initially added the device.

https://vimeo.com/70313468

The video goes through the following points:

* What device data I added to the SimplePhone device template
* The code I needed to add to SimplePhone to use this device data, and tell SimplePhone to use the sound card.
* How the plug and play section works, with regards to matching specific devices, utilizing the right device data, bringing along with it the needed device data for the Configuration script.
* How to pass this to a Configuration script, so that additional functionality can be done when a device is added to the system, in this case, inserting device data into SimplePhone to explicitly set the sound card to the new Phoenix Solo mic that was just added.

This is intended to be an introduction into the Plug and Play section, and hopefully spur questions and give me direction as to what more videos to make.

Hopefully this is educational, until next time.
-Thom

13
Hello guys,

I am between contracts, and looking for little things that might be very useful to the LinuxMCE community to do, to make sure I can take care of the recent hospital bill.

I have mapped out what needs to happen to add AFP support to LinuxMCE's file server detection and file share adding code, so that shared folders on the mac can be seen by LinuxMCE and subsequently scanned by media, coupled with the recently added AirPlay support, this helps close the integration loop significantly for Apple Macintosh households.

The following needs to happen:

* Add Package definition for afpfs_ng, and add afpfs_ng to pluto storage devices dependencies, (1 hour)
* Add Device Template for AFP share, (1 hour)
* Add support for mounting afp shares to auto.plutoStorageDevices using mount_afp provided by afpfs_ng (2 hours)
* Create Avahi PnP plugin for detecting mDNS-SD devices (such as AFP file servers) (8 hours)

Total time, 12 hours worth of work to produce a working implementation of AFP shares under LinuxMCE for 1204.

I'm asking to possibly raise $500 to get this feature done.

If so, cool, if not, that's okay too.

-Thom

14
Users / TSCHAK has a TSCHAKlet now.
« on: June 19, 2013, 11:46:48 pm »
Hi guys,

Just writing to tell you, that as of Tuesday, June 18th, 1:37pm, my family now has a new addition, my first child, Nina Sofia Cherryhomes, at 8 pounds 2 ounces (3.7 kilograms).

Can't talk much now, so busy,
-Thom

15
Users / Starting a new series of demo videos.
« on: May 28, 2013, 08:42:33 pm »
Hello everyone,

After years of doing cell phone shaky cam videos, and getting constantly ribbed about them; coinciding with the purchase of a Nikon D5200 camera, I am now putting together a series of demonstration videos, titled "Why LinuxMCE?"

The aim of these videos is to show concepts present in the system, without going into a lot of detail.

The first one is here: http://www.youtube.com/watch?v=b-29IfFdsrY, I will be re-editing it in the next week, to deal with some of the cuts, but I decided to keep the preliminary one up for review.

-Thom

Pages: [1] 2 3 ... 11