Changeset 2474

Show
Ignore:
Timestamp:
01/29/14 09:33:18 (9 years ago)
Author:
philippe
Message:

ffado-mixer/RME: file saving of settings. Attempt to adapt for RME: compilation check only.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libffado/support/mixer-qt4/ffado/mixer/rme.py

    r2412 r2474  
    475475        self.update_timer.start(1000) 
    476476 
     477    def saveSettings(self, indent): 
     478        saveString = [] 
     479        idt = indent + "  " 
     480        saveString.append('%s<inputmatrix>\n' % indent) 
     481        saveString.extend(self.inputmatrix.saveSettings(idt)) 
     482        # Do not forget to mention the adopted rule for matrix columns mixer 
     483        #  This might be useful for future import function 
     484        saveString.append("%s  <col_rule>\n" % indent) 
     485        saveString.append("%s    Columns_are_inputs\n" % indent) 
     486        saveString.append("%s  </col_rule>\n" % indent) 
     487        saveString.append('%s</inputmatrix>\n' % indent) 
     488 
     489        saveString.append('%s<playbackmatrix>\n' % indent) 
     490        saveString.extend(self.inputmatrix.saveSettings(idt)) 
     491        # Do not forget to mention the adopted rule for matrix columns mixer 
     492        #  This might be useful for future import function 
     493        saveString.append("%s  <col_rule>\n" % indent) 
     494        saveString.append("%s    Columns_are_inputs\n" % indent) 
     495        saveString.append("%s  </col_rule>\n" % indent) 
     496        saveString.append('%s</playbackmatrix>\n' % indent) 
     497 
     498        saveString.append('%s<outputmatrix>\n' % indent) 
     499        saveString.extend(self.inputmatrix.saveSettings(idt)) 
     500        # Do not forget to mention the adopted rule for matrix columns mixer 
     501        #  This might be useful for future import function 
     502        saveString.append("%s  <col_rule>\n" % indent) 
     503        saveString.append("%s    Columns_are_inputs\n" % indent) 
     504        saveString.append("%s  </col_rule>\n" % indent) 
     505        saveString.append('%s</outputmatrix>\n' % indent) 
     506        return saveString 
     507 
     508    def readSettings(self, readString): 
     509        try: 
     510            idxb = readString.index('<inputmatrix>') 
     511            idxe = readString.index('</inputmatrix>') 
     512        except Exception: 
     513            log.debug("No Input matrix settings found") 
     514            idxb = -1 
     515            idxe = -1 
     516        if idxb >= 0: 
     517            if idxe > idxb + 1: 
     518                stringMixer = [] 
     519                for s in readString[idxb+1:idxe]: 
     520                    stringMixer.append(s) 
     521                # When trying to import from a different device, the rule for column interpretation is 
     522                # not necessarily the same 
     523                try: 
     524                    idx = stringMixer.index('<col_rule>') 
     525                except Exception: 
     526                    log.debug('Do not know how to handle column versus input/output') 
     527                    idx = -1 
     528                transpose_coeff = False 
     529                if idx >=0: 
     530                    if stringMixer[idx+1].find("Columns_are_inputs") == -1: 
     531                        log.debug('Transposing the matrix coefficient; you are importing, are not you ?') 
     532                        transpose_coeff = True 
     533                if self.inputmatrix.readSettings(stringMixer, transpose_coeff): 
     534                    log.debug("Input matrix settings modified") 
     535                del stringMixer 
     536 
     537        try: 
     538            idxb = readString.index('<playbackmatrix>') 
     539            idxe = readString.index('</playbackmatrix>') 
     540        except Exception: 
     541            log.debug("No Plaback matrix settings found") 
     542            idxb = -1 
     543            idxe = -1 
     544        if idxb >= 0: 
     545            if idxe > idxb + 1: 
     546                stringMixer = [] 
     547                for s in readString[idxb+1:idxe]: 
     548                    stringMixer.append(s) 
     549                # When trying to import from a different device, the rule for column interpretation is 
     550                # not necessarily the same 
     551                try: 
     552                    idx = stringMixer.index('<col_rule>') 
     553                except Exception: 
     554                    log.debug('Do not know how to handle column versus input/output') 
     555                    idx = -1 
     556                transpose_coeff = False 
     557                if idx >=0: 
     558                    if stringMixer[idx+1].find("Columns_are_inputs") == -1: 
     559                        log.debug('Transposing the matrix coefficient; you are importing, are not you ?') 
     560                        transpose_coeff = True 
     561                if self.playbackmatrix.readSettings(stringMixer, transpose_coeff): 
     562                    log.debug("Plaback matrix settings modified") 
     563                del stringMixer 
     564 
     565        try: 
     566            idxb = readString.index('<outputmatrix>') 
     567            idxe = readString.index('</outputmatrix>') 
     568        except Exception: 
     569            log.debug("No Output matrix settings found") 
     570            idxb = -1 
     571            idxe = -1 
     572        if idxb >= 0: 
     573            if idxe > idxb + 1: 
     574                stringMixer = [] 
     575                for s in readString[idxb+1:idxe]: 
     576                    stringMixer.append(s) 
     577                # When trying to import from a different device, the rule for column interpretation is 
     578                # not necessarily the same 
     579                try: 
     580                    idx = stringMixer.index('<col_rule>') 
     581                except Exception: 
     582                    log.debug('Do not know how to handle column versus input/output') 
     583                    idx = -1 
     584                transpose_coeff = False 
     585                if idx >=0: 
     586                    if stringMixer[idx+1].find("Columns_are_inputs") == -1: 
     587                        log.debug('Transposing the matrix coefficient; you are importing, are not you ?') 
     588                        transpose_coeff = True 
     589                if self.outputmatrix.readSettings(stringMixer, transpose_coeff): 
     590                    log.debug("Output matrix settings modified") 
     591                del stringMixer 
     592 
    477593# vim: et