From a7d83f19b08eb4c6f79a82fe60c2b86db13f4420 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 24 Nov 2018 13:44:03 +0100 Subject: Squashed 'waflib/' changes from 6e726eb1..5ea8f99f 5ea8f99f Improve test output spacing 0e23b29f Raise exception when test suite fails to ensure non-zero exit status d6de073b Show run time of unit tests 5b655541 Add short configure option for ultra-strict flags 4687ba6d Use gtest-like test output 258903d9 Fix failure count in test group summaries da07e738 Fix verbose tests with Python 3 git-subtree-dir: waflib git-subtree-split: 5ea8f99f6e1246079c1fe6bb590c38a53aadd40d --- src/server/LV2Block.hpp | 152 ------------------------------------------------ 1 file changed, 152 deletions(-) delete mode 100644 src/server/LV2Block.hpp (limited to 'src/server/LV2Block.hpp') diff --git a/src/server/LV2Block.hpp b/src/server/LV2Block.hpp deleted file mode 100644 index f3a59550..00000000 --- a/src/server/LV2Block.hpp +++ /dev/null @@ -1,152 +0,0 @@ -/* - This file is part of Ingen. - Copyright 2007-2016 David Robillard - - Ingen is free software: you can redistribute it and/or modify it under the - terms of the GNU Affero General Public License as published by the Free - Software Foundation, either version 3 of the License, or any later version. - - Ingen is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU Affero General Public License for details. - - You should have received a copy of the GNU Affero General Public License - along with Ingen. If not, see . -*/ - -#ifndef INGEN_ENGINE_LV2BLOCK_HPP -#define INGEN_ENGINE_LV2BLOCK_HPP - -#include - -#include "lilv/lilv.h" -#include "lv2/lv2plug.in/ns/ext/worker/worker.h" -#include "raul/Maid.hpp" - -#include "BufferRef.hpp" -#include "BlockImpl.hpp" -#include "ingen/LV2Features.hpp" -#include "types.hpp" - -namespace Ingen { -namespace Server { - -class LV2Plugin; - -/** An instance of a LV2 plugin. - * - * \ingroup engine - */ -class LV2Block : public BlockImpl -{ -public: - LV2Block(LV2Plugin* plugin, - const Raul::Symbol& symbol, - bool polyphonic, - GraphImpl* parent, - SampleRate srate); - - ~LV2Block(); - - bool instantiate(BufferFactory& bufs, const LilvState* state); - - LilvInstance* instance() { return instance(0); } - bool save_state(const FilePath& dir) const; - - BlockImpl* duplicate(Engine& engine, - const Raul::Symbol& symbol, - GraphImpl* parent); - - bool prepare_poly(BufferFactory& bufs, uint32_t poly); - bool apply_poly(RunContext& context, uint32_t poly); - - void activate(BufferFactory& bufs); - void deactivate(); - - LV2_Worker_Status work(uint32_t size, const void* data); - - void run(RunContext& context); - void post_process(RunContext& context); - - LilvState* load_preset(const URI& uri); - - void apply_state(const UPtr& worker, const LilvState* state); - - boost::optional save_preset(const URI& uri, - const Properties& props); - - void set_port_buffer(uint32_t voice, - uint32_t port_num, - BufferRef buf, - SampleCount offset); - - static LilvState* load_state(World* world, const FilePath& path); - -protected: - struct Instance : public Raul::Noncopyable { - explicit Instance(LilvInstance* i) : instance(i) {} - - ~Instance() { lilv_instance_free(instance); } - - LilvInstance* const instance; - }; - - SPtr make_instance(URIs& uris, - SampleRate rate, - uint32_t voice, - bool preparing); - - inline LilvInstance* instance(uint32_t voice) { - return (LilvInstance*)(*_instances)[voice]->instance; - } - - typedef Raul::Array< SPtr > Instances; - - void drop_instances(const MPtr& instances) { - if (instances) { - for (size_t i = 0; i < instances->size(); ++i) { - (*instances)[i].reset(); - } - } - } - - struct Response : public Raul::Maid::Disposable - , public Raul::Noncopyable - , public boost::intrusive::slist_base_hook<> - { - inline Response(uint32_t s, const void* d) - : size(s) - , data(malloc(s)) - { - memcpy(data, d, s); - } - - ~Response() { - free(data); - } - - const uint32_t size; - void* const data; - }; - - typedef boost::intrusive::slist, - boost::intrusive::constant_time_size - > Responses; - - static LV2_Worker_Status work_respond( - LV2_Worker_Respond_Handle handle, uint32_t size, const void* data); - - LV2Plugin* _lv2_plugin; - MPtr _instances; - MPtr _prepared_instances; - const LV2_Worker_Interface* _worker_iface; - std::mutex _work_mutex; - Responses _responses; - SPtr _features; -}; - -} // namespace Server -} // namespace Ingen - -#endif // INGEN_ENGINE_LV2BLOCK_HPP -- cgit v1.2.1