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:
@@ -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();
|
||||
}
|
||||
// ---------------------------------------------------------------------------------------------------------- //
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
// ---------------------------------------------------------------------------------------------------------- //
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user