X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_media_library.h;h=c9da93466679aec45338dd569a2408a8e3ea982a;hb=d1873b6fd550a4e706900c8bb80d70264028f42b;hp=2200018cf28a5b6b1f532ce1c1e8649900c964e1;hpb=26105b49cfd13aa52e8a6cafb5e90f17aa5e7711;p=vlc diff --git a/include/vlc_media_library.h b/include/vlc_media_library.h index 2200018cf2..c9da934666 100644 --- a/include/vlc_media_library.h +++ b/include/vlc_media_library.h @@ -397,15 +397,8 @@ struct ml_person_t * @return The media library object. NULL if the media library * object could not be loaded */ -VLC_EXPORT( media_library_t*, __ml_Hold, ( vlc_object_t* p_this ) ); -#define ml_Hold( a ) __ml_Hold( VLC_OBJECT(a) ) - -/** - * @brief Discard your ref to media library - * @param p_this The object holding the media library - */ -VLC_EXPORT( void, __ml_Release, ( vlc_object_t* p_this ) ); -#define ml_Release(a) __ml_Release( VLC_OBJECT(a)) +VLC_API media_library_t* ml_Get( vlc_object_t* p_this ); +#define ml_Get( a ) ml_Get( VLC_OBJECT(a) ) /** * @brief Create a Media Library VLC object. @@ -413,13 +406,13 @@ VLC_EXPORT( void, __ml_Release, ( vlc_object_t* p_this ) ); * @param psz_name Name for the module * @return The ML object. */ -VLC_EXPORT( media_library_t*, __ml_Create, ( vlc_object_t *p_this, char* psz_name ) ); +VLC_API media_library_t* ml_Create( vlc_object_t *p_this, char* psz_name ); /** * @brief Destructor for the Media library singleton * @param p_this Parent the ML object is attached to */ -VLC_EXPORT( void, __ml_Destroy, ( vlc_object_t* p_this ) ); +VLC_API void ml_Destroy( vlc_object_t* p_this ); /** * @brief Control the Media Library @@ -517,13 +510,12 @@ static inline int ml_AttributeIsString( ml_select_e meta ) */ static inline void ml_gc_incref( ml_media_t* p_media ) { - unsigned refs; ml_gc_object_t* p_gc = &p_media->ml_gc_data; if( p_gc == NULL ) return; vlc_spin_lock (&p_gc->spin); - refs = ++p_gc->refs; + ++p_gc->refs; vlc_spin_unlock (&p_gc->spin); } @@ -545,7 +537,7 @@ static inline void ml_gc_decref( ml_media_t* p_media ) pool = p_gc->pool; vlc_spin_unlock (&p_gc->spin); - if( refs == 0 && pool == false ) + if( refs == 0 && !pool ) { vlc_spin_destroy (&p_gc->spin); p_gc->pf_destructor (p_gc); @@ -689,8 +681,8 @@ static inline void ml_DestroyResultArray( vlc_array_t *p_result_array ) * @param select Type of object * @param reload Whether to reload from database */ -VLC_EXPORT( ml_media_t*, media_New, ( media_library_t* p_ml, int id, - ml_select_e select, bool reload ) ); +VLC_API ml_media_t *media_New( media_library_t* p_ml, int id, + ml_select_e select, bool reload ); /* Forward declaration */ @@ -791,7 +783,7 @@ static inline void ml_GenericFreeFindTree( ml_ftree_t* tree, bool freestrings ) free( tree->right ); } if( tree->op == ML_OP_NONE && ml_AttributeIsString( tree->criteria ) - && freestrings == true) + && freestrings) { free( tree->value.str ); if( tree->criteria == ML_PEOPLE ) @@ -821,14 +813,14 @@ static inline int ml_FtreeHasOp( ml_ftree_t* tree ) * If op = ML_OP_NONE, then you are connecting to a tree consisting of * only SPECIAL nodes. * If op = ML_OP_NOT, then right MUST be NULL - * op must not be ML_OP_SPECIAL, @see __ml_FtreeSpec + * op must not be ML_OP_SPECIAL, @see ml_FtreeSpec * @param left part of the tree * @param right part of the tree * @return Pointer to new tree * @note Use the helpers! */ -VLC_EXPORT( ml_ftree_t*, ml_OpConnectChilds, ( ml_op_e op, ml_ftree_t* left, - ml_ftree_t* right ) ); +VLC_API ml_ftree_t *ml_OpConnectChilds( ml_op_e op, ml_ftree_t* left, + ml_ftree_t* right ); /** * @brief Attaches a special node to a tree @@ -839,10 +831,10 @@ VLC_EXPORT( ml_ftree_t*, ml_OpConnectChilds, ( ml_op_e op, ml_ftree_t* left, * @return Pointer to new tree * @note Use the helpers */ -VLC_EXPORT( ml_ftree_t*, __ml_FtreeSpec, ( ml_ftree_t* tree, +VLC_API ml_ftree_t *ml_FtreeSpec( ml_ftree_t* tree, ml_select_e crit, int limit, - char* sort ) ); + char* sort ); /** * @brief This function gives quick sequential adding capability @@ -865,10 +857,10 @@ static inline ml_ftree_t* ml_FtreeFastAnd( ml_ftree_t* left, #define ml_FtreeOr( left, right ) ml_OpConnectChilds( ML_OP_OR, left, right ) #define ml_FtreeNot( left ) ml_OpConnectChilds( ML_OP_NOT, left, NULL ) -#define ml_FtreeSpecAsc( tree, str ) __ml_FtreeSpec( tree, ML_SORT_ASC, 0, str ) -#define ml_FtreeSpecDesc( tree, str ) __ml_FtreeSpec( tree, ML_SORT_DESC, 0, str ) -#define ml_FtreeSpecLimit( tree, limit ) __ml_FtreeSpec( tree, ML_LIMIT, limit, NULL ) -#define ml_FtreeSpecDistinct( tree ) __ml_FtreeSpec( tree, ML_DISTINCT, 0, NULL ) +#define ml_FtreeSpecAsc( tree, str ) ml_FtreeSpec( tree, ML_SORT_ASC, 0, str ) +#define ml_FtreeSpecDesc( tree, str ) ml_FtreeSpec( tree, ML_SORT_DESC, 0, str ) +#define ml_FtreeSpecLimit( tree, limit ) ml_FtreeSpec( tree, ML_LIMIT, limit, NULL ) +#define ml_FtreeSpecDistinct( tree ) ml_FtreeSpec( tree, ML_DISTINCT, 0, NULL ) /***************************************************************************** @@ -1038,12 +1030,12 @@ static inline int ml_Update( media_library_t *p_media_library, * @param id The id of the row to update * @param ... The update data. [SelectType [RoleType] Value] */ -#define ml_UpdateSimple( ml, sel, lval, id, ... ) \ - __ml_UpdateSimple( ml, sel, lval, id, __VA_ARGS__, ML_END ) -VLC_EXPORT( int, __ml_UpdateSimple, ( media_library_t *p_media_library, +VLC_API int ml_UpdateSimple( media_library_t *p_media_library, ml_select_e selected_type, const char* psz_lvalue, - int id, ... ) ); + int id, ... ); +#define ml_UpdateSimple( ml, sel, lval, id, ... ) \ + ml_UpdateSimple( ml, sel, lval, id, __VA_ARGS__, ML_END ) /** * @brief Generic DELETE function @@ -1159,9 +1151,9 @@ static inline int ml_CopyPersons( ml_person_t** a, ml_person_t* b ) * @param i_type The person type * @note This function is thread safe */ -VLC_EXPORT( ml_person_t*, ml_GetPersonsFromMedia, ( media_library_t* p_ml, +VLC_API ml_person_t *ml_GetPersonsFromMedia( media_library_t* p_ml, ml_media_t* p_media, - const char *psz_role ) ); + const char *psz_role ); #define ml_GetAlbumArtistsFromMedia( a, b ) ml_GetPersonsFromMedia( a, b, ML_PERSON_ALBUM_ARTIST ); @@ -1175,8 +1167,8 @@ VLC_EXPORT( ml_person_t*, ml_GetPersonsFromMedia, ( media_library_t* p_ml, * @param i_type Type of person to delete * @note This function is threadsafe */ -VLC_EXPORT( void, ml_DeletePersonTypeFromMedia, ( ml_media_t* p_media, - const char *psz_role ) ); +VLC_API void ml_DeletePersonTypeFromMedia( ml_media_t* p_media, + const char *psz_role ); /** @@ -1185,8 +1177,8 @@ VLC_EXPORT( void, ml_DeletePersonTypeFromMedia, ( ml_media_t* p_media, * @param p_tree Find tree to create SELECT */ -VLC_EXPORT( void, ml_PlaySmartPlaylistBasedOn, ( media_library_t* p_ml, - ml_ftree_t* p_tree ) ); +VLC_API void ml_PlaySmartPlaylistBasedOn( media_library_t* p_ml, + ml_ftree_t* p_tree ); /**