From f13a07f594e5e951e170e2e75d329a0e8f4b259d Mon Sep 17 00:00:00 2001 From: Phil Greenway Date: Sun, 23 Feb 2003 00:09:53 +0000 Subject: [PATCH] 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 --- src/prefs/media/MediaViews.cpp | 34 +++++++++++++++++++++++++++++++ src/prefs/media/MediaViews.h | 14 +++++++++++++ src/prefs/media/MediaWindow.cpp | 36 +++++++++++++++++++++++++++++++-- src/prefs/media/MediaWindows.h | 18 +++++++++++++++-- 4 files changed, 98 insertions(+), 4 deletions(-) diff --git a/src/prefs/media/MediaViews.cpp b/src/prefs/media/MediaViews.cpp index 38c40ae092..3744bfcf00 100644 --- a/src/prefs/media/MediaViews.cpp +++ b/src/prefs/media/MediaViews.cpp @@ -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(); +} +// ---------------------------------------------------------------------------------------------------------- // + diff --git a/src/prefs/media/MediaViews.h b/src/prefs/media/MediaViews.h index c3c269a03d..612a53808e 100644 --- a/src/prefs/media/MediaViews.h +++ b/src/prefs/media/MediaViews.h @@ -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 diff --git a/src/prefs/media/MediaWindow.cpp b/src/prefs/media/MediaWindow.cpp index 9bdb2920bf..90b2fff524 100644 --- a/src/prefs/media/MediaWindow.cpp +++ b/src/prefs/media/MediaWindow.cpp @@ -12,7 +12,9 @@ Media - MediaWindow by Sikosis #include #include #include +#include #include +#include #include #include #include @@ -27,6 +29,13 @@ Media - MediaWindow by Sikosis #include #include +// Media Includes +#include +#include +#include +#include +#include + #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); } // ---------------------------------------------------------------------------------------------------------- // diff --git a/src/prefs/media/MediaWindows.h b/src/prefs/media/MediaWindows.h index 284214ccc2..41ac3ab0ef 100644 --- a/src/prefs/media/MediaWindows.h +++ b/src/prefs/media/MediaWindows.h @@ -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