Add optional local aliases
git-svn-id: file:///home/vcs/svn/jsweeper/trunk@9 6611ac79-6612-48ef-a1e9-b906f853523emaster
parent
f9298c351d
commit
242d908852
|
@ -22,6 +22,9 @@ void Config::Read()
|
|||
CellPadding = group->GetValue("cellpadding", 3);
|
||||
FontSize = group->GetValue("fontsize", 10);
|
||||
FontFace = group->GetValue("fontface", "Sans");
|
||||
|
||||
group = ini.GetGroup("general");
|
||||
LocalAliases = group->GetValue("localaliases", true);
|
||||
SeparateByPortType = group->GetValue("separatebyporttype", false);
|
||||
ExpandClients = group->GetValue("expandclients", true);
|
||||
ExpandGroups = group->GetValue("expandgroups", false);
|
||||
|
@ -55,6 +58,9 @@ void Config::Write()
|
|||
group->SetValue("cellpadding", CellPadding);
|
||||
group->SetValue("fontsize", FontSize);
|
||||
group->SetValue("fontface", FontFace);
|
||||
|
||||
group = ini.GetGroup("general");
|
||||
group->SetValue("localaliases", LocalAliases);
|
||||
group->SetValue("separatebyporttype", SeparateByPortType);
|
||||
group->SetValue("expandclients", ExpandClients);
|
||||
group->SetValue("expandgroups", ExpandGroups);
|
||||
|
|
|
@ -15,6 +15,7 @@ public:
|
|||
int FontSize;
|
||||
std::string FontFace;
|
||||
|
||||
bool LocalAliases;
|
||||
bool SeparateByPortType;
|
||||
bool ExpandClients;
|
||||
bool ExpandGroups;
|
||||
|
|
|
@ -27,7 +27,7 @@ void PortManager::Refresh()
|
|||
const char **connections = jack_port_get_all_connections(client, port);
|
||||
if (connections != NULL) {
|
||||
for (int j = 0; connections[j] != NULL; ++j) {
|
||||
pm.Connect(port, jack_port_by_name(client, connections[j]));
|
||||
Connect(port, jack_port_by_name(client, connections[j]));
|
||||
}
|
||||
free(connections);
|
||||
}
|
||||
|
@ -44,25 +44,30 @@ void PortManager::Add(jack_port_t *port)
|
|||
std::string group_name;
|
||||
std::string port_name;
|
||||
|
||||
char *aliases[2];
|
||||
aliases[0] = new char[jack_port_name_size()];
|
||||
aliases[1] = new char[jack_port_name_size()];
|
||||
int num_aliases = jack_port_get_aliases(port, aliases);
|
||||
if (cfg.LocalAliases) {
|
||||
jack_name = GetAlias(jack_name);
|
||||
} else {
|
||||
char *aliases[2];
|
||||
aliases[0] = new char[jack_port_name_size()];
|
||||
aliases[1] = new char[jack_port_name_size()];
|
||||
|
||||
if (num_aliases < 2) {
|
||||
pm.AliasBay(port, num_aliases, aliases);
|
||||
num_aliases = jack_port_get_aliases(port, aliases);
|
||||
int num_aliases = jack_port_get_aliases(port, aliases);
|
||||
|
||||
if (num_aliases < 2) {
|
||||
AliasBay(port, num_aliases, aliases);
|
||||
num_aliases = jack_port_get_aliases(port, aliases);
|
||||
}
|
||||
|
||||
if (num_aliases == 2) {
|
||||
jack_name = aliases[1];
|
||||
} else if (num_aliases == 1) {
|
||||
jack_name = aliases[0];
|
||||
}
|
||||
|
||||
delete aliases[0];
|
||||
delete aliases[1];
|
||||
}
|
||||
|
||||
if (num_aliases == 2) {
|
||||
jack_name = aliases[1];
|
||||
} else if (num_aliases == 1) {
|
||||
jack_name = aliases[0];
|
||||
}
|
||||
|
||||
delete aliases[0];
|
||||
delete aliases[1];
|
||||
|
||||
size_t pos1 = jack_name.find(':');
|
||||
size_t pos2 = jack_name.find('.', pos1);
|
||||
|
||||
|
@ -320,6 +325,19 @@ void PortManager::ToggleConnect(PortGroup *a, PortGroup *b)
|
|||
}
|
||||
}
|
||||
|
||||
std::string PortManager::GetAlias(std::string port_name)
|
||||
{
|
||||
AliasList::iterator it;
|
||||
for (it = m_aliases.begin(); it != m_aliases.end(); ++it) {
|
||||
Alias &a = *it;
|
||||
if (a.name == port_name) {
|
||||
return a.alias;
|
||||
}
|
||||
}
|
||||
|
||||
return port_name;
|
||||
}
|
||||
|
||||
void PortManager::AliasBay(jack_port_t *port, int num_aliases, char *aliases[2])
|
||||
{
|
||||
std::string port_name = jack_port_name(port);
|
||||
|
|
|
@ -38,6 +38,7 @@ public:
|
|||
void ToggleConnect(PortGroup *a, Port *b);
|
||||
void ToggleConnect(PortGroup *a, PortGroup *b);
|
||||
|
||||
std::string GetAlias(std::string port_name);
|
||||
void AliasBay(jack_port_t *port, int num_aliases, char *aliases[2]);
|
||||
void AliasClear();
|
||||
void AliasAdd(std::string source, std::string target);
|
||||
|
|
Loading…
Reference in New Issue