Changeset 1065

Show
Ignore:
Timestamp:
04/29/08 03:42:24 (13 years ago)
Author:
arnonym
Message:

Support the Element.Text in the generic mixer. So ppalmers can test wether his nicknames for devices work or not ;-)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/support/mixer/mixer_generic.py

    r998 r1065  
    8383                self.interface.select( i ) 
    8484 
     85class TextWidget( QWidget ): 
     86        def __init__( self, name, interface, parent ): 
     87                QWidget.__init__( self, parent ) 
     88                self.interface = interface 
     89                l = QVBoxLayout( self ) 
     90                l.addWidget( QLabel( name, self ) ) 
     91                self.text = QLineEdit( self ) 
     92                l.addWidget( self.text ) 
     93                self.text.setText( interface.getValue() ) 
     94                self.connect( self.text, SIGNAL( "textChanged( const QString & )" ), self.setText ) 
     95 
     96        def setText( self, text ): 
     97                self.interface.setValue( text.latin1() ) 
     98 
    8599class GenericMixer( QWidget ): 
    86100        def __init__( self, bus, session, parent=None ): 
     
    104118                        name = dbus.Interface( element, "org.ffado.Control.Element.Element" ).getName() 
    105119 
     120                w = None 
     121 
    106122                if interfacelist.count( "org.ffado.Control.Element.Container" ): 
    107                         end = 0 
    108123                        container = dbus.Interface( element, "org.ffado.Control.Element.Container" ) 
    109                         end = container.getNbElements() 
    110124                        w = ContainerWidget( name, container, parentwidget ) 
    111125                        parentwidget.layout().addWidget( w ) 
    112                         for i in range( end ): 
     126                        for i in range( container.getNbElements() ): 
    113127                                #print "%s %i %s" % ( path, i, container.getElementName( i ) ) 
    114128                                self.introspect( bus, session, path + "/" + container.getElementName( i ), w ) 
    115129 
    116                 if interfacelist.count( "org.ffado.Control.Element.Continuous" ): 
    117                         control = dbus.Interface( element, "org.ffado.Control.Element.Continuous" ) 
    118                         w = ContinuousWidget( name, control, parentwidget ) 
     130                if w == None and interfacelist.count( "org.ffado.Control.Element.Continuous" ): 
     131                        w = ContinuousWidget( name, dbus.Interface( element, "org.ffado.Control.Element.Continuous" ), parentwidget ) 
    119132                        parentwidget.layout().addWidget( w ) 
    120133 
    121                 if interfacelist.count( "org.ffado.Control.Element.AttributeEnum" ): 
     134                if w == None and interfacelist.count( "org.ffado.Control.Element.AttributeEnum" ): 
    122135                        w = EnumWidget( name, dbus.Interface( element, "org.ffado.Control.Element.AttributeEnum" ), parentwidget ) 
    123136                        parentwidget.layout().addWidget( w ) 
    124137 
     138                if w == None and interfacelist.count( "org.ffado.Control.Element.Text" ): 
     139                        w = TextWidget( name, dbus.Interface( element, "org.ffado.Control.Element.Text" ), parentwidget ) 
     140                        parentwidget.layout().addWidget( w ) 
     141 
     142                if w == None: 
     143                        w = QLabel( "<qt><b>%s</b> (Not yet implemented)</qt>" % name, parentwidget ) 
     144                        parentwidget.layout().addWidget( w ) 
     145