<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sessrumnir.net/fernseher/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=68.190.152.101</id>
	<title>Fernseher - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://sessrumnir.net/fernseher/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=68.190.152.101"/>
	<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Special:Contributions/68.190.152.101"/>
	<updated>2026-07-02T16:07:30Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Herrd&amp;diff=1564</id>
		<title>Herrd</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Herrd&amp;diff=1564"/>
		<updated>2008-04-06T21:26:28Z</updated>

		<summary type="html">&lt;p&gt;68.190.152.101: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This daemon is the backend controller for everything.  There must be only one instance of this daemon running for the given database set.&lt;br /&gt;
&lt;br /&gt;
This guy queues up jobs for the various other daemons (transcoders and rippers and recorders).  He manages schedules based on the desires in the database.  He also manages the total space available on the various storage spaces by compressing things and deleting things.&lt;br /&gt;
&lt;br /&gt;
SIGHUP causes the backend to immediately reprocess things if it is not already doing so.  It will do a reschedule, possibly put new jobs on queues, etc, etc.&lt;br /&gt;
&lt;br /&gt;
SIGINT causes the backend to stop rescheduling and requeueing jobs.  The next normal reschedule will occur as normal.&lt;br /&gt;
&lt;br /&gt;
SIGTERM causes the backend to stop rescheduling and requeueing jobs and then quit.&lt;/div&gt;</summary>
		<author><name>68.190.152.101</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Playlist&amp;diff=1563</id>
		<title>Playlist</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Playlist&amp;diff=1563"/>
		<updated>2008-03-11T05:50:15Z</updated>

		<summary type="html">&lt;p&gt;68.190.152.101: New page: Need some good way to manage playlist data in the database as well.  Should by default only be viewing the very recent past and the extended future.  Should also be able to have some virtu...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Need some good way to manage playlist data in the database as well.  Should by default only be viewing the very recent past and the extended future.  Should also be able to have some virtual items in the list, such as:&lt;br /&gt;
*a pause item.  This item, when hit, will either cause the playlist to be paused indefinitely (until manually moved past it), or for a set amount of time.&lt;br /&gt;
*a redirect item.  This item, when hit, may cause the playlist to zoom to another area of the playlist and start playing there, instead of moving forward in a linear fashion.  This would facilitate loops of all sorts, as well as skipping a segment of the list temporarily without having to rearrange the list itself.&lt;br /&gt;
*a smart item:  This item might query the database of songs and find one or more appropriate songs to play in the given spot of the list.  For instance, perhaps something by Beethoven, or a concerto of Bach, or a piano piece, chosen at random.  It would either select one logical unit to play (one piano piece, one symphony, etc), or be given some time limit to keep in under, or within.&lt;br /&gt;
&lt;br /&gt;
Need a good way to add stuff concretely to the list as well, such as by searching through the database and adding logical play blocks to the list, or through smart list expansion from the third item above (instead of having the meta-item in the list, it would expand in place to the actual item(s) to be played.)&lt;br /&gt;
&lt;br /&gt;
Once the list is put together, we would need a way to edit the list, allowing for deletions, additions, rearrangements, etc.  These might be at the track level or at a higher logical level, with ease and fluidity (drag and drop would be nice).&lt;br /&gt;
&lt;br /&gt;
Also should be able to control playback from this interface, so we could pause the whole thing (without inserting a pause block), hit play, back up a track, skip around a bit, etc.&lt;br /&gt;
&lt;br /&gt;
Should also be able to see what is currently playing, how far we are into the song, details about the track and its logical containers and people involved in its creation.  Maybe allow markup, tags of the item to be added, mark that the track is skipping or low quality.  Also allow switching to a different version of the same logical piece, either temporarily or by replacing the item in the playlist.&lt;/div&gt;</summary>
		<author><name>68.190.152.101</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=1562</id>
		<title>Fernseher</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Fernseher&amp;diff=1562"/>
		<updated>2008-03-11T05:41:06Z</updated>

		<summary type="html">&lt;p&gt;68.190.152.101: /* Other Related Projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fernseher is an all encompassing set of scripts to solve all the world&amp;#039;s problems, determine whether P really does equal NP, make me lots of money, and make a fool of myself, all at once.  I imagine it will be useful to no one, do exactly what no one wants it to do, and be accused of murder and money laundering multiple times.  If it does what you want it to do, reconsider, because you are probably wrong.  It won&amp;#039;t even do what I want it to do, and I wrote the damn thing.&lt;br /&gt;
&lt;br /&gt;
In summation, your probably don&amp;#039;t really want this set of crap on your box, and if you put it on your box, it is likely that your computer will implode, and almost certain that all your base will belong to me.&lt;br /&gt;
&lt;br /&gt;
That said, I am using this wiki to keep track of ideas I have for the various components involved, what they do, what they should do, how to use them, how to improve them, and what will happen if you don&amp;#039;t use them with everything else.  I am also hoping to do some rudimentary interface design here for the various front ends, as well as backend database design so I know how its all supposed to go together.  I may also put any information I have on the various utilities I plan on using to interface with the tuner cards, as well as interfaces to play music and video, adjust channels, volume, use bittorrent, etc.  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
===Backend/Server Components===&lt;br /&gt;
&lt;br /&gt;
*[[durchcoderd]]&lt;br /&gt;
*[[herrd]]&lt;br /&gt;
*[[rissd]]&lt;br /&gt;
*[[seherd]]&lt;br /&gt;
*[[unterhalterd]]&lt;br /&gt;
&lt;br /&gt;
===Frontend/Client Components===&lt;br /&gt;
&lt;br /&gt;
*[[nackt]]&lt;br /&gt;
*[[spieler]]&lt;br /&gt;
*[[wunscher]]&lt;br /&gt;
&lt;br /&gt;
===Database Design and Synchronization===&lt;br /&gt;
&lt;br /&gt;
*[[Tables]]&lt;br /&gt;
*[[Managed Objects]]&lt;br /&gt;
*[[Queues]]&lt;br /&gt;
*[[Synchronization]]&lt;br /&gt;
*[[Clients]]&lt;br /&gt;
&lt;br /&gt;
===Components to Harness===&lt;br /&gt;
&lt;br /&gt;
*[[libgpod]]&lt;br /&gt;
*[[vlc]]&lt;br /&gt;
*[[mplayer]]&lt;br /&gt;
*[[mpg123]]&lt;br /&gt;
*[[mencoder]]&lt;br /&gt;
*[[curses]]&lt;br /&gt;
*[[ajax]]&lt;br /&gt;
*[[firefox]]&lt;br /&gt;
*[[wiimote mouse]]&lt;br /&gt;
*[[tvshows from online]]&lt;br /&gt;
&lt;br /&gt;
===Other Related Projects===&lt;br /&gt;
&lt;br /&gt;
*[[bittorrent]]&lt;br /&gt;
*[[blogging queue]]&lt;br /&gt;
*[[mpr stream capture]]&lt;br /&gt;
*[[photo management]]&lt;br /&gt;
*[[email grabber]]&lt;br /&gt;
*[[tag clouds]]&lt;br /&gt;
*[[remote control device]]&lt;br /&gt;
*[[dialup server system]]&lt;br /&gt;
*[[distributed internal network]]&lt;br /&gt;
*[[dvdlookup.org]]&lt;br /&gt;
*[[playlist]]&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>68.190.152.101</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Rissd&amp;diff=1556</id>
		<title>Rissd</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Rissd&amp;diff=1556"/>
		<updated>2008-02-24T00:10:20Z</updated>

		<summary type="html">&lt;p&gt;68.190.152.101: /* Nonexistant Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This daemon attaches to the database and a particular optical drive.  When a new disk is inserted to the drive, it determines if it is an audio CD or a DVD.  If an audio CD, it determines if the music from it has already been gotten and of sufficient quality (each track is checked individually, to allow for bad track regrabbing).  If so, it does nothing.  If it needs to get some of the music, it grabs it to wave format, adds information to the database about it, and places jobs in the transcoder queue for transcoding once the wave has been completely ripped.  &lt;br /&gt;
&lt;br /&gt;
Several of these daemons can be running, but each needs a dedicated optical drive (the optical drive can be shared with a player though, for playing DVDs.  The rissd will yield the drive to the player once it has determined it has nothing it needs to do for the disk in question.&lt;br /&gt;
&lt;br /&gt;
SIGHUP causes the daemon to stop ripping the current track, delete the wave associated with it, and move on to the next track.&lt;br /&gt;
&lt;br /&gt;
SIGINT causes the daemon to stop ripping the entire CD and give it up to the player if one is associated.&lt;br /&gt;
&lt;br /&gt;
SIGTERM causes the daemon to stop ripping the current track, give up the device to a player, and quit the daemon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Locking and Synchronization ==&lt;br /&gt;
&lt;br /&gt;
* On Startup:&lt;br /&gt;
** trylock host:device in devicedb, or exit&lt;br /&gt;
** update daemondb with pid and status&lt;br /&gt;
** daemonize&lt;br /&gt;
* On Exit:&lt;br /&gt;
** remove entry from daemondb&lt;br /&gt;
** unlock host:device from devicedb&lt;br /&gt;
** exit&lt;br /&gt;
* On rip determination:&lt;br /&gt;
*** lock trackdb&lt;br /&gt;
*** check if track needs reripping&lt;br /&gt;
*** lock track if we need to rerip&lt;br /&gt;
*** unlock trackdb&lt;br /&gt;
* On finishing rip:&lt;br /&gt;
*** update track data and unlock it&lt;br /&gt;
&lt;br /&gt;
== Nonexistant Files ==&lt;br /&gt;
&lt;br /&gt;
When checking to see if we should replace the old file or not, make sure the old file actually exists if we are going to depend on it to be the better copy.  Also, when we move the new file into place, ensure it exists in the new place before just quitting.  If we can&amp;#039;t find a resultant file, we should probably set the state to Not Ripped and the quality to 0, so we automatically update it next time through.&lt;br /&gt;
&lt;br /&gt;
I think right now there is about 30 or 40 track entries without a file to match.  I need to get something going to find out which ones they are, what happened, and what CDs I need to rerip. *update:  found most of the files.  There are still a few that are not ripped, because they are data tracks from the end of some cds that have &amp;quot;extras&amp;quot;.  Kinda silly.  At any rate, they don&amp;#039;t get ripped.  That&amp;#039;s probably fine.  As long as we can still find the cd&amp;#039;s in cddb while including that track in our toc calculation, I think all is well.&lt;/div&gt;</summary>
		<author><name>68.190.152.101</name></author>
	</entry>
	<entry>
		<id>http://sessrumnir.net/fernseher/index.php?title=Remote_control_device&amp;diff=1555</id>
		<title>Remote control device</title>
		<link rel="alternate" type="text/html" href="http://sessrumnir.net/fernseher/index.php?title=Remote_control_device&amp;diff=1555"/>
		<updated>2008-02-24T00:08:16Z</updated>

		<summary type="html">&lt;p&gt;68.190.152.101: /* Atmel AVR USB Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Controller should be able to output RC5 36, Panasonic 38, Sony 40, Daewoo 38, JVC 38, etc.&lt;br /&gt;
Use 38kHz modulation, probably, since that is more consistent between 36,38,40 receivers, or change as needed.  56 could cause headaches if we don&amp;#039;t switch.&lt;br /&gt;
&lt;br /&gt;
0  0 bit&lt;br /&gt;
1  1 bit&lt;br /&gt;
S  Start&lt;br /&gt;
T  Stop&lt;br /&gt;
M  Middle&lt;br /&gt;
G  Gap length&lt;br /&gt;
&lt;br /&gt;
Various timings:&lt;br /&gt;
0.450 DAE-0L&lt;br /&gt;
0.550 DAE-0H,1H,TH,MH   JVC-0L&lt;br /&gt;
0.600 SON-0H,0L,1L   JVC-0H,1H,TH&lt;br /&gt;
0.840 PAN-1H,0H,0L,TH&lt;br /&gt;
0.889 RC5-0H,0L,1H,1L,SH,SL&lt;br /&gt;
1.200 SON-1H&lt;br /&gt;
1.450 DAE-1L&lt;br /&gt;
1.600 JVC-1L&lt;br /&gt;
2.400 SON-SH&lt;br /&gt;
2.520 PAN-1L&lt;br /&gt;
3.360 PAN-SH,SL&lt;br /&gt;
4.000 DAE-SL,ML   JVC-SL&lt;br /&gt;
8.000 DAE-SH&lt;br /&gt;
9.500 JVC-SH&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
40.000 SON-GL&lt;br /&gt;
60.000 DAE-GL   JVC-GL&lt;br /&gt;
88.889 RC5-GL&lt;br /&gt;
&lt;br /&gt;
==Atmel AVR USB Notes==&lt;br /&gt;
&lt;br /&gt;
http://www.atmel.ru/Disks/AVR%20Technical%20Library/appnotes/pdf_avr/AVR329.pdf&lt;br /&gt;
&lt;br /&gt;
[http://electrons.psychogenic.com/articles/images/avr/avr-ppiprog.jpg AVR PPI ISP]&lt;/div&gt;</summary>
		<author><name>68.190.152.101</name></author>
	</entry>
</feed>