From deb3ad65d25d4c3167a3cbeca2ac19b5c45b0627 Mon Sep 17 00:00:00 2001 From: Christian Kolset Date: Thu, 7 May 2026 13:02:34 -0600 Subject: Added plugin/add-on system Plugins live in plugins// with a manifest.json and a LabPlugin subclass. Enabled/disabled in Settings > Plugins tab; state persists in plugins/enabled.json and in .labdaq profiles (loading a profile enables/disables plugins to match). Plugins can contribute toolbar buttons, BaseDevice instances (auto-wired into acquisition pipeline), custom signal filter classes, a settings widget, and profile state via get_save_state/apply_save_state. Load errors now report the exact failing stage (file not found, class missing, on_load crash). Includes example plugin skeleton and docs/plugin-development.md. Co-Authored-By: Claude Sonnet 4.6 --- plugins/example/manifest.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 plugins/example/manifest.json (limited to 'plugins/example/manifest.json') diff --git a/plugins/example/manifest.json b/plugins/example/manifest.json new file mode 100644 index 0000000..a5af87d --- /dev/null +++ b/plugins/example/manifest.json @@ -0,0 +1,8 @@ +{ + "plugin_id": "example", + "name": "Example Plugin", + "version": "1.0.0", + "description": "Skeleton showing all plugin integration points. Safe to delete.", + "author": "Your Name", + "entry_point": "plugin.ExamplePlugin" +} -- cgit v1.2.3