jack: also return video DSP ports

This commit is contained in:
Wim Taymans 2019-10-28 13:19:46 +01:00
parent d4ed1f6832
commit 4f47d6e052

View file

@ -44,6 +44,8 @@
#include "extensions/client-node.h" #include "extensions/client-node.h"
#define JACK_DEFAULT_VIDEO_TYPE "32 bit float RGBA video"
#define JACK_CLIENT_NAME_SIZE 64 #define JACK_CLIENT_NAME_SIZE 64
#define JACK_PORT_NAME_SIZE 256 #define JACK_PORT_NAME_SIZE 256
#define JACK_PORT_MAX 4096 #define JACK_PORT_MAX 4096
@ -1702,8 +1704,10 @@ static jack_port_type_id_t string_to_type(const char *port_type)
return 0; return 0;
else if (!strcmp(JACK_DEFAULT_MIDI_TYPE, port_type)) else if (!strcmp(JACK_DEFAULT_MIDI_TYPE, port_type))
return 1; return 1;
else if (!strcmp("other", port_type)) else if (!strcmp(JACK_DEFAULT_VIDEO_TYPE, port_type))
return 2; return 2;
else if (!strcmp("other", port_type))
return 3;
else else
return SPA_ID_INVALID; return SPA_ID_INVALID;
} }
@ -1716,6 +1720,8 @@ static const char* type_to_string(jack_port_type_id_t type_id)
case 1: case 1:
return JACK_DEFAULT_MIDI_TYPE; return JACK_DEFAULT_MIDI_TYPE;
case 2: case 2:
return JACK_DEFAULT_VIDEO_TYPE;
case 3:
return "other"; return "other";
default: default:
return NULL; return NULL;
@ -1760,10 +1766,8 @@ static void registry_event_global(void *data, uint32_t id,
uint32_t node_id; uint32_t node_id;
char full_name[1024]; char full_name[1024];
if ((str = spa_dict_lookup(props, PW_KEY_FORMAT_DSP)) == NULL) { if ((str = spa_dict_lookup(props, PW_KEY_FORMAT_DSP)) == NULL)
type_id = 2; str = "other";
}
else
if ((type_id = string_to_type(str)) == SPA_ID_INVALID) if ((type_id = string_to_type(str)) == SPA_ID_INVALID)
goto exit; goto exit;
@ -3519,7 +3523,7 @@ const char ** jack_get_ports (jack_client_t *client,
o->port.type_id, o->port.flags, o->port.name); o->port.type_id, o->port.flags, o->port.name);
if (count == JACK_PORT_MAX) if (count == JACK_PORT_MAX)
break; break;
if (o->port.type_id > 1) if (o->port.type_id > 2)
continue; continue;
if (!SPA_FLAG_IS_SET(o->port.flags, flags)) if (!SPA_FLAG_IS_SET(o->port.flags, flags))
continue; continue;