{"id":42018154,"url":"https://github.com/4ms/metamodule-core-interface","last_synced_at":"2026-01-26T03:18:35.443Z","repository":{"id":239999991,"uuid":"784974572","full_name":"4ms/metamodule-core-interface","owner":"4ms","description":"CoreModule interface for MetaModule","archived":false,"fork":false,"pushed_at":"2025-06-26T17:53:24.000Z","size":172,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-06-26T18:41:37.361Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/4ms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-04-10T23:52:25.000Z","updated_at":"2025-06-10T18:46:20.000Z","dependencies_parsed_at":"2024-08-26T22:03:44.568Z","dependency_job_id":"ce2840a7-1b0a-4e86-8617-90a9bf8cc6c9","html_url":"https://github.com/4ms/metamodule-core-interface","commit_stats":null,"previous_names":["4ms/metamodule-core-interface"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/4ms/metamodule-core-interface","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4ms%2Fmetamodule-core-interface","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4ms%2Fmetamodule-core-interface/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4ms%2Fmetamodule-core-interface/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4ms%2Fmetamodule-core-interface/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/4ms","download_url":"https://codeload.github.com/4ms/metamodule-core-interface/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/4ms%2Fmetamodule-core-interface/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28765595,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T02:25:41.078Z","status":"ssl_error","status_checked_at":"2026-01-26T02:24:28.809Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-26T03:18:34.887Z","updated_at":"2026-01-26T03:18:35.437Z","avatar_url":"https://github.com/4ms.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## metamodule-core-interface\n\nThis is the interface for modules with the MetaModule core.\n\nIt provides:\n\n- `CoreProcessor` class. All MetaModule modules must derive from this base class. See `CoreModules/CoreProcessor.hh`\n\n- `SmartCoreProcessor` class, which derives from `CoreProcessor`. See `CoreModules/SmartCoreProcessor.hh`.\n  This is useful for creating modules that have an auto-generated Info struct\n  (a constexpr struct derived from ModuleInfoBase that defines all the module's\n  jacks, knobs, etc).\n    - There is also a helper class `CoreHelper` which provides some helper\n      functions for accessing elements from an Info class safely, without\n      needing to derive from SmartCoreProcessor. See\n      `CoreModules/CoreHelper.hh`\n    - There are also many helper functions for dealing with info structs in\n      `CoreModules/elements/`\n\n\n- `register_module()` function. This allows a plugin to register a module's\n  info (name, elements, faceplate, etc). See `CoreModules/register_module.hh`\n\n- `Element` variant type. A module creates an array or vector of Elements to\n  define the position, name, type, etc of all of its controls, jacks, lights\n  and display screens. Each subtype in the variant is a particular type of\n  object you might see on a module, for example Knob, Slider, LatchingButton,\n  JackInput, RgbLight, etc... See `CoreModules/elements/elements.hh` for the\n  variant definition, and `CoreModules/elements/base_element.hh` for the type\n  hierarchy and fields for each type.\n\n- `AsyncThread` class. Modules can create an AsyncThread object and pass it a\n  function or lambda to run in a background thread. \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F4ms%2Fmetamodule-core-interface","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F4ms%2Fmetamodule-core-interface","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F4ms%2Fmetamodule-core-interface/lists"}