[3b4b994] | 1 | So, you want to develop gutenbach, eh? Good! |
---|
| 2 | |
---|
[c94338b] | 3 | Gutenbach is a distributed music player built on top of CUPs. It |
---|
| 4 | essentially enables anybody with access to it to play music from their |
---|
| 5 | own computer -- all they have to do is "print" to the Gutenbach |
---|
| 6 | instance as they would any other document! |
---|
| 7 | |
---|
[423cc42] | 8 | The current Gutenbach features are: |
---|
| 9 | - the Gutenbach server (packaged as gutenbach-server) |
---|
| 10 | - a terminal queue display (packaged as gutenbach-queue) |
---|
| 11 | - remctl bindings (packaged as gutenbach-remctl) |
---|
| 12 | - client-side scripts to print to, list, and delete from |
---|
| 13 | queues (packaged as gutenbach-client) |
---|
| 14 | - a Rhythmbox plugin |
---|
| 15 | - iTunes plugins |
---|
| 16 | - a webapp interface |
---|
[3b4b994] | 17 | |
---|
[c94338b] | 18 | All of these are located on GitHub: |
---|
[423cc42] | 19 | http://github.com/jhamrick/gutenbach |
---|
[28f66a3] | 20 | |
---|
[03e2535] | 21 | In terms of how the repository is structured: after discussing the |
---|
| 22 | possibility of supporting multiple systems, we decided it would be |
---|
| 23 | best to merge everything platform unspecific into the master branch, |
---|
| 24 | and then keep separate branches for each other system; e.g. at the |
---|
| 25 | moment we have the debian branch, which should be the same as the |
---|
| 26 | master branch except that it also contains a debian/ directory. Now, |
---|
| 27 | this means that you should never edit platform-unspecific files in the |
---|
| 28 | debian directory; they should *always* be edited from the master |
---|
| 29 | branch. The debian branch should never be merged into the master |
---|
| 30 | branch; merging should *always* happen the other way around. |
---|
| 31 | |
---|
| 32 | See README.old for how Gutenbach /used/ to be installed. This can |
---|
| 33 | sometimes offer insight into how to fix things that are broken. |
---|
| 34 | |
---|
| 35 | Questions or comments should be directed at gutenbach AT mit DOT edu. |
---|
[7bc8b29] | 36 | |
---|
[4ac44b2] | 37 | NOTES: |
---|
| 38 | |
---|
| 39 | - If you keep getting zephyrs with the following errors: |
---|
| 40 | |
---|
| 41 | Playback completed with the following errors: |
---|
| 42 | bt_audio_service_open: connect() failed: Connection refused (111) |
---|
| 43 | bt_audio_service_open: connect() failed: Connection refused (111) |
---|
| 44 | bt_audio_service_open: connect() failed: Connection refused (111) |
---|
| 45 | |
---|
[423cc42] | 46 | This is because you have alsa configured for bluetooth, but |
---|
| 47 | bluetooth is not enabled. You should either enable bluetooth, or |
---|
| 48 | uninstall the bluez-alsa package. |
---|
[4ac44b2] | 49 | |
---|
[423cc42] | 50 | - The commands to print and remove jobs should be used via the scripts |
---|
| 51 | in gutenbach-client package. However, if you insist on using them, |
---|
| 52 | the correct syntax is: |
---|
| 53 | |
---|
| 54 | CUPS_SERVER=servername lp -dqueuename foo.mp3 |
---|
| 55 | CUPS_SERVER=servername cancel [ID|-a] queuename |
---|
[4ac44b2] | 56 | |
---|
[423cc42] | 57 | TODO: |
---|
[4ac44b2] | 58 | |
---|
[28f66a3] | 59 | - include mixer and channel in debconf, or even better, move it to |
---|
[c6f9cbe] | 60 | gutenbach-remctl and implement debconf in that package |
---|
[4ac44b2] | 61 | |
---|
[423cc42] | 62 | - this should really not conflict with pulse (the biggest problem at |
---|
| 63 | the moment is that pulse will spew a bunch of errors like "Home |
---|
| 64 | directory /var/spool/cups/tmp not ours." I can't figure out how to |
---|
| 65 | get rid of them, but they're really annoying. As long as pulse is |
---|
| 66 | in system mode, things seem to work otherwise.) |
---|
[4ac44b2] | 67 | |
---|
[1e04f22] | 68 | - CUPS issues |
---|
[423cc42] | 69 | |
---|
| 70 | * the CUPS daemon processes do not inherit groups from the lp user |
---|
| 71 | (so, for example, even if we add 'lp' to 'audio', the process |
---|
| 72 | will not be running in group 'audio'). For the time being, I've |
---|
| 73 | set the CUPS daemon to always run under group 'audio', but there |
---|
| 74 | should really be a better solution. |
---|
| 75 | |
---|
| 76 | * when the Purge-Jobs command is sent, the jobs are removed, but |
---|
| 77 | the current mplayer instance continues playing. This |
---|
| 78 | unfortunately leads to jobs being played over each other when |
---|
| 79 | the CUPS server restarts |
---|
| 80 | |
---|
| 81 | - Making it easier to use across multiple platforms, regardless of |
---|
| 82 | debathena/normal linux/etc? |
---|
| 83 | |
---|
| 84 | - Gutenbach should not depend on Debathena -- ideally, |
---|
| 85 | gutenbach-server should be debathena free, and then if people want |
---|
| 86 | to use zephyr, etc., they can install an additional gutenbach-zephyr |
---|
| 87 | package or something |
---|
| 88 | |
---|
[03e2535] | 89 | - add client scripts for the remctl package, something maybe like |
---|
| 90 | `gbvol [set|get] number`. Or maybe just leave it with using remctl. |
---|
| 91 | |
---|
[423cc42] | 92 | - fix the web interface |
---|
| 93 | |
---|
[b58aada] | 94 | - Make it possible to play movies; i.e. add video support (the audio |
---|
| 95 | support is already there, obviously) |
---|