PROP_IRADIO_NAME,
PROP_IRADIO_GENRE,
PROP_IRADIO_URL,
- PROP_IRADIO_TITLE
+ PROP_IRADIO_TITLE,
+ PROP_TIMEOUT
};
#define DEFAULT_USER_AGENT "GStreamer souphttpsrc "
g_object_class_install_property (gobject_class, PROP_IS_LIVE,
g_param_spec_boolean ("is-live", "is-live", "Act like a live source",
FALSE, G_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class, PROP_TIMEOUT,
+ g_param_spec_uint ("timeout", "timeout",
+ "Value in seconds to timeout a blocking I/O (0 = No timeout).", 0,
+ 3600, 0, G_PARAM_READWRITE));
/* icecast stuff */
g_object_class_install_property (gobject_class,
case PROP_IRADIO_MODE:
src->iradio_mode = g_value_get_boolean (value);
break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
case PROP_AUTOMATIC_REDIRECT:
src->automatic_redirect = g_value_get_boolean (value);
break;
g_free (src->proxy_pw);
src->proxy_pw = g_value_dup_string (value);
break;
+ case PROP_TIMEOUT:
+ src->timeout = g_value_get_uint (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
}
done:
return;
case PROP_PROXY_PW:
g_value_set_string (value, src->proxy_pw);
break;
+ case PROP_TIMEOUT:
+ g_value_set_uint (value, src->timeout);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
src->session =
soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
src->context, SOUP_SESSION_USER_AGENT, src->user_agent,
+ SOUP_SESSION_TIMEOUT, src->timeout,
#ifdef HAVE_LIBSOUP_GNOME
SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_GNOME,
#endif
src->session =
soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
src->context, SOUP_SESSION_PROXY_URI, src->proxy,
+ SOUP_SESSION_TIMEOUT, src->timeout,
SOUP_SESSION_USER_AGENT, src->user_agent, NULL);
}