def __init__(self, path): if match('/dev/snd/hwC[0-9]*D0', path): super().__init__() self.open(path) if self.get_property('type') != 4: raise ValueError('The character device is not for OXFW unit') self.listen() self._on_juju = False, elif match('/dev/fw[0-9]*', path): # Just using parent class. super(Hinawa.FwUnit, self).__init__() Hinawa.FwUnit.open(self, path) Hinawa.FwUnit.listen(self) self._on_juju = True else: raise ValueError('Invalid argument for character device') parser = Ta1394ConfigRomParser() info = parser.parse_rom(self.get_config_rom()) self.vendor_name = info['vendor-name'] self.model_name = info['model-name'] self.fcp = Hinawa.FwFcp() self.fcp.listen(self) self.hw_info = self._parse_hardware_info() self.supported_sampling_rates = self._parse_supported_sampling_rates() self.supported_stream_formats = self._parse_supported_stream_formats()
def __init__(self, path): if match('/dev/snd/hwC[0-9]*D0', path): super().__init__() self.open(path) if self.get_property('type') != 3: raise ValueError('The character device is not for BeBoB unit') self._on_juju = False, self.listen() elif match('/dev/fw[0-9]*', path): # Just using parent class. super(Hinawa.FwUnit, self).__init__() Hinawa.FwUnit.open(self, path) Hinawa.FwUnit.listen(self) self._on_juju = True else: raise ValueError('Invalid argument for character device') parser = BebobConfigRomParser() info = parser.parse_rom(self.get_config_rom()) self.vendor_id = info['vendor-id'] self.model_id = info['model-id'] self.fcp = Hinawa.FwFcp() self.fcp.listen(self) self.firmware_info = self._get_firmware_info()
def __init__(self, path): super().__init__() self.open(path) if self.get_property('type') != 4: raise ValueError('The character device is not for OXFW unit') ctx = GLib.MainContext.new() self.create_source().attach(ctx) self.__unit_dispatcher = GLib.MainLoop.new(ctx, False) self.__unit_th = Thread(target=lambda d: d.run(), args=(self.__unit_dispatcher, )) self.__unit_th.start() node = self.get_node() ctx = GLib.MainContext.new() node.create_source().attach(ctx) self.__node_dispatcher = GLib.MainLoop.new(ctx, False) self.__node_th = Thread(target=lambda d: d.run(), args=(self.__node_dispatcher, )) self.__node_th.start() parser = Ta1394ConfigRomParser() info = parser.parse_rom(self.get_node().get_config_rom()) self.vendor_name = info['vendor-name'] self.model_name = info['model-name'] self.fcp = Hinawa.FwFcp() self.fcp.bind(self.get_node()) self.hw_info = self._parse_hardware_info() self.supported_sampling_rates = self._parse_supported_sampling_rates() self.supported_stream_formats = self._parse_supported_stream_formats()
def __init__(self, path): super().__init__() self.open(path) if self.get_property('type') != 3: raise ValueError('The character device is not for BeBoB unit') ctx = GLib.MainContext.new() self.create_source().attach(ctx) self.__unit_dispatcher = GLib.MainLoop.new(ctx, False) self.__unit_th = Thread(target=lambda d: d.run(), args=(self.__unit_dispatcher, )) self.__unit_th.start() node = self.get_node() ctx = GLib.MainContext.new() node.create_source().attach(ctx) self.__node_dispatcher = GLib.MainLoop.new(ctx, False) self.__node_th = Thread(target=lambda d: d.run(), args=(self.__node_dispatcher, )) self.__node_th.start() parser = BebobConfigRomParser() info = parser.parse_rom(self.get_node().get_config_rom()) self.vendor_id = info['vendor-id'] self.model_id = info['model-id'] self.fcp = Hinawa.FwFcp() self.fcp.bind(self.get_node()) self.firmware_info = self._get_firmware_info()
def __init__(self, path): super().__init__() self.open(path) self.listen() fcp = Hinawa.FwFcp() fcp.listen(self) self.unit_info = self._parse_unit_info(fcp) self.unit_plugs = self._parse_unit_plugs(fcp) self.subunit_plugs = self._parse_subunit_plugs(fcp) self.function_block_plugs = self._parse_function_block_plugs(fcp) self.stream_formats = self._parse_stream_formats(fcp) self.signal_destination = self._parse_signal_destination(fcp) self.signal_sources = self._parse_signal_sources(fcp) fcp.unlisten() del fcp
resp.connect('requested', handle_request) except Exception as e: print(e) exit() # create firewire requester req = Hinawa.FwReq() # Fireworks/BeBoB/OXFW supports FCP and some AV/C commands fcp_types = ( Hinawa.SndUnitType.FIREWORKS, Hinawa.SndUnitType.BEBOB, Hinawa.SndUnitType.OXFW, ) if unit.get_property('type') in fcp_types: fcp = Hinawa.FwFcp() try: fcp.bind(node) except Exception as e: print(e) exit() request = bytes([0x01, 0xff, 0x19, 0x00, 0xff, 0xff, 0xff, 0xff]) response = bytearray(8) try: response = fcp.transaction(request, response) except Exception as e: print(e) exit() print('FCP Response:') for i, b in enumerate(response): print(' [{0:02d}]: 0x{1:02x}'.format(i, b))