void send_preview_invalidated(Network *network, Processor *processor, GeglRectangle rect, gpointer user_data) { UiConnection *ui = (UiConnection *)user_data; g_return_if_fail(ui->registry); g_return_if_fail(ui->registry->info); g_return_if_fail(network->graph); const gchar *node = graph_find_processor_name(network->graph, processor); gchar *url = ui_get_process_url(ui, network, node); // For interactive preview JsonObject *payload = json_object_new(); json_object_set_string_member(payload, "type", "previewurl"); json_object_set_string_member(payload, "url", url); // For remote subgraph support JsonObject *packet = json_object_new(); json_object_set_string_member(packet, "graph", network->graph->id); json_object_set_string_member(packet, "port", "output"); // FIXME: unhardcode, look up on Network/Graph json_object_set_string_member(packet, "event", "data"); // TODO: send connect+disconnect also? json_object_set_string_member(packet, "payload", url); g_free(url); if (ui->connection) { send_response(ui->connection, "network", "output", payload); send_response(ui->connection, "runtime", "packet", packet); } }
void send_preview_invalidated(Network *network, Processor *processor, GeglRectangle rect, gpointer user_data) { UiConnection *ui = (UiConnection *)user_data; g_return_if_fail(ui->registry); g_return_if_fail(ui->registry->info); g_return_if_fail(network->graph); const gchar *node = graph_find_processor_name(network->graph, processor); gchar url[1024]; g_snprintf(url, 1024, "http://%s:%d/process?graph=%s&node=%s", ui->hostname, ui->registry->info->port, network->graph->id, node); JsonObject *payload = json_object_new(); json_object_set_string_member(payload, "type", "previewurl"); json_object_set_string_member(payload, "url", url); send_response(ui->connection, "network", "output", payload); }