def test_read(self):
        util = PersistenceDecoder(self.system_effect)

        bank = self.bank()
        bank_readed = util.read(bank.json)

        self.maxDiff = None
        self.assertEqual(bank.json, bank_readed.json)
    def test_read(self):
        system_effect = SystemEffect('system', ('capture_1', 'capture_2'),
                                     ('playback_1', 'playback_2'))

        util = PersistenceDecoder(system_effect)

        bank = self.bank
        bank_readed = util.read(bank.json)

        self.maxDiff = None
        self.assertEqual(bank.json, bank_readed.json)
예제 #3
0
class BankHandler(AbstractRequestHandler):
    _decoder = None
    _manager = None

    def initialize(self, app, webservice):
        super(BankHandler, self).initialize(app, webservice)

        self._manager = self.app.manager
        sys_effect = self.app.controller(DeviceController).sys_effect
        self._decoder = PersistenceDecoder(sys_effect)

    @exception(Exception, 500)
    @exception(IndexError, 400, message='Invalid index')
    @integer('bank_index')
    def get(self, bank_index):
        bank = self._manager.banks[bank_index]

        self.write(bank.json)

    @exception(Exception, 500)
    def post(self):
        json = self.request_data
        bank = self._decoder.read(json)

        with self.observer:
            self._manager.append(bank)

        self.created({"index": bank.index})

    @exception(Exception, 500)
    @exception(IndexError, 400, message='Invalid index')
    @integer('bank_index')
    def put(self, bank_index):
        json = self.request_data

        bank = self._decoder.read(json)
        with self.observer:
            self._manager.banks[bank_index] = bank

        self.success()

    @exception(Exception, 500)
    @exception(IndexError, 400, message='Invalid index')
    @integer('bank_index')
    def delete(self, bank_index):
        bank_index = int(bank_index)

        with self.observer:
            del self._manager.banks[bank_index]

        self.success()
    def test_read_system_builder(self):
        from pluginsmanager.model.system.system_effect_builder import SystemEffectBuilder
        from pluginsmanager.jack.jack_client import JackClient

        client = JackClient(no_start_server=False)
        system_effect = SystemEffectBuilder(client).build()

        util = PersistenceDecoder(system_effect)

        bank = self.bank(midi=False)
        bank_readed = util.read(bank.json)

        self.assertEqual(bank.json, bank_readed.json)
        client.close()
예제 #5
0
    def load(self, system_effect):
        """
        Return a bank list present in data_path

        :param SystemEffect system_effect: SystemEffect used in pedalboards
        :return list[bank]: Banks list in data_path
        """
        persistence = PersistenceDecoder(system_effect)
        banks = []

        for file in glob(self.data_path + "*.json"):
            bank = persistence.read(self._read(file))
            bank._uuid = file.split('/')[-1].split('.json')[0]
            banks.append(bank)

        return sorted(banks, key=lambda b: b.index)
예제 #6
0
    def load(self, system_effect):
        """
        Return a list if banks presents in data_path

        :param SystemEffect system_effect: SystemEffect used in pedalboards
        :return list[Bank]: List with Banks persisted in
                :attr:`~pluginsmanager.observer.autosaver.banks_files.BanksFiles.data_path`
        """
        persistence = PersistenceDecoder(system_effect)

        banks = []

        for file in glob(str(self.data_path) + "/*.json"):
            bank = persistence.read(Persistence.read(file))
            bank._uuid = file.split('/')[-1].split('.json')[0]
            banks.append(bank)

        return banks
    def test_read_unknown_technology(self):
        system_effect = SystemEffect('system', ('capture_1', 'capture_2'), ('playback_1', 'playback_2'))

        bank_data = {
            "index": 3, "name": "Bank 1",
            "pedalboards": [{
                "effects": [{"params": [{"index": 7, "symbol": "decay_time", "value": 1.5},
                                        {"index": 8, "symbol": "hf_damp", "value": 5000},
                                        {"index": 9, "symbol": "room_size", "value": 2},
                                        {"index": 10, "symbol": "diffusion", "value": 0.5},
                                        {"index": 11, "symbol": "amount", "value": 0.25},
                                        {"index": 12, "symbol": "dry", "value": 1},
                                        {"index": 13, "symbol": "predelay", "value": 0},
                                        {"index": 14, "symbol": "bass_cut", "value": 300},
                                        {"index": 15, "symbol": "treble_cut", "value": 5000}],
                "active": True, "technology": "ladspa",
                "plugin": "http://calf.sourceforge.net/plugins/Reverb"}],
            "name": "Pedalboard 1",
            "connections": []}]}

        with self.assertRaises(PersistenceDecoderError):
            PersistenceDecoder(system_effect).read(bank_data)
예제 #8
0
    def initialize(self, app, webservice):
        super(BankHandler, self).initialize(app, webservice)

        self._manager = self.app.manager
        sys_effect = self.app.controller(DeviceController).sys_effect
        self._decoder = PersistenceDecoder(sys_effect)