LMMS
Loading...
Searching...
No Matches
MiddleWare.h
Go to the documentation of this file.
1/*
2 ZynAddSubFX - a software synthesizer
3
4 MiddleWare.h - RT & Non-RT Glue Layer
5 Copyright (C) 2016 Mark McCurry
6
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2
10 of the License, or (at your option) any later version.
11*/
12#pragma once
13#include <functional>
14#include <cstdarg>
15#include <string>
16
18
19namespace zyncarla {
20
21struct SYNTH_T;
22class Master;
23class PresetsStore;
24
25//Link between realtime and non-realtime layers
27{
28 public:
30 int preferred_port = -1);
31 ~MiddleWare(void);
33 //returns internal master pointer
34 class Master *spawnMaster(void);
35
36 //Enable AutoSave Functionality
37 void enableAutoSave(int interval_sec=60);
38
39 //Check for old automatic saves which should only exist if multiple
40 //instances are in use OR when there was a crash
41 //
42 //When an old save is found return the id of the save file
43 int checkAutoSave(void);
44
45 void removeAutoSave(void);
46
47 //return UI interface
49 //Set callback to push UI events to
50 void setUiCallback(void(*cb)(void*,const char *),void *ui);
51 //Set callback to run while busy
52 void setIdleCallback(void(*cb)(void*),void *ptr);
53 //Handle events
54 void tick(void);
55 //Do A Readonly Operation (For Parameter Copy)
56 void doReadOnlyOp(std::function<void()>);
57 //Handle a rtosc Message uToB
58 void transmitMsg(const char *);
59 //Handle a rtosc Message uToB
60 void transmitMsg(const char *, const char *args, ...);
61 //Handle a rtosc Message uToB
62 void transmitMsg_va(const char *, const char *args, va_list va);
63
64 //Send a message to middleware from an arbitrary thread
65 void messageAnywhere(const char *msg, const char *args, ...);
66
67 //Indicate that a bank will be loaded
68 //NOTE: Can only be called by realtime thread
69 void pendingSetBank(int bank);
70
71 //Indicate that a program will be loaded on a known part
72 //NOTE: Can only be called by realtime thread
73 void pendingSetProgram(int part, int program);
74
75 //Get/Set the active bToU url
76 std::string activeUrl(void);
77 void activeUrl(std::string u);
78 //View Synthesis Parameters
79 const SYNTH_T &getSynth(void) const;
80 //liblo stuff
81 const char* getServerAddress(void) const;
82
83 const PresetsStore& getPresetsStore() const;
85 private:
87};
88
89}
90
class MasterUI * ui
Definition Connection.cpp:39
Definition Fl_Osc_Interface.h:56
Definition Config.h:36
Definition Master.h:44
void tick(void)
Definition MiddleWare.cpp:2034
int checkAutoSave(void)
Definition MiddleWare.cpp:1977
void doReadOnlyOp(std::function< void()>)
Definition MiddleWare.cpp:2039
const PresetsStore & getPresetsStore() const
Definition MiddleWare.cpp:2132
const char * getServerAddress(void) const
Definition MiddleWare.cpp:2124
void messageAnywhere(const char *msg, const char *args,...)
Definition MiddleWare.cpp:2082
MiddleWare(SYNTH_T synth, class Config *config, int preferred_port=-1)
Definition MiddleWare.cpp:1950
void enableAutoSave(int interval_sec=60)
Definition MiddleWare.cpp:1972
void setIdleCallback(void(*cb)(void *), void *ptr)
Definition MiddleWare.cpp:2050
void transmitMsg(const char *)
Definition MiddleWare.cpp:2056
void updateResources(Master *m)
Definition MiddleWare.cpp:1960
void removeAutoSave(void)
Definition MiddleWare.cpp:2022
const SYNTH_T & getSynth(void) const
Definition MiddleWare.cpp:2119
class Master * spawnMaster(void)
Definition MiddleWare.cpp:1965
class MiddleWareImpl * impl
Definition MiddleWare.h:86
void transmitMsg_va(const char *, const char *args, va_list va)
Definition MiddleWare.cpp:2073
void setUiCallback(void(*cb)(void *, const char *), void *ui)
Definition MiddleWare.cpp:2044
std::string activeUrl(void)
Definition MiddleWare.cpp:2109
void pendingSetBank(int bank)
Definition MiddleWare.cpp:2099
~MiddleWare(void)
Definition MiddleWare.cpp:1955
Fl_Osc_Interface * spawnUiApi(void)
Definition MiddleWare.cpp:2029
void pendingSetProgram(int part, int program)
Definition MiddleWare.cpp:2103
Definition MiddleWare.cpp:412
Definition PresetsStore.h:24
unsigned * m
Definition inflate.c:1559
struct huft * u[BMAX]
Definition inflate.c:1583
struct config_s config
const char * msg
Definition missing_descriptor.c:20
Definition zynaddsubfx-src.cpp:569
const SYNTH_T & synth
Definition PADnoteParameters.h:210
Definition globals.h:294