Пример #1
0
 def set_mixer_src(self, target, src, db):
     offset = FFMixerRegs.calculate_src_offset(self.__spec, target, src)
     val = self.__build_val_from_db(db)
     data = pack('<I', val)
     req = Hinawa.FwReq()
     req.transaction(self.get_node(), Hinawa.FwTcode.WRITE_BLOCK_REQUEST,
                     self.__regs[1] + offset, len(data), data)
     self.__mixer_cache[offset // 4] = val
     self.__write_cache_to_file()
Пример #2
0
 def __create_mixer_initial_cache(self):
     targets = self.get_mixer_labels()
     srcs = self.get_mixer_src_labels()
     cache = [0x00] * (len(targets) * 2 * self.__spec['avail'])
     for i, target in enumerate(targets):
         for src in srcs:
             # Supply diagonal stream sources to each mixers.
             if src != 'stream-{0}'.format(i + 1):
                 val = self.__MUTE_VAL
             else:
                 val = self.__ZERO_VAL
             offset = FFMixerRegs.calculate_src_offset(
                 self.__spec, target, src)
             cache[offset // 4] = val
     return cache
Пример #3
0
 def get_mixer_src(self, target, src):
     offset = FFMixerRegs.calculate_src_offset(self.__spec, target, src)
     return self.__parse_val_to_db(self.__mixer_cache[offset // 4])
Пример #4
0
 def get_mixer_src_labels(self):
     return FFMixerRegs.get_mixer_src_labels(self.__spec)