03.02.2008 LibSydney and PulseAudio development

I had a discussion with Lennart about the maintenence of LibSydney, and his position is that since he started the project, he would like to remain maintainer and have me only as developer contributing patches. Thats great, because then he will be able to use all the knowledge and contacts he already has to promote the use of LibSydney, while he will get some help from me. Being involved in KDE as well, that will ensure that the Linux desktop of the future will simply work as expected, when it comes to sound. In the same discussion, we also talked about PulseAudio, and I offered to help there. Having all the experience from aRts, I think its a good project for me to join, and I also believe that PulseAudio does a lot of things right already. However, it has its problems (not the least of which is that its implemented in C, which is suboptimal if you want to do object oriented programming, simply because the language does not support it). Also, the IPC of PulseAudio could be improved if BEASTs SFI object system is used. So there is a lot to do, and I am looking forward to contributing the first patches.

6 comments ↓

#1 lurgy on 02.03.08 at 04:47

But it is certainly possible to use the OO paradigm in C! It is true that C++ was implemented with OO in mind, but that doesn’t mean you can’t do it in C too 🙂

That is a significant misconception ^_^

#2 Rui on 02.03.08 at 11:17

It’s factually correct that C doesn’t support modern OOP. That said, a lot of people (the majority of GNOME) don’t mind doing OOP with GObject despite its verbosity. What’s your problem with GObject?

#3 Me on 02.04.08 at 06:58

Can’t do object orientation in C? Tell that to the people who wrote GObject.

#4 Jens Munk on 02.08.08 at 16:28

Hi Stefan

I ran across a FIR filter of yours, where you have made a nice templated class for memory alignment. I have a question for you

What is the point in

malloc’ing

and afterwards

new (data + i) T()

You allocate memory twice. You can equally well allocate an array of struct/class/unions and use the __atribute(aligned(16)).

Cheers
Jens

#5 Jens Munk on 02.08.08 at 16:34

Ups

Never seen this syntax before. Just tested the source using gdb. No memory is allocated twice.

Sorry for the inconvenience

Jens

#6 Stefan Westerfeld on 02.10.08 at 04:42

> Can’t do object orientation in C? Tell that to the people who wrote GObject.

I have not said that it is not possible to do object oriented programming in C. I just said that it is suboptimal, because the language does not support it. And I know Tim Janik who wrote lots of GObject code – we have studied at the University of Hamburg together; and we are both working on BEAST.

Since we started using C++ in BEAST, we see that the amount of source code you need to write to implement a plugin, a widget or some other part of the program is usually quite a bit smaller than the C code. So I am not saying that you cannot do object orientation in C (GIMP for instance is an excellent object oriented application written in C); my point is only that coding the same functionality in C++ is less work than in doing it in plain C.

Leave a Comment