Commit 6cda9e15 authored by Jean-Paul Saman's avatar Jean-Paul Saman

BAT: Make dvbpsi_NewBat() and dvbpsi_DeleteBAT() functions.

Make dvbpsi_NewBat() and dvbpsi_DeleteBAT() functions.
parent 85086925
...@@ -160,6 +160,7 @@ void dvbpsi_DetachBAT(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extensi ...@@ -160,6 +160,7 @@ void dvbpsi_DetachBAT(dvbpsi_t *p_dvbpsi, uint8_t i_table_id, uint16_t i_extensi
void dvbpsi_InitBAT(dvbpsi_bat_t* p_bat, uint16_t i_bouquet_id, uint8_t i_version, void dvbpsi_InitBAT(dvbpsi_bat_t* p_bat, uint16_t i_bouquet_id, uint8_t i_version,
bool b_current_next) bool b_current_next)
{ {
assert(p_bat);
p_bat->i_bouquet_id = i_bouquet_id; p_bat->i_bouquet_id = i_bouquet_id;
p_bat->i_version = i_version; p_bat->i_version = i_version;
p_bat->b_current_next = b_current_next; p_bat->b_current_next = b_current_next;
...@@ -167,6 +168,20 @@ void dvbpsi_InitBAT(dvbpsi_bat_t* p_bat, uint16_t i_bouquet_id, uint8_t i_versio ...@@ -167,6 +168,20 @@ void dvbpsi_InitBAT(dvbpsi_bat_t* p_bat, uint16_t i_bouquet_id, uint8_t i_versio
p_bat->p_first_descriptor = NULL; p_bat->p_first_descriptor = NULL;
} }
/*****************************************************************************
* dvbpsi_NewBAT
*****************************************************************************
* Allocate and initialize a dvbpsi_bat_t structure.
*****************************************************************************/
dvbpsi_bat_t *dvbpsi_NewBAT(uint16_t i_bouquet_id, uint8_t i_version,
bool b_current_next)
{
dvbpsi_bat_t *p_bat = (dvbpsi_bat_t*)malloc(sizeof(dvbpsi_bat_t));
if(p_bat != NULL)
dvbpsi_InitBAT(p_bat, i_bouquet_id, i_version, b_current_next);
return p_bat;
}
/***************************************************************************** /*****************************************************************************
* dvbpsi_EmptyBAT * dvbpsi_EmptyBAT
***************************************************************************** *****************************************************************************
...@@ -189,6 +204,18 @@ void dvbpsi_EmptyBAT(dvbpsi_bat_t* p_bat) ...@@ -189,6 +204,18 @@ void dvbpsi_EmptyBAT(dvbpsi_bat_t* p_bat)
p_bat->p_first_ts = NULL; p_bat->p_first_ts = NULL;
} }
/*****************************************************************************
* dvbpsi_DeleteBAT
*****************************************************************************
* Empty and Delere a dvbpsi_bat_t structure.
*****************************************************************************/
void dvbpsi_DeleteBAT(dvbpsi_bat_t *p_bat)
{
if (p_bat)
dvbpsi_EmptyBAT(p_bat);
free(p_bat);
}
/***************************************************************************** /*****************************************************************************
* dvbpsi_BATAddTS * dvbpsi_BATAddTS
***************************************************************************** *****************************************************************************
......
...@@ -162,20 +162,16 @@ void dvbpsi_InitBAT(dvbpsi_bat_t *p_bat, uint16_t i_bouquet_id, uint8_t i_versio ...@@ -162,20 +162,16 @@ void dvbpsi_InitBAT(dvbpsi_bat_t *p_bat, uint16_t i_bouquet_id, uint8_t i_versio
bool b_current_next); bool b_current_next);
/*! /*!
* \def dvbpsi_NewBAT(p_bat, i_bouquet_id, i_version, b_current_next) * \def dvbpsi_bat_t *dvbpsi_NewBAT(uint16_t i_bouquet_id, uint8_t i_version,
* bool b_current_next)
* \brief Allocate and initialize a new dvbpsi_bat_t structure. * \brief Allocate and initialize a new dvbpsi_bat_t structure.
* \param p_bat pointer to the BAT structure
* \param i_bouquet_id bouquet ID * \param i_bouquet_id bouquet ID
* \param i_version BAT version * \param i_version BAT version
* \param b_current_next current next indicator * \param b_current_next current next indicator
* \return nothing. * \return p_bat pointer to the BAT structure
*/ */
#define dvbpsi_NewBAT(p_bat, i_bouquet_id, i_version, b_current_next) \ dvbpsi_bat_t *dvbpsi_NewBAT(uint16_t i_bouquet_id, uint8_t i_version,
do { \ bool b_current_next);
p_bat = (dvbpsi_bat_t*)malloc(sizeof(dvbpsi_bat_t)); \
if(p_bat != NULL) \
dvbpsi_InitBAT(p_bat, i_bouquet_id, i_version, b_current_next); \
} while(0);
/***************************************************************************** /*****************************************************************************
* dvbpsi_EmptyBAT/dvbpsi_DeleteBAT * dvbpsi_EmptyBAT/dvbpsi_DeleteBAT
...@@ -189,16 +185,12 @@ do { \ ...@@ -189,16 +185,12 @@ do { \
void dvbpsi_EmptyBAT(dvbpsi_bat_t *p_bat); void dvbpsi_EmptyBAT(dvbpsi_bat_t *p_bat);
/*! /*!
* \def dvbpsi_DeleteBAT(p_bat) * \def dvbpsi_DeleteBAT(dvbpis_bat_t *p_bat)
* \brief Clean and free a dvbpsi_bat_t structure. * \brief Clean and free a dvbpsi_bat_t structure.
* \param p_bat pointer to the BAT structure * \param p_bat pointer to the BAT structure
* \return nothing. * \return nothing.
*/ */
#define dvbpsi_DeleteBAT(p_bat) \ void dvbpsi_DeleteBAT(dvbpsi_bat_t *p_bat);
do { \
dvbpsi_EmptyBAT(p_bat); \
free(p_bat); \
} while(0);
/***************************************************************************** /*****************************************************************************
* dvbpsi_GenBATSections * dvbpsi_GenBATSections
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment