jsweeper/src/portmanager.h

47 lines
1013 B
C++

#ifndef PORTMANAGER_H
#define PORTMANAGER_H
#include <jack/jack.h>
#include "port.h"
struct Alias
{
std::string name;
std::string alias;
};
typedef std::list<Alias> AliasList;
class PortManager
{
public:
ClientList m_clients;
PortList m_ports;
AliasList m_aliases;
public:
void Add(jack_port_t *port);
void Delete(jack_port_t *port);
void Connect(jack_port_t *port_a, jack_port_t *port_b);
void Disconnect(jack_port_t *port_a, jack_port_t *port_b);
Client *FindOrMakeClient(std::string name, bool is_input, bool is_midi);
PortGroup *FindOrMakeGroup(Client *client, JackPortFlags flags, std::string name);
Port *FindPort(jack_port_t *port);
void Sort();
void ToggleConnect(Port *a, Port *b);
void ToggleConnect(Port *a, PortGroup *b);
void ToggleConnect(PortGroup *a, Port *b);
void ToggleConnect(PortGroup *a, PortGroup *b);
void AliasBay(jack_port_t *port, int num_aliases, char *aliases[2]);
void AliasLoad(std::string filename);
};
extern PortManager pm;
#endif // PORTMANAGER_H