Changeset 1336 for trunk/libffado/support/mixer/mixer_motu.py
- Timestamp:
- 09/23/08 03:42:04 (16 years ago)
- Files:
-
- trunk/libffado/support/mixer/mixer_motu.py (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/support/mixer/mixer_motu.py
r1274 r1336 505 505 # may end up using a matrix mixer. 506 506 self.PairSwitches={ 507 self.mix1ana1_2_pair: ['Mixer/Mix1/Ana1_2_pair'],508 self.mix1ana3_4_pair: ['Mixer/Mix1/Ana3_4_pair'],509 self.mix1ana5_6_pair: ['Mixer/Mix1/Ana5_6_pair'],510 self.mix1ana7_8_pair: ['Mixer/Mix1/Ana7_8_pair'],511 self.mix1aes1_2_pair: ['Mixer/Mix1/Aes1_2_pair'],512 self.mix1adat1_2_pair: ['Mixer/Mix1/Adat1_2_pair'],513 self.mix1adat3_4_pair: ['Mixer/Mix1/Adat3_4_pair'],514 self.mix1adat5_6_pair: ['Mixer/Mix1/Adat5_6_pair'],515 self.mix1adat7_8_pair: ['Mixer/Mix1/Adat7_8_pair'],516 self.mix1spdif1_2_pair: ['Mixer/Mix1/Spdif1_2_pair'],517 518 self.mix2ana1_2_pair: ['Mixer/Mix2/Ana1_2_pair'],519 self.mix2ana3_4_pair: ['Mixer/Mix2/Ana3_4_pair'],520 self.mix2ana5_6_pair: ['Mixer/Mix2/Ana5_6_pair'],521 self.mix2ana7_8_pair: ['Mixer/Mix2/Ana7_8_pair'],522 self.mix2aes1_2_pair: ['Mixer/Mix2/Aes1_2_pair'],523 self.mix2adat1_2_pair: ['Mixer/Mix2/Adat1_2_pair'],524 self.mix2adat3_4_pair: ['Mixer/Mix2/Adat3_4_pair'],525 self.mix2adat5_6_pair: ['Mixer/Mix2/Adat5_6_pair'],526 self.mix2adat7_8_pair: ['Mixer/Mix2/Adat7_8_pair'],527 self.mix2spdif1_2_pair: ['Mixer/Mix2/Spdif1_2_pair'],528 529 self.mix3ana1_2_pair: ['Mixer/Mix3/Ana1_2_pair'],530 self.mix3ana3_4_pair: ['Mixer/Mix3/Ana3_4_pair'],531 self.mix3ana5_6_pair: ['Mixer/Mix3/Ana5_6_pair'],532 self.mix3ana7_8_pair: ['Mixer/Mix3/Ana7_8_pair'],533 self.mix3aes1_2_pair: ['Mixer/Mix3/Aes1_2_pair'],534 self.mix3adat1_2_pair: ['Mixer/Mix3/Adat1_2_pair'],535 self.mix3adat3_4_pair: ['Mixer/Mix3/Adat3_4_pair'],536 self.mix3adat5_6_pair: ['Mixer/Mix3/Adat5_6_pair'],537 self.mix3adat7_8_pair: ['Mixer/Mix3/Adat7_8_pair'],538 self.mix3spdif1_2_pair: ['Mixer/Mix3/Spdif1_2_pair'],539 540 self.mix4ana1_2_pair: ['Mixer/Mix4/Ana1_2_pair'],541 self.mix4ana3_4_pair: ['Mixer/Mix4/Ana3_4_pair'],542 self.mix4ana5_6_pair: ['Mixer/Mix4/Ana5_6_pair'],543 self.mix4ana7_8_pair: ['Mixer/Mix4/Ana7_8_pair'],544 self.mix4aes1_2_pair: ['Mixer/Mix4/Aes1_2_pair'],545 self.mix4adat1_2_pair: ['Mixer/Mix4/Adat1_2_pair'],546 self.mix4adat3_4_pair: ['Mixer/Mix4/Adat3_4_pair'],547 self.mix4adat5_6_pair: ['Mixer/Mix4/Adat5_6_pair'],548 self.mix4adat7_8_pair: ['Mixer/Mix4/Adat7_8_pair'],549 self.mix4spdif1_2_pair: ['Mixer/Mix4/Spdif1_2_pair'],507 # self.mix1ana1_2_pair: ['Mixer/Mix1/Ana1_2_pair'], 508 # self.mix1ana3_4_pair: ['Mixer/Mix1/Ana3_4_pair'], 509 # self.mix1ana5_6_pair: ['Mixer/Mix1/Ana5_6_pair'], 510 # self.mix1ana7_8_pair: ['Mixer/Mix1/Ana7_8_pair'], 511 # self.mix1aes1_2_pair: ['Mixer/Mix1/Aes1_2_pair'], 512 # self.mix1adat1_2_pair: ['Mixer/Mix1/Adat1_2_pair'], 513 # self.mix1adat3_4_pair: ['Mixer/Mix1/Adat3_4_pair'], 514 # self.mix1adat5_6_pair: ['Mixer/Mix1/Adat5_6_pair'], 515 # self.mix1adat7_8_pair: ['Mixer/Mix1/Adat7_8_pair'], 516 # self.mix1spdif1_2_pair: ['Mixer/Mix1/Spdif1_2_pair'], 517 518 # self.mix2ana1_2_pair: ['Mixer/Mix2/Ana1_2_pair'], 519 # self.mix2ana3_4_pair: ['Mixer/Mix2/Ana3_4_pair'], 520 # self.mix2ana5_6_pair: ['Mixer/Mix2/Ana5_6_pair'], 521 # self.mix2ana7_8_pair: ['Mixer/Mix2/Ana7_8_pair'], 522 # self.mix2aes1_2_pair: ['Mixer/Mix2/Aes1_2_pair'], 523 # self.mix2adat1_2_pair: ['Mixer/Mix2/Adat1_2_pair'], 524 # self.mix2adat3_4_pair: ['Mixer/Mix2/Adat3_4_pair'], 525 # self.mix2adat5_6_pair: ['Mixer/Mix2/Adat5_6_pair'], 526 # self.mix2adat7_8_pair: ['Mixer/Mix2/Adat7_8_pair'], 527 # self.mix2spdif1_2_pair: ['Mixer/Mix2/Spdif1_2_pair'], 528 529 # self.mix3ana1_2_pair: ['Mixer/Mix3/Ana1_2_pair'], 530 # self.mix3ana3_4_pair: ['Mixer/Mix3/Ana3_4_pair'], 531 # self.mix3ana5_6_pair: ['Mixer/Mix3/Ana5_6_pair'], 532 # self.mix3ana7_8_pair: ['Mixer/Mix3/Ana7_8_pair'], 533 # self.mix3aes1_2_pair: ['Mixer/Mix3/Aes1_2_pair'], 534 # self.mix3adat1_2_pair: ['Mixer/Mix3/Adat1_2_pair'], 535 # self.mix3adat3_4_pair: ['Mixer/Mix3/Adat3_4_pair'], 536 # self.mix3adat5_6_pair: ['Mixer/Mix3/Adat5_6_pair'], 537 # self.mix3adat7_8_pair: ['Mixer/Mix3/Adat7_8_pair'], 538 # self.mix3spdif1_2_pair: ['Mixer/Mix3/Spdif1_2_pair'], 539 540 # self.mix4ana1_2_pair: ['Mixer/Mix4/Ana1_2_pair'], 541 # self.mix4ana3_4_pair: ['Mixer/Mix4/Ana3_4_pair'], 542 # self.mix4ana5_6_pair: ['Mixer/Mix4/Ana5_6_pair'], 543 # self.mix4ana7_8_pair: ['Mixer/Mix4/Ana7_8_pair'], 544 # self.mix4aes1_2_pair: ['Mixer/Mix4/Aes1_2_pair'], 545 # self.mix4adat1_2_pair: ['Mixer/Mix4/Adat1_2_pair'], 546 # self.mix4adat3_4_pair: ['Mixer/Mix4/Adat3_4_pair'], 547 # self.mix4adat5_6_pair: ['Mixer/Mix4/Adat5_6_pair'], 548 # self.mix4adat7_8_pair: ['Mixer/Mix4/Adat7_8_pair'], 549 # self.mix4spdif1_2_pair: ['Mixer/Mix4/Spdif1_2_pair'], 550 550 } 551 551 … … 560 560 self.optical_in_mode: ['/Mixer/Control/OpticalIn_mode'], 561 561 self.optical_out_mode: ['/Mixer/Control/OpticalOut_mode'], 562 563 self.meter_src_ctrl: ['/Mixer/Control/Meter_src'], 564 self.aesebu_meter_ctrl: ['/Mixer/Control/Meter_aesebu_src'], 565 self.peakhold_time_ctrl:['/Mixer/Control/Meter_peakhold_time'], 566 self.cliphold_time_ctrl:['/Mixer/Control/Meter_cliphold_time'], 562 567 } 563 568 … … 594 599 # Mic input controls displace AES/EBU since no current device 595 600 # has both. 596 self.mix1_ aes_group.setTitle("Mic inputs")597 self.mix2_ aes_group.setTitle("Mic inputs")598 self.mix3_ aes_group.setTitle("Mic inputs")599 self.mix4_ aes_group.setTitle("Mic inputs")601 self.mix1_tab.setTabLabel(self.mix1_tab.page(1), "Mic inputs"); 602 self.mix2_tab.setTabLabel(self.mix1_tab.page(1), "Mic inputs"); 603 self.mix3_tab.setTabLabel(self.mix1_tab.page(1), "Mic inputs"); 604 self.mix4_tab.setTabLabel(self.mix1_tab.page(1), "Mic inputs"); 600 605 # FIXME: when implmented, will mic channels just reuse the AES/EBU 601 606 # dbus path? If not we'll have to reset the respective values in … … 603 608 else: 604 609 if (not(self.has_aesebu_inputs)): 605 self.mix1_ aes_group.setEnabled(False)606 self.mix2_ aes_group.setEnabled(False)607 self.mix3_ aes_group.setEnabled(False)608 self.mix4_ aes_group.setEnabled(False)610 self.mix1_tab.page(1).setEnabled(False) 611 self.mix2_tab.page(1).setEnabled(False) 612 self.mix3_tab.page(1).setEnabled(False) 613 self.mix4_tab.page(1).setEnabled(False) 609 614 if (not(self.has_spdif_inputs)): 610 self.mix1_spdif_group.setEnabled(False) 611 self.mix2_spdif_group.setEnabled(False) 612 self.mix3_spdif_group.setEnabled(False) 613 self.mix4_spdif_group.setEnabled(False) 614 615 # Devices without AES/EBU inputs/outputs have dedicated "MainOut" 616 # outputs instead. 617 if (not(self.has_aesebu_inputs)): 615 self.mix1_tab.page(2).setEnabled(False); 616 self.mix2_tab.page(2).setEnabled(False); 617 self.mix3_tab.page(2).setEnabled(False); 618 self.mix4_tab.page(2).setEnabled(False); 619 620 # Devices without AES/EBU inputs/outputs (normally ID 6 in the 621 # destination lists) have dedicated "MainOut" outputs instead. The 622 # 896HD is an exception: it uses ID 6 for MainOut and ID 7 623 # (nominally SPDIF) for AES/EBU. 624 if (not(self.has_aesebu_inputs) or self.model==MOTU_MODEL_896HD): 618 625 self.mix1_dest.changeItem("MainOut", 6) 619 626 self.mix2_dest.changeItem("MainOut", 6) 620 627 self.mix3_dest.changeItem("MainOut", 6) 621 628 self.mix4_dest.changeItem("MainOut", 6) 629 self.phones_src.changeItem("MainOut", 6) 630 # Change the SPDIF destination to AES/EBU for the 896HD. 631 if (self.model == MOTU_MODEL_896HD): 632 self.mix1_dest.changeItem("AES/EBU", 7) 633 self.mix2_dest.changeItem("AES/EBU", 7) 634 self.mix3_dest.changeItem("AES/EBU", 7) 635 self.mix4_dest.changeItem("AES/EBU", 7) 636 self.phones_src.changeItem("AES/EBU", 7) 622 637 623 638 # Some devices don't have the option of selecting an optical SPDIF … … 627 642 self.optical_out_mode.removeItem(2) 628 643 644 # Only the 896HD has meter controls 645 if (self.model != MOTU_MODEL_896HD): 646 self.disable_hide(self.meter_src) 647 self.disable_hide(self.aesebu_meter) 648 self.disable_hide(self.peakhold_time) 649 self.disable_hide(self.cliphold_time) 650 629 651 # Some controls must be disabled if the device is streaming 630 652 if (self.is_streaming): … … 636 658 if (self.sample_rate > 96000): 637 659 print "Disabling controls not present above 96 kHz" 638 self.mix1_ adat_group.setEnabled(False)639 self.mix1_ aes_group.setEnabled(False)640 self.mix1_ spdif_group.setEnabled(False)641 self.mix2_ adat_group.setEnabled(False)642 self.mix2_ aes_group.setEnabled(False)643 self.mix2_ spdif_group.setEnabled(False)644 self.mix3_ adat_group.setEnabled(False)645 self.mix3_ aes_group.setEnabled(False)646 self.mix3_ spdif_group.setEnabled(False)647 self.mix4_ adat_group.setEnabled(False)648 self.mix4_ aes_group.setEnabled(False)649 self.mix4_ spdif_group.setEnabled(False)660 self.mix1_tab.page(3).setEnabled(False) # ADAT 661 self.mix1_tab.page(2).setEnabled(False) # SPDIF 662 self.mix1_tab.page(1).setEnabled(False) # AES/EBU 663 self.mix2_tab.page(3).setEnabled(False) # ADAT 664 self.mix2_tab.page(2).setEnabled(False) # SPDIF 665 self.mix2_tab.page(1).setEnabled(False) # AES/EBU 666 self.mix3_tab.page(3).setEnabled(False) # ADAT 667 self.mix3_tab.page(2).setEnabled(False) # SPDIF 668 self.mix3_tab.page(1).setEnabled(False) # AES/EBU 669 self.mix4_tab.page(3).setEnabled(False) # ADAT 670 self.mix4_tab.page(2).setEnabled(False) # SPDIF 671 self.mix4_tab.page(1).setEnabled(False) # AES/EBU 650 672 if (self.sample_rate > 48000): 651 673 print "Disabling controls not present above 48 kHz" 652 self.mix1_adat58_group.setEnabled(False) 653 self.mix2_adat58_group.setEnabled(False) 654 self.mix3_adat58_group.setEnabled(False) 655 self.mix4_adat58_group.setEnabled(False) 674 self.mix1_adat5.setEnabled(False) 675 self.mix1_adat6.setEnabled(False) 676 self.mix1_adat7.setEnabled(False) 677 self.mix1_adat8.setEnabled(False) 678 self.mix2_adat5.setEnabled(False) 679 self.mix2_adat6.setEnabled(False) 680 self.mix2_adat7.setEnabled(False) 681 self.mix2_adat8.setEnabled(False) 682 self.mix3_adat5.setEnabled(False) 683 self.mix3_adat6.setEnabled(False) 684 self.mix3_adat7.setEnabled(False) 685 self.mix3_adat8.setEnabled(False) 686 self.mix4_adat5.setEnabled(False) 687 self.mix4_adat6.setEnabled(False) 688 self.mix4_adat7.setEnabled(False) 689 self.mix4_adat8.setEnabled(False) 656 690 657 691 # Ensure the correct input controls are active for a given interface 658 692 if (self.model == MOTU_MODEL_TRAVELER): 659 693 self.disable_hide(self.ana1_level) 660 self.disable_hide(self.ana1_level_label)661 694 self.disable_hide(self.ana2_level) 662 self.disable_hide(self.ana2_level_label)663 695 self.disable_hide(self.ana3_level) 664 self.disable_hide(self.ana3_level_label)665 696 self.disable_hide(self.ana4_level) 666 self.disable_hide(self.ana4_level_label)667 697 self.disable_hide(self.ana1_boost) 668 self.disable_hide(self.ana1_boost_label)669 698 self.disable_hide(self.ana2_boost) 670 self.disable_hide(self.ana2_boost_label)671 699 self.disable_hide(self.ana3_boost) 672 self.disable_hide(self.ana3_boost_label)673 700 self.disable_hide(self.ana4_boost) 674 self.disable_hide(self.ana4_boost_label) 701 self.disable_hide(self.ana5_trimgain) 702 self.disable_hide(self.ana5_trimgain_label) 703 self.disable_hide(self.ana6_trimgain) 704 self.disable_hide(self.ana6_trimgain_label) 705 self.disable_hide(self.ana7_trimgain) 706 self.disable_hide(self.ana7_trimgain_label) 707 self.disable_hide(self.ana8_trimgain) 708 self.disable_hide(self.ana8_trimgain_label) 709 self.disable_hide(self.ana5_pad) 710 self.disable_hide(self.ana6_pad) 711 self.disable_hide(self.ana7_pad) 712 self.disable_hide(self.ana8_pad) 675 713 else: 676 714 self.disable_hide(self.ana1_trimgain) … … 683 721 self.disable_hide(self.ana4_trimgain_label) 684 722 self.disable_hide(self.ana1_pad) 685 self.disable_hide(self.ana1_pad_label)686 723 self.disable_hide(self.ana2_pad) 687 self.disable_hide(self.ana2_pad_label)688 724 self.disable_hide(self.ana3_pad) 689 self.disable_hide(self.ana3_pad_label)690 725 self.disable_hide(self.ana4_pad) 691 self.disable_hide(self.ana4_pad_label) 726 self.disable_hide(self.ana5_trimgain) 727 self.disable_hide(self.ana5_trimgain_label) 728 self.disable_hide(self.ana6_trimgain) 729 self.disable_hide(self.ana6_trimgain_label) 730 self.disable_hide(self.ana7_trimgain) 731 self.disable_hide(self.ana7_trimgain_label) 732 self.disable_hide(self.ana8_trimgain) 733 self.disable_hide(self.ana8_trimgain_label) 734 self.disable_hide(self.ana5_pad) 735 self.disable_hide(self.ana6_pad) 736 self.disable_hide(self.ana7_pad) 737 self.disable_hide(self.ana8_pad) 692 738 693 739 # Now fetch the current values into the respective controls. Don't … … 735 781 val = self.hw.getMatrixMixerValue(info[0], info[1], info[2]) 736 782 print "%s for mix %d channel %d is %d" % (info[0] , info[1], info[2], val) 737 ctrl.set Checked(val)783 ctrl.setOn(val) 738 784 QObject.connect(ctrl, SIGNAL('toggled(bool)'), self.updateChannelBinarySwitch) 739 785 … … 743 789 val = self.hw.getDiscrete(info[0]) 744 790 print "%s switch is %d" % (info[0] , val) 745 ctrl.set Checked(val)791 ctrl.setOn(val) 746 792 QObject.connect(ctrl, SIGNAL('toggled(bool)'), self.updateBinarySwitch) 747 793