/*
* FlexiPix library
*
* Copyright 2010-2011 Stefan Schuermans <stefan schuermans info>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
*
* 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 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 <http://www.gnu.org/licenses/>.
*/
#ifndef FLP_INC_DISPLAYER_H
#define FLP_INC_DISPLAYER_H
#include <flexipix/msg.h>
#include <flexipix/types.h>
/**
* \brief create a new FlexiPix displayer
*
* A displayer manages a display and ensures that a the current
* image data is sent often enough to the distributors so
* that the pixels do detect a timeout and turn off automatically.
* The displayer uses a thread to do this.
* Initially, the new displayer is inactive and has to be activated
* using flp_displayer_activate().
*
* \param[in] sz_config_file name of config file to read
* \param[in] p_msg_func message callback function or NULL
* \param[in] p_msg_ctx user context for message callback
* \return pointer to new FlexiPix displayer on success
* or NULL on error
*/
flp_displayer_t *flp_displayer_create(const char *sz_config_file,
flp_msg_func_p_t p_msg_func,
void *p_msg_ctx);
/**
* \brief free a FlexiPix displayer
*
* \param[in] p_displayer pointer to FlexiPix displayer
*/
void flp_displayer_free(flp_displayer_t *p_displayer);