GST_DEBUG_OBJECT (src, "open");
- name = g_get_application_name ();
+ if (src->client_name) {
+ name = src->client_name;
+ } else {
+ name = g_get_application_name ();
+ }
if (!name)
name = "GStreamer";
/* ERRORS */
could_not_open:
{
- if (status & JackServerFailed) {
+ if (status & (JackServerFailed | JackFailure)) {
GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND,
(_("Jack server not found")),
("Cannot connect to the Jack server (status %d)", status));
} else {
- GST_ELEMENT_ERROR (src, RESOURCE, OPEN_WRITE,
+ GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
(NULL), ("Jack client open error (status %d)", status));
}
return FALSE;
LAST_SIGNAL
};
-#define DEFAULT_PROP_CONNECT GST_JACK_CONNECT_AUTO
-#define DEFAULT_PROP_SERVER NULL
+#define DEFAULT_PROP_CONNECT GST_JACK_CONNECT_AUTO
+#define DEFAULT_PROP_SERVER NULL
+#define DEFAULT_PROP_CLIENT_NAME NULL
enum
{
PROP_CONNECT,
PROP_SERVER,
PROP_CLIENT,
+ PROP_CLIENT_NAME,
PROP_LAST
};
{
GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&src_factory));
+ gst_element_class_add_static_pad_template (element_class, &src_factory);
gst_element_class_set_details_simple (element_class, "Audio Source (Jack)",
"Source/Audio", "Captures audio from a JACK server",
"Tristan Matthews <tristan@sat.qc.ca>");
"The Jack server to connect to (NULL = default)",
DEFAULT_PROP_SERVER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstJackAudioSrc:client-name
+ *
+ * The client name to use.
+ *
+ * Since: 0.10.31
+ */
+ g_object_class_install_property (gobject_class, PROP_CLIENT_NAME,
+ g_param_spec_string ("client-name", "Client name",
+ "The client name of the Jack instance (NULL = default)",
+ DEFAULT_PROP_CLIENT_NAME,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
g_object_class_install_property (gobject_class, PROP_CLIENT,
g_param_spec_boxed ("client", "JackClient", "Handle for jack client",
GST_TYPE_JACK_CLIENT,
src->ports = NULL;
src->port_count = 0;
src->buffers = NULL;
+ src->client_name = g_strdup (DEFAULT_PROP_CLIENT_NAME);
}
static void
GstJackAudioSrc *src = GST_JACK_AUDIO_SRC (object);
gst_caps_replace (&src->caps, NULL);
+
+ if (src->client_name != NULL) {
+ g_free (src->client_name);
+ src->client_name = NULL;
+ }
+
G_OBJECT_CLASS (parent_class)->dispose (object);
}
GstJackAudioSrc *src = GST_JACK_AUDIO_SRC (object);
switch (prop_id) {
+ case PROP_CLIENT_NAME:
+ g_free (src->client_name);
+ src->client_name = g_value_dup_string (value);
+ break;
case PROP_CONNECT:
src->connect = g_value_get_enum (value);
break;
GstJackAudioSrc *src = GST_JACK_AUDIO_SRC (object);
switch (prop_id) {
+ case PROP_CLIENT_NAME:
+ g_value_set_string (value, src->client_name);
+ break;
case PROP_CONNECT:
g_value_set_enum (value, src->connect);
break;