1 ///////////////////////////////////////////////////////////////////////////////
2 //
3 //  The contents of this file are subject to the Mozilla Public License
4 //  Version 1.1 (the "License"); you may not use this file except in
5 //  compliance with the License. You may obtain a copy of the License at
6 //  http://www.mozilla.org/MPL/
7 //
8 //  Software distributed under the License is distributed on an "AS IS"
9 //  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
10 //  License for the specific language governing rights and limitations
11 //  under the License.
12 //
13 //  The Original Code is MP4v2.
14 //
15 //  The Initial Developer of the Original Code is Kona Blend.
16 //  Portions created by Kona Blend are Copyright (C) 2008.
17 //  All Rights Reserved.
18 //
19 //  Contributors:
20 //      KonaBlend, kona8lend@gmail.com
21 //
22 ///////////////////////////////////////////////////////////////////////////////
23 
24 #ifndef MP4V2_IMPL_ITMF_GENERIC_H
25 #define MP4V2_IMPL_ITMF_GENERIC_H
26 
27 namespace mp4v2 { namespace impl { namespace itmf {
28 
29 ///////////////////////////////////////////////////////////////////////////////
30 
31 MP4ItmfItem*
32 genericItemAlloc( const string& code, uint32_t numData );
33 
34 void
35 genericItemFree( MP4ItmfItem* item );
36 
37 void
38 genericItemListFree( MP4ItmfItemList* list );
39 
40 ///////////////////////////////////////////////////////////////////////////////
41 
42 MP4ItmfItemList*
43 genericGetItems( MP4File& file );
44 
45 MP4ItmfItemList*
46 genericGetItemsByCode( MP4File& file, const string& code );
47 
48 MP4ItmfItemList*
49 genericGetItemsByMeaning( MP4File& file, const string& meaning, const string& name );
50 
51 ///////////////////////////////////////////////////////////////////////////////
52 
53 bool
54 genericAddItem( MP4File& file, const MP4ItmfItem* item );
55 
56 bool
57 genericSetItem( MP4File& file, const MP4ItmfItem* item );
58 
59 bool
60 genericRemoveItem( MP4File& file, const MP4ItmfItem* item );
61 
62 ///////////////////////////////////////////////////////////////////////////////
63 
64 }}} // namespace mp4v2::impl::itmf
65 
66 #endif // MP4V2_IMPL_ITMF_GENERIC_H
67