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; }
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; }
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; }