void gss_program_set_enabled (GssProgram * program, gboolean enabled) { if (program->enabled && !enabled) { program->enabled = enabled; gss_program_stop (program); } else if (!program->enabled && enabled) { program->enabled = enabled; gss_program_start (program); } }
static gboolean idle_state_enable (gpointer ptr) { GssProgram *program = GSS_PROGRAM (ptr); gboolean enabled; program->state_idle = 0; enabled = (program->enabled && program->server->enable_programs); if (program->state == GSS_PROGRAM_STATE_STOPPED && enabled) { gss_program_start (program); } else if (program->state == GSS_PROGRAM_STATE_RUNNING && !enabled) { gss_program_stop (program); } return FALSE; }
static void gss_program_finalize (GObject * object) { GssProgram *program = GSS_PROGRAM (object); gss_program_stop (program); g_list_free_full (program->streams, g_object_unref); if (program->hls.variant_buffer) { soup_buffer_free (program->hls.variant_buffer); } gss_metrics_free (program->metrics); g_free (program->follow_uri); g_free (program->follow_host); g_free (program->description); g_free (program->safe_description); g_free (program->uuid); parent_class->finalize (object); }
static gboolean gss_program_call_stop (gpointer priv) { gss_program_stop ((GssProgram *) priv); return FALSE; }