[haiku-development] Re: (media) related questions
- From: "HOST Team" <HOST.HAIKU@xxxxxx>
- To: haiku-development@xxxxxxxxxxxxx
- Date: Thu, 20 Sep 2007 22:20:55 +0200
Hi Stephan,
first of all I didn't mean to offend anyone. Thankfully it doesn't seem you
took it so.
> One problem I can see with this approach is the same which you already
> mentioned in your original post, which is how is the Media Server is
> supposed to ignore this driver if there is a real sound card. One simply
> solution could be that it knows this driver by name, the same way the
> app_server knows and ignores the vesa driver if there is a real driver. On
> the other hand, the BeOS had real MediaNodes for Null In/Out. This could
> have benefits, since you are able to display a special user interface in
> the media preferences and in applications. I have not thought about this
> enough. I don't know pros/cons of this approach enough.
>
I was guessing that the approach of verifying the name of available drivers and
skipping null_audio in case others are present is the easiest solution. I just
don't know, whether this messes up some code (as hardcoding is always to be
avoided).
Using MediaNodes instead of a driver would be a much easier attempt, of course.
But I also liked the idea of testing/using the whole system in itself. What do
you mean with special user interface? Intentionally I wanted to add volume
sliders and so on like for every other driver. But as you already mentioned
lack of time is always a handicap.
> It sounds inefficient at first look, but it might be the most efficient
> way
> when actual mixing is required. I have only brief experience with mixing
> in
> my own applications, but expanding the audio samples to a more precise
> format, especially "float", could be the best way to reduce aliasing
> effects. On top of that, float has been advertised as the preferred BeOS
> format, all my BeOS applications output float.
Hm... I am wondering though whether float is really the preferred format as
high resolution soundcards tended to use 24bit integer instead of float. I once
read an article that also for processing these are supposed to be faster and
better grained. I'll try to find that article again.
> Not at the moment, it would be great if someone picked this up! I don't
> even know what exactly is missing, is it writers/encoders only? Or is it
> unimplemented functions in the actual media kit classes?
The functions themselves are not implemented. So the whole framework in the
background is missing. Unfortunately...
> /* 2002-2004 Copyright Marcus Overhagen...
> * ...
> * 2007 Copyright Bek...
> * ...
> */
>
Ah ok, good to know...
> Your work is certainly appreciated! I have just been swamped with other
> work, but I wanted to look at your patch as soon as possible. I was
> considering to just commit your null_audio driver, even if it a skeleton
> driver "only" for other drivers, that's already very useful. But I was
> kinda waiting for Marcus or Korli to say something, since the Media Kit is
> their area of expertice.
That is totally fine with me. Looking at the webpage I've seen names of people
responsible, but they seem to be occupied with other stuff currently, too.
To show that my motivation does not decline, I've attached a one liner patch
for the Media Preferences :)
It simply sets the channel popup menu into another line, so that the controls
are not drawn over each other. The code itself still is very unflexible and
might need some more work, but that might come later...
Best Regards,
Bek
--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger
diff --git a/src/preferences/media/MediaViews.cpp
b/src/preferences/media/MediaViews.cpp
index dd8f544..fd94a10 100644
--- a/src/preferences/media/MediaViews.cpp
+++ b/src/preferences/media/MediaViews.cpp
@@ -85,7 +85,7 @@ SettingsView::SettingsView (BRect frame, bool isVideo)
menuField2->SetDivider(divider);
if(!fIsVideo) {
- defaultRect.OffsetBy(186, 0);
+ defaultRect.OffsetBy(divider, 26);
defaultRect.right -= 30;
fMenu3 = new BPopUpMenu("<none>");
fMenu3->SetLabelFromMarked(true);
@@ -94,7 +94,7 @@ SettingsView::SettingsView (BRect frame, bool isVideo)
defaultsBox->AddChild(menuField3);
menuField3->SetDivider(StringWidth("Channel:")+5);
defaultRect.right += 30;
- defaultRect.OffsetBy(-186, 0);
+ defaultRect.OffsetBy(-divider, 0);
}
defaultRect.OffsetBy(0, 32);
- References:
- [haiku-development] (media) related questions
- From: HOST Team
- [haiku-development] Re: (media) related questions
- From: Stephan Assmus
Other related posts:
- » [haiku-development] (media) related questions
- » [haiku-development] Re: (media) related questions
- » [haiku-development] Re: (media) related questions
- » [haiku-development] Re: (media) related questions
- [haiku-development] (media) related questions
- From: HOST Team
- [haiku-development] Re: (media) related questions
- From: Stephan Assmus