gboolean
tl_hdhr_playback_manager_stream_channel_to_ip(TLHDHRPlaybackManager *self, guint32 frequency,
	guint32 program_id, uint32_t device_id, gchar *ip, guint port)
{
	gboolean succeeded;
	gchar *url;
	gchar *freq_str;
	gchar *pid_str;

	g_assert(self != NULL);
	g_assert(ip != NULL);

	succeeded = FALSE;
	if (self->priv->playback_device != NULL) {
		tl_hdhr_playback_manager_stop_streaming(self);
	}
	self->priv->playback_device = tl_hdhr_manager_get_tuner(TL_HDHR_MANAGER(self), device_id);
	if (self->priv->playback_device == NULL) {
		g_error("Could not acquire tuner.");
	} else {
		g_debug("Streaming using device %X and tuner %d", device_id,
			hdhomerun_device_get_tuner(self->priv->playback_device));
		freq_str = g_strdup_printf("%d", frequency);
		pid_str = g_strdup_printf("%d", program_id);
		url = g_strdup_printf("udp://%s:%d", ip, port);
		hdhomerun_device_set_tuner_channel(self->priv->playback_device, freq_str);
		hdhomerun_device_set_tuner_program(self->priv->playback_device, pid_str);
		succeeded = (gboolean) hdhomerun_device_set_tuner_target(self->priv->playback_device, url);
		g_free(freq_str);
		g_free(pid_str);
	}
	g_free(url);
	return succeeded;
}
Exemplo n.º 2
0
PyObject *py_device_clone(py_device_object *self) {
    PyObject *arg_list, *copied_obj;
    uint32_t device_id, device_ip;
    unsigned int tuner;

    device_id = hdhomerun_device_get_device_id(self->hd);
    device_ip = hdhomerun_device_get_device_ip(self->hd);
    tuner = hdhomerun_device_get_tuner(self->hd);
    arg_list = Py_BuildValue("(III)", device_ip, device_id, tuner);
    if(arg_list == NULL) {
        return NULL;
    }
    copied_obj = PyObject_CallObject((PyObject *)&hdhomerun_Device_type, arg_list);
    Py_DECREF(arg_list);
    return copied_obj;
}
struct hdhomerun_device_t *hdhomerun_device_selector_find_device(struct hdhomerun_device_selector_t *hds, uint32_t device_id, unsigned int tuner_index)
{
	size_t index;
	for (index = 0; index < hds->hd_count; index++) {
		struct hdhomerun_device_t *entry = hds->hd_list[index];
		if (hdhomerun_device_get_device_id(entry) != device_id) {
			continue;
		}
		if (hdhomerun_device_get_tuner(entry) != tuner_index) {
			continue;
		}
		return entry;
	}

	return NULL;
}
Exemplo n.º 4
0
bool HDHRStreamHandler::Connect(void)
{
    _hdhomerun_device = hdhomerun_device_create_from_str(
        _device.toLocal8Bit().constData(), NULL);

    if (!_hdhomerun_device)
    {
        LOG(VB_GENERAL, LOG_ERR, LOC + "Unable to create hdhomerun object");
        return false;
    }

    _tuner = hdhomerun_device_get_tuner(_hdhomerun_device);

    if (hdhomerun_device_get_local_machine_addr(_hdhomerun_device) == 0)
    {
        LOG(VB_GENERAL, LOG_ERR, LOC + "Unable to connect to device");
        return false;
    }

    LOG(VB_RECORD, LOG_INFO, LOC + "Successfully connected to device");
    return true;
}