Added Audio Mixer View with Controls - how easy was that ;)

Still have troubles with OutlineView :( Might have to override it and sub-class my own. In two minds about this atm.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2806 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Phil Greenway
2003-02-23 00:09:53 +00:00
parent fdb95f3aeb
commit f13a07f594
4 changed files with 98 additions and 4 deletions
+34
View File
@@ -34,6 +34,8 @@ void MediaView::Draw(BRect updateRect)
}
// ---------------------------------------------------------------------------------------------------------- //
// IconView - Constructor
IconView::IconView (BRect frame) : BView (frame, "IconView", B_FOLLOW_ALL_SIDES, B_WILL_DRAW )
{
@@ -49,3 +51,35 @@ void IconView::Draw(BRect updateRect)
}
// ---------------------------------------------------------------------------------------------------------- //
// AudioSettingsView - Constructor
AudioSettingsView::AudioSettingsView (BRect frame) : BView (frame, "AudioSettingsView", B_FOLLOW_ALL_SIDES, B_WILL_DRAW )
{
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
}
// ---------------------------------------------------------------------------------------------------------- //
void AudioSettingsView::Draw(BRect updateRect)
{
BRect r;
r = Bounds();
}
// ---------------------------------------------------------------------------------------------------------- //
// AudioMixerView - Constructor
AudioMixerView::AudioMixerView (BRect frame) : BView (frame, "AudioMixerView", B_FOLLOW_ALL_SIDES, B_WILL_DRAW )
{
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
}
// ---------------------------------------------------------------------------------------------------------- //
void AudioMixerView::Draw(BRect updateRect)
{
BRect r;
r = Bounds();
}
// ---------------------------------------------------------------------------------------------------------- //
+14
View File
@@ -26,5 +26,19 @@ class IconView : public BView
virtual void Draw(BRect updateRect);
};
class AudioSettingsView : public BView
{
public:
AudioSettingsView(BRect frame);
virtual void Draw(BRect updateRect);
};
class AudioMixerView : public BView
{
public:
AudioMixerView(BRect frame);
virtual void Draw(BRect updateRect);
};
#endif
+34 -2
View File
@@ -12,7 +12,9 @@ Media - MediaWindow by Sikosis
#include <Application.h>
#include <Bitmap.h>
#include <Button.h>
#include <Font.h>
#include <ListView.h>
#include <math.h>
#include <OutlineListView.h>
#include <Path.h>
#include <Screen.h>
@@ -27,6 +29,13 @@ Media - MediaWindow by Sikosis
#include <Window.h>
#include <View.h>
// Media Includes
#include <ParameterWeb.h>
#include <TimeSource.h>
#include <MediaRoster.h>
#include <MediaTheme.h>
#include <MultiChannelControl.h>
#include "Media.h"
#include "MediaViews.h"
#include "MediaWindows.h"
@@ -67,18 +76,32 @@ void MediaWindow::InitWindow(void)
BRect r;
r = Bounds(); // the whole view
// Grab Media Info
media_node mixerNode;
BMediaRoster* roster = BMediaRoster::Roster();
roster->GetAudioMixer(&mixerNode);
roster->GetParameterWebFor(mixerNode, &mParamWeb);
// we look up the global BMediaRoster object,
// ask it for a reference to the global system mixer's node,
// then get a copy of the node's BParameterWeb.
BMediaTheme* theme = BMediaTheme::PreferredTheme();
BView* paramView = theme->ViewFor(mParamWeb);
// Create the OutlineView
BRect outlinerect(r.left+12,r.top+12,r.left+146,r.bottom-10);
BRect AvailableRect(r.left+160,r.top+12,r.right-10,r.bottom-10);
BRect AudioMixerRect(r.left+160,r.top+41,r.right-10,r.bottom-10);
BOutlineListView *outline;
BListItem *topmenu;
BListItem *submenu;
BScrollView *outlinesv;
outline = new BOutlineListView(outlinerect,"audio_list", B_MULTIPLE_SELECTION_LIST);
outline = new BOutlineListView(outlinerect,"audio_list", B_SINGLE_SELECTION_LIST);
outline->AddItem(topmenu = new BStringItem("Audio Settings"));
outline->AddUnder(submenu = new BStringItem("Audio Mixer"), topmenu);
outline->AddUnder(new BStringItem("None In"), submenu);
outline->AddUnder(new BStringItem("None Out"), submenu);
outline->AddUnder(new BStringItem("None In"), submenu);
outline->AddItem(topmenu = new BStringItem("Video Settings"));
outline->AddUnder(submenu = new BStringItem("Video Window Consumer"), topmenu);
outlinesv = new BScrollView("scroll_audio", outline, B_FOLLOW_LEFT|B_FOLLOW_TOP, 0, false, false, B_FANCY_BORDER);
@@ -90,14 +113,23 @@ void MediaWindow::InitWindow(void)
// Setup the OutlineView
outlinesv->SetBorderHighlighted(true);
outline->SetHighColor(0,0,0,0);
outline->SetLowColor(255,255,255,0);
BFont OutlineFont;
OutlineFont.SetSpacing(B_CHAR_SPACING);
OutlineFont.SetSize(12);
outline->SetFont(&OutlineFont,B_FONT_SHEAR | B_FONT_SPACING);
// Create the Views
AddChild(ptrMediaView = new MediaView(r));
// Add Child(ren)
ptrMediaView->AddChild(outlinesv);
//AddChild(ptrAudioSettingsView = mew AudioSettingsView(AvailableRect));
ptrMediaView->AddChild(ptrAudioMixerView = new AudioMixerView(AudioMixerRect));
ptrAudioMixerView->AddChild(paramView);
}
// ---------------------------------------------------------------------------------------------------------- //
+16 -2
View File
@@ -12,8 +12,14 @@ Media Windows Header by Sikosis
#include "Media.h"
#include "MediaViews.h"
class BParameterWeb;
class BContinuousParameter;
class BMultiChannelControl;
class MediaView;
class IconView;
class AudioSettingsView;
class AudioMixerView;
class MediaWindow : public BWindow
{
@@ -26,8 +32,16 @@ class MediaWindow : public BWindow
private:
void InitWindow(void);
MediaView* ptrMediaView;
IconView* ptrIconView;
MediaView* ptrMediaView;
IconView* ptrIconView;
AudioSettingsView* ptrAudioSettingsView;
AudioMixerView* ptrAudioMixerView;
BParameterWeb* mParamWeb;
BMultiChannelControl* mGainControl;
BContinuousParameter* mGainParam;
float mScale, mOffset;
int32 mControlMin;
};
#endif