Beispiel #1
0
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);
    }
}
Beispiel #2
0
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);
}