void SeqStudioWindow::MessageReceived(BMessage* msg) { switch (msg->what) { case LABEL_MSG: { _EndpointList* listView = dynamic_cast<_EndpointList*>( FindView(ENDPOINT_LIST_STR) ); if (listView && mLabelCtrl) { listView->HandleLabelChange( mLabelCtrl->Text() ); } } break; case DEVICE_MSG: { const char* devMfg; const char* devName; if (msg->FindString(DEV_MFG_STR, &devMfg) != B_OK) devMfg = NULL; if (msg->FindString(DEV_NAME_STR, &devName) != B_OK) devName = NULL; _EndpointList* listView = dynamic_cast<_EndpointList*>( FindView(ENDPOINT_LIST_STR) ); if (listView) { listView->HandleDeviceChange(devMfg, devName); } } break; case DELETE_PORT_MSG: { _EndpointList* listView = dynamic_cast<_EndpointList*>( FindView(ENDPOINT_LIST_STR) ); if (listView) listView->DeleteCurrentSelection(); } break; case COLUMN_MSG: { const char* n; if (msg->FindString(COLUMN_NAME_STR, &n) == B_OK) ToggleColumn(n); } break; case B_MIDI_EVENT: { int32 op, id; const char* type; if (msg->FindInt32("be:op", &op) == B_OK && msg->FindString("be:type", &type) == B_OK && msg->FindInt32("be:id", &id) == B_OK && (op == B_MIDI_REGISTERED || op == B_MIDI_UNREGISTERED) ) { BString producer("producer"), consumer("consumer"); AmEndpointType et = AM_PRODUCER_TYPE; if (producer == type) et = AM_PRODUCER_TYPE; else if (consumer == type) et = AM_CONSUMER_TYPE; _EndpointList* listView = dynamic_cast<_EndpointList*>( FindView(ENDPOINT_LIST_STR) ); if (listView && (et == AM_PRODUCER_TYPE || et == AM_CONSUMER_TYPE) ) { if (op == B_MIDI_REGISTERED) listView->MidiRegistered(id, et); else if (op == B_MIDI_UNREGISTERED) listView->MidiUnregistered(id, et); } } } break; default: inherited::MessageReceived(msg); } }
void SeqManageRosterWindow::MessageReceived(BMessage* msg) { switch (msg->what) { case NEW_ENTRY_MSG: { BString key; ShowEditWindow(key, BString() ); } break; case EDIT_ENTRY_MSG: { BString key, filePath; bool readOnly; if (GetSelectionInfo(key, filePath, &readOnly) == B_OK) { if (readOnly) read_only_warning(EntryMenuType(), key); else ShowEditWindow(key, filePath); } } break; case DUPLICATE_ENTRY_MSG: { BString key, filePath; AmFileRoster* roster = Roster(); if (roster && GetSelectionInfo(key, filePath) == B_OK) { roster->DuplicateEntry(key, filePath.String() ); } } break; case DELETE_ENTRY_MSG: { BString key, filePath; AmFileRoster* roster = Roster(); if (roster && GetSelectionInfo(key, filePath) == B_OK) { roster->DeleteEntry(key); } } break; case AM_FILE_ROSTER_CHANGED: { BuildList(); } break; case COLUMN_MSG: { const char* n; if (msg->FindString(COLUMN_NAME_STR, &n) == B_OK) ToggleColumn(n); } break; default: inherited::MessageReceived(msg); } }