Now, one hour later, I still don't know how to add menus. Muine, where I'm trying to learn from, appears to use glade, I would like to just use Gnome.UIInfo for this. So my first try:
private void
AddMenus ()
{
UIInfo[] file = {
{ null, null, "Quit", "Quit", null, UIInfoType.Item },
{ null, null, null, null, null, UIInfoType.Endofinfo }
};
UIInfo[] menus = {
{ null, null, "File", "File", null, UIInfoType.Subtree, file},
{ null, null, null, null, null, UIInfoType.Endofinfo }
};
CreateMenus (menus);
}
Which gives me:
Constant value `null' cannot be converted to Gnome.UIInfo(CS0031) Constant value `null' cannot be converted to Gnome.UIInfo(CS0031) Use of unassigned local variable `menus'(CS0165)
Right. I would actually expect predefined members for Quit and File, but that's probably just me. Can anyone tell me how to add menus to a Gnome.App?
Update:
So I just copied the stuff from the GnomeHelloWorld.cs in mono CVS. Next problem: the anonymous CVS server of Mono.
[rbultje@tux GStreamer]$ cvs -d:pserver:anonymous@anoncvs-spain-1.go-mono.com:/mono co gst-sharp can't create temporary directory /tmp/cvs-serv21785 No space left on device [rbultje@tux GStreamer]$ cvs -d:pserver:anonymous@anoncvs-spain-2.go-mono.com:/mono login Logging in to :pserver:anonymous@anoncvs-spain-2.go-mono.com:2401/mono CVS password: Unknown host anoncvs-spain-2.go-mono.com. [rbultje@tux GStreamer]$ cvs -d:pserver:anonymous@us-anoncvs.go-mono.com:/mono login Logging in to :pserver:anonymous@us-anoncvs.go-mono.com:2401/mono CVS password: Unknown host us-anoncvs.go-mono.com. [rbultje@tux GStreamer]$ cvs -d:pserver:anonymous@anoncvs.go-mono.com:/mono co gst-sharp can't create temporary directory /tmp/cvs-serv19708 No space left on device
Now what do I do?
Life:
Went off to a fair in Leiden with two friends. There was a rollercoaster, a vertical shot (where you sit in a giant sphere attached to elastic wires and are launched into the air) and some other cool attractions that we enjoyed. Had a really good time there.
So there it came today. As I was watching an episode of Sex and the City (yes, I really love that now that I've lived in Manhattan), I suddenly noticed how much this episode touched upon things that I did there. Auch. Had to make some "home"sick phonecalls to friends from New York after that. I miss Manhattan.
This time, I had to write some random software in Java. Well, so I did yesterday night and the night before. Half of my time was actually spent getting java to run. This is awkward! The worst thing of all is that I just don't know how to get GCJ to run. If it was up to me, I'd happily use GCJ, but... I just can't. It took me a few hours to get GCJ to compile my first binary. I have a bunch of ten .java files and want a binary. So I do:
gcj -o myapp *.java -I. --main=Application
That didn't quite work, I got warnings about the main func not being defined, even though it clearly exists. In the end, I had several case comparison issues, where my package was called "application" and my class "Application" (in Application.java). The Sun Java SDK, which I instealled because I was getting desperate, had the same issue, by the way (it gets worse if the class is "Application" in application.java; no way you'll get that to work -without obvious pointers to what's wrong, of course). I removed the package definition and things now worked fine in the Sun Java SDK. Even GCJ finished compiling. However, it didn't run. It couldn't find the Gtk AWT libraries. At this point, I didn't know what to do and gave up. Back to Sun Java SDK...
I guess my main point is: why is this so hard? It just works(tm) under Windows. Why doesn't GCJ just work out-of-the-box? Why is Sun Java SDK case-sensitive under Linux and not under Windows?
Totem, GStreamer, DVD, etc.:
Totem's CVS now uses playbin instead of libgstplay. Playbin is GStreamer's latest attempts at getting proper playback, and I'm fairly happy with it. Current CVS of gst-plugins, gstreamer core, gst-ffmpeg and Totem play quite some media already, while I'm continuously on a fixing rampage to get more media to work fine. I guess my main frustration right now is matroska playback, which I'm working on right now. DVD playback (and vob) is also being worked on at the moment.
Interestingly, I was able (yesterday) to rip my first DVD ever using GStreamer. This requires current CVS, obviously. The following commandline:
gst-launch oggmux name=mux ! filesink location=/tmp/file.ogg { dvdreadsrc location=/dev/cdrom ! dvddemux name=demux .audio_00 ! { queue ! a52dec ! audioconvert ! rawvorbisenc ! queue ! mux. } { demux.video_00 ! queue ! mpeg2dec ! ffcolorspace ! videoscale ! video/x-raw-yuv,width=384,height=288 ! tee name=t ! { queue ! theoraenc ! queue ! mux. } } } { t. ! queue ! ffcolorspace ! ximagesink }
will rip your DVD to an ogg/theora+vorbis file of size 384x288; it takes about 6 hours for a one-and-a-half-hour DVD on my laptop. It will also show an image while ripping. Who's gonna write video-juicer? Note that it's not perfect yet. Sound is a bit crackling (similar to Fluendo's webstream) and it hangs on EOS. I didn't debug any further yet. The resulting file is playable, though.
Barcelona:
So I went over to Barcelona for some head-to-head talks this weekend, and there was some huge party going on with all sort of parties at random places in the city, including a huge concert at Place de Catalunya. We had a lot of fun, even though I can't recall the name of the band that we saw playing.
My head did hurt Sunday evening...
We'll try some Fedora Core 3 rampage, if that appears realistically possible. :).
Insanity:
Havoc, yes, that is ALSA fault. there's no sane way to fix that in userspace apart from a large database of device-specific settings. And that's exactly why we need a generic kernel-/userspace interface: a generic way of controlling bery different devices.
If their default is unusable, then ALSA failed. After a new install, users will have to configure their sound card once in order to work. I don't know how to fix it apart from blaming the ALSA people.
Note that, all the lame ALSA disclaimers aside, OSS worked just fine in this respect. If we're going to fix it, let's just admit that ALSA is at fault and fix ALSA.
Media playback:
Current CVS of GStreamer has OGM support. Some autoplugging funkiness pending. Will now work on improving Matroska support, fixing AVI A/V sync issues and error+tagging forwarding.
GNOME-2.8 is dead, long live GNOME-2.9!
Media playback in GStreamer:
Noticed that ASF support in GStreamer is crappy. Will fix sometime soon.
* xvimagesink/aasink default sizing seems broken. All works fine after a manual resize.
* some AVI-with-mp3 files hang after 1-2 seconds. For those two seconds, audio plays far too fast.
However, most stuff appears to work quite nicely. I hope to get into some media testing next (#138435).
Oh, and released GNOME media 2.8.0. Gnome-CD no longer crashes.
[edit]
Alan, booting a ISO is simple:
chainloader hd(0,0)/image.iso
boot
...in GRUB is enough. However, for an installation, you need three, and that might be trickier, because when CD#1 is finished, you might not have a loopback module available to mount CD#2. It's easier to start a network install from CD#1.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!