/* * Copyright © 2015 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . * */ #ifndef MIR_TOOLKIT_MIR_BLOB_H_ #define MIR_TOOLKIT_MIR_BLOB_H_ #include #include #ifdef __cplusplus /** * \addtogroup mir_toolkit * @{ */ extern "C" { #endif /** * Create a blob from a display configuration * * \param [in] configuration The display configuration * \return A blob */ MirBlob* mir_blob_from_display_configuration(MirDisplayConfiguration* configuration) MIR_FOR_REMOVAL_IN_VERSION_1("use mir_blob_from_display_config instead"); /** * Create a blob from a display config * * \param [in] config The display config * \return A blob */ MirBlob* mir_blob_from_display_config(MirDisplayConfig* config); /** * Create a blob from a buffer. * \note this does not copy the data, the buffer is assumed to be available * until the blob is released. * * \param [in] buffer the buffer * \param [in] buffer_size the buffer size * \return A blob */ MirBlob* mir_blob_onto_buffer(void const* buffer, size_t buffer_size); /** * Create a blob from a display configuration * * \warning will abort() if the blob doesn't represent a meaningful display configuration * * \param [in] blob The blob * \return A display configuration */ MirDisplayConfiguration* mir_blob_to_display_configuration(MirBlob* blob) MIR_FOR_REMOVAL_IN_VERSION_1("use mir_blob_to_display_config instead"); /** * Create a blob from a display config * * \warning will abort() if the blob doesn't represent a meaningful display config * * \param [in] blob The blob * \return A display config */ MirDisplayConfig* mir_blob_to_display_config(MirBlob* blob); /** * Get the size of a blob * \param [in] blob The blob * \return the size */ size_t mir_blob_size(MirBlob* blob); /** * Get the data of a blob * \param [in] blob The blob * \return the data */ void const* mir_blob_data(MirBlob* blob); /** * Release a blob object * \param [in] blob The blob */ void mir_blob_release(MirBlob* blob); #ifdef __cplusplus } /**@}*/ #endif #endif /* MIR_TOOLKIT_MIR_BLOB_H_ */