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);
|
AddChild(defaultsBox);
|
||||||
|
|
||||||
BRect defaultRect(20, 22, 250, 40);
|
BRect defaultRect(20, 22, 250, 40);
|
||||||
mMenu1 = new BPopUpMenu("menu1");
|
mMenu1 = new BPopUpMenu("<none>");
|
||||||
mMenu1->SetLabelFromMarked(true);
|
mMenu1->SetLabelFromMarked(true);
|
||||||
BMenuField *menuField1 = new BMenuField(defaultRect, "menuField1",
|
BMenuField *menuField1 = new BMenuField(defaultRect, "menuField1",
|
||||||
mIsVideo ? "Video Input:" : "Audio Input:", mMenu1);
|
mIsVideo ? "Video Input:" : "Audio Input:", mMenu1);
|
||||||
@ -76,7 +76,7 @@ SettingsView::SettingsView (BRect frame, bool isVideo)
|
|||||||
menuField1->SetDivider(75);
|
menuField1->SetDivider(75);
|
||||||
|
|
||||||
defaultRect.OffsetBy(0, 26);
|
defaultRect.OffsetBy(0, 26);
|
||||||
mMenu2 = new BPopUpMenu("menu2");
|
mMenu2 = new BPopUpMenu("<none>");
|
||||||
mMenu2->SetLabelFromMarked(true);
|
mMenu2->SetLabelFromMarked(true);
|
||||||
BMenuField *menuField2 = new BMenuField(defaultRect, "menuField2",
|
BMenuField *menuField2 = new BMenuField(defaultRect, "menuField2",
|
||||||
mIsVideo ? "Video Output:" : "Audio Output:", mMenu2);
|
mIsVideo ? "Video Output:" : "Audio Output:", mMenu2);
|
||||||
@ -85,7 +85,7 @@ SettingsView::SettingsView (BRect frame, bool isVideo)
|
|||||||
|
|
||||||
if(!mIsVideo) {
|
if(!mIsVideo) {
|
||||||
defaultRect.OffsetBy(186, 0);
|
defaultRect.OffsetBy(186, 0);
|
||||||
mMenu3 = new BPopUpMenu("menu3");
|
mMenu3 = new BPopUpMenu("<none>");
|
||||||
mMenu3->SetLabelFromMarked(true);
|
mMenu3->SetLabelFromMarked(true);
|
||||||
BMenuField *mMenuField3 = new BMenuField(defaultRect, "menuField3",
|
BMenuField *mMenuField3 = new BMenuField(defaultRect, "menuField3",
|
||||||
"Channel:", mMenu3);
|
"Channel:", mMenu3);
|
||||||
|
@ -290,33 +290,37 @@ MediaWindow::InitMedia(bool first)
|
|||||||
int32 outputID;
|
int32 outputID;
|
||||||
BString outputName;
|
BString outputName;
|
||||||
|
|
||||||
roster->GetAudioInput(&default_node);
|
if(roster->GetAudioInput(&default_node)==B_OK) {
|
||||||
roster->GetDormantNodeFor(default_node, &node_info);
|
roster->GetDormantNodeFor(default_node, &node_info);
|
||||||
item = FindMediaListItem(&node_info);
|
item = FindMediaListItem(&node_info);
|
||||||
if(item)
|
if(item)
|
||||||
item->SetDefault(true, true);
|
item->SetDefault(true, true);
|
||||||
mAudioView->SetDefault(node_info, true);
|
mAudioView->SetDefault(node_info, true);
|
||||||
|
}
|
||||||
|
|
||||||
roster->GetAudioOutput(&default_node, &outputID, &outputName);
|
if(roster->GetAudioOutput(&default_node, &outputID, &outputName)==B_OK) {
|
||||||
roster->GetDormantNodeFor(default_node, &node_info);
|
roster->GetDormantNodeFor(default_node, &node_info);
|
||||||
item = FindMediaListItem(&node_info);
|
item = FindMediaListItem(&node_info);
|
||||||
if(item)
|
if(item)
|
||||||
item->SetDefault(true, false);
|
item->SetDefault(true, false);
|
||||||
mAudioView->SetDefault(node_info, false, outputID);
|
mAudioView->SetDefault(node_info, false, outputID);
|
||||||
|
}
|
||||||
|
|
||||||
roster->GetVideoInput(&default_node);
|
if(roster->GetVideoInput(&default_node)==B_OK) {
|
||||||
roster->GetDormantNodeFor(default_node, &node_info);
|
roster->GetDormantNodeFor(default_node, &node_info);
|
||||||
item = FindMediaListItem(&node_info);
|
item = FindMediaListItem(&node_info);
|
||||||
if(item)
|
if(item)
|
||||||
item->SetDefault(true, true);
|
item->SetDefault(true, true);
|
||||||
mVideoView->SetDefault(node_info, true);
|
mVideoView->SetDefault(node_info, true);
|
||||||
|
}
|
||||||
|
|
||||||
roster->GetVideoOutput(&default_node);
|
if(roster->GetVideoOutput(&default_node)==B_OK) {
|
||||||
roster->GetDormantNodeFor(default_node, &node_info);
|
roster->GetDormantNodeFor(default_node, &node_info);
|
||||||
item = FindMediaListItem(&node_info);
|
item = FindMediaListItem(&node_info);
|
||||||
if(item)
|
if(item)
|
||||||
item->SetDefault(true, false);
|
item->SetDefault(true, false);
|
||||||
mVideoView->SetDefault(node_info, false);
|
mVideoView->SetDefault(node_info, false);
|
||||||
|
}
|
||||||
|
|
||||||
if(first) {
|
if(first) {
|
||||||
mListView->Select(mListView->IndexOf(mixer));
|
mListView->Select(mListView->IndexOf(mixer));
|
||||||
@ -389,6 +393,21 @@ MediaWindow::MessageReceived (BMessage *message)
|
|||||||
InitMedia(false);
|
InitMedia(false);
|
||||||
break;
|
break;
|
||||||
case ML_DEFAULTOUTPUT_CHANGE:
|
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;
|
break;
|
||||||
case ML_DEFAULT_CHANGE:
|
case ML_DEFAULT_CHANGE:
|
||||||
{
|
{
|
||||||
@ -416,8 +435,10 @@ MediaWindow::MessageReceived (BMessage *message)
|
|||||||
} else {
|
} else {
|
||||||
if(isInput)
|
if(isInput)
|
||||||
roster->SetAudioInput(*item->mInfo);
|
roster->SetAudioInput(*item->mInfo);
|
||||||
else
|
else {
|
||||||
roster->SetAudioOutput(*item->mInfo);
|
roster->SetAudioOutput(*item->mInfo);
|
||||||
|
mAudioView->SetDefault(*item->mInfo, false, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MediaListItem *oldListItem = NULL;
|
MediaListItem *oldListItem = NULL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user