1 | So, you want to develop gutenbach, eh? Good! |
---|
2 | |
---|
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 | |
---|
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 |
---|
17 | |
---|
18 | All of these are located on GitHub: |
---|
19 | http://github.com/jhamrick/gutenbach |
---|
20 | |
---|
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. |
---|
36 | |
---|
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 | |
---|
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. |
---|
49 | |
---|
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 |
---|
56 | |
---|
57 | TODO: |
---|
58 | |
---|
59 | - include mixer and channel in debconf, or even better, move it to |
---|
60 | gutenbach-remctl and implement debconf in that package |
---|
61 | |
---|
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.) |
---|
67 | |
---|
68 | - CUPS issues |
---|
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 | |
---|
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 | |
---|
92 | - fix the web interface |
---|
93 | |
---|
94 | - Make it possible to play movies; i.e. add video support (the audio |
---|
95 | support is already there, obviously) |
---|