Fix menu1 menu2 menu3. Now allows to choose the audio output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4037 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
24c9a2dc58
commit
6202b8bf70
@ -68,7 +68,7 @@ SettingsView::SettingsView (BRect frame, bool isVideo)
|
||||
AddChild(defaultsBox);
|
||||
|
||||
BRect defaultRect(20, 22, 250, 40);
|
||||
mMenu1 = new BPopUpMenu("menu1");
|
||||
mMenu1 = new BPopUpMenu("<none>");
|
||||
mMenu1->SetLabelFromMarked(true);
|
||||
BMenuField *menuField1 = new BMenuField(defaultRect, "menuField1",
|
||||
mIsVideo ? "Video Input:" : "Audio Input:", mMenu1);
|
||||
@ -76,7 +76,7 @@ SettingsView::SettingsView (BRect frame, bool isVideo)
|
||||
menuField1->SetDivider(75);
|
||||
|
||||
defaultRect.OffsetBy(0, 26);
|
||||
mMenu2 = new BPopUpMenu("menu2");
|
||||
mMenu2 = new BPopUpMenu("<none>");
|
||||
mMenu2->SetLabelFromMarked(true);
|
||||
BMenuField *menuField2 = new BMenuField(defaultRect, "menuField2",
|
||||
mIsVideo ? "Video Output:" : "Audio Output:", mMenu2);
|
||||
@ -85,7 +85,7 @@ SettingsView::SettingsView (BRect frame, bool isVideo)
|
||||
|
||||
if(!mIsVideo) {
|
||||
defaultRect.OffsetBy(186, 0);
|
||||
mMenu3 = new BPopUpMenu("menu3");
|
||||
mMenu3 = new BPopUpMenu("<none>");
|
||||
mMenu3->SetLabelFromMarked(true);
|
||||
BMenuField *mMenuField3 = new BMenuField(defaultRect, "menuField3",
|
||||
"Channel:", mMenu3);
|
||||
|
@ -290,33 +290,37 @@ MediaWindow::InitMedia(bool first)
|
||||
int32 outputID;
|
||||
BString outputName;
|
||||
|
||||
roster->GetAudioInput(&default_node);
|
||||
roster->GetDormantNodeFor(default_node, &node_info);
|
||||
item = FindMediaListItem(&node_info);
|
||||
if(item)
|
||||
item->SetDefault(true, true);
|
||||
mAudioView->SetDefault(node_info, true);
|
||||
if(roster->GetAudioInput(&default_node)==B_OK) {
|
||||
roster->GetDormantNodeFor(default_node, &node_info);
|
||||
item = FindMediaListItem(&node_info);
|
||||
if(item)
|
||||
item->SetDefault(true, true);
|
||||
mAudioView->SetDefault(node_info, true);
|
||||
}
|
||||
|
||||
roster->GetAudioOutput(&default_node, &outputID, &outputName);
|
||||
roster->GetDormantNodeFor(default_node, &node_info);
|
||||
item = FindMediaListItem(&node_info);
|
||||
if(item)
|
||||
item->SetDefault(true, false);
|
||||
mAudioView->SetDefault(node_info, false, outputID);
|
||||
if(roster->GetAudioOutput(&default_node, &outputID, &outputName)==B_OK) {
|
||||
roster->GetDormantNodeFor(default_node, &node_info);
|
||||
item = FindMediaListItem(&node_info);
|
||||
if(item)
|
||||
item->SetDefault(true, false);
|
||||
mAudioView->SetDefault(node_info, false, outputID);
|
||||
}
|
||||
|
||||
roster->GetVideoInput(&default_node);
|
||||
roster->GetDormantNodeFor(default_node, &node_info);
|
||||
item = FindMediaListItem(&node_info);
|
||||
if(item)
|
||||
item->SetDefault(true, true);
|
||||
mVideoView->SetDefault(node_info, true);
|
||||
if(roster->GetVideoInput(&default_node)==B_OK) {
|
||||
roster->GetDormantNodeFor(default_node, &node_info);
|
||||
item = FindMediaListItem(&node_info);
|
||||
if(item)
|
||||
item->SetDefault(true, true);
|
||||
mVideoView->SetDefault(node_info, true);
|
||||
}
|
||||
|
||||
roster->GetVideoOutput(&default_node);
|
||||
roster->GetDormantNodeFor(default_node, &node_info);
|
||||
item = FindMediaListItem(&node_info);
|
||||
if(item)
|
||||
item->SetDefault(true, false);
|
||||
mVideoView->SetDefault(node_info, false);
|
||||
if(roster->GetVideoOutput(&default_node)==B_OK) {
|
||||
roster->GetDormantNodeFor(default_node, &node_info);
|
||||
item = FindMediaListItem(&node_info);
|
||||
if(item)
|
||||
item->SetDefault(true, false);
|
||||
mVideoView->SetDefault(node_info, false);
|
||||
}
|
||||
|
||||
if(first) {
|
||||
mListView->Select(mListView->IndexOf(mixer));
|
||||
@ -389,6 +393,21 @@ MediaWindow::MessageReceived (BMessage *message)
|
||||
InitMedia(false);
|
||||
break;
|
||||
case ML_DEFAULTOUTPUT_CHANGE:
|
||||
{
|
||||
int32 index;
|
||||
if(message->FindInt32("index", &index)!=B_OK)
|
||||
break;
|
||||
Settings2Item *item = static_cast<Settings2Item *>(mAudioView->mMenu3->ItemAt(index));
|
||||
|
||||
if(item) {
|
||||
BMediaRoster *roster = BMediaRoster::Roster();
|
||||
roster->SetAudioOutput(*item->mInput);
|
||||
|
||||
if(mAudioView->mRestartTextView->IsHidden())
|
||||
mAudioView->mRestartTextView->Show();
|
||||
} else
|
||||
fprintf(stderr, "Settings2Item not found\n");
|
||||
}
|
||||
break;
|
||||
case ML_DEFAULT_CHANGE:
|
||||
{
|
||||
@ -416,8 +435,10 @@ MediaWindow::MessageReceived (BMessage *message)
|
||||
} else {
|
||||
if(isInput)
|
||||
roster->SetAudioInput(*item->mInfo);
|
||||
else
|
||||
else {
|
||||
roster->SetAudioOutput(*item->mInfo);
|
||||
mAudioView->SetDefault(*item->mInfo, false, 0);
|
||||
}
|
||||
}
|
||||
|
||||
MediaListItem *oldListItem = NULL;
|
||||
|
Loading…
x
Reference in New Issue
Block a user