~vanvugt/mir/revert-r2288

« back to all changes in this revision

Viewing changes to src/client/mir_connection.cpp

client: Add set_gbm_device platform operation.

Approved by PS Jenkins bot, Robert Carr, Alan Griffiths.

Show diffs side-by-side

added added

removed removed

Lines of Context:
361
361
    MirPlatformMessage const* request,
362
362
    mir_platform_operation_callback callback, void* context)
363
363
{
 
364
    auto const client_response = platform->platform_operation(request);
 
365
    if (client_response)
 
366
    {
 
367
        set_error_message("");
 
368
        callback(this, client_response, context);
 
369
        return nullptr;
 
370
    }
 
371
 
364
372
    mir::protobuf::PlatformOperationMessage protobuf_request;
365
373
 
366
374
    protobuf_request.set_opcode(opcode);
420
428
        platform_package.fd_items = platform.fd_size();
421
429
        for (int i = 0; i != platform.fd_size(); ++i)
422
430
            platform_package.fd[i] = platform.fd(i);
423
 
 
424
 
        // TODO: Replace the extra platform data mechanism with a
425
 
        // client side, platform specific operation
426
 
        for (auto d : extra_platform_data)
427
 
            platform_package.data[platform_package.data_items++] = d;
428
431
    }
429
432
    else
430
433
    {
567
570
    return &configure_display_wait_handle;
568
571
}
569
572
 
570
 
bool MirConnection::set_extra_platform_data(
571
 
    std::vector<int> const& extra_platform_data_arg)
572
 
{
573
 
    std::lock_guard<decltype(mutex)> lock(mutex);
574
 
 
575
 
    auto const total_data_size =
576
 
        connect_result.platform().data_size() + extra_platform_data_arg.size();
577
 
 
578
 
    if (total_data_size > mir_platform_package_max)
579
 
        return false;
580
 
 
581
 
    extra_platform_data = extra_platform_data_arg;
582
 
    return true;
583
 
}
584
 
 
585
573
mir::protobuf::DisplayServer& MirConnection::display_server()
586
574
{
587
575
    return server;