1 /*  Copyright (c) MediaArea.net SARL. All Rights Reserved.
2  *
3  *  Use of this source code is governed by a BSD-style license that can
4  *  be found in the License.html file in the root of the source tree.
5  */
6 
7 //---------------------------------------------------------------------------
8 #ifndef Export_GraphH
9 #define Export_GraphH
10 //---------------------------------------------------------------------------
11 
12 //---------------------------------------------------------------------------
13 #include "MediaInfo/MediaInfo_Internal.h"
14 //---------------------------------------------------------------------------
15 
16 namespace MediaInfoLib
17 {
18 
19 //***************************************************************************
20 /// @brief Export_Graph
21 //***************************************************************************
22 
23 class Export_Graph
24 {
25 public :
26     //Constructeur/Destructeur
27     Export_Graph ();
28     ~Export_Graph ();
29 
30 
31     //Types
32     enum format
33     {
34         Format_Dot,
35         Format_Svg,
36         Format_Max
37     };
38 
39     enum graph
40     {
41         Graph_All,
42         Graph_Ac4,
43         Graph_Ed2,
44         Graph_Adm,
45         Graph_Mpegh3da,
46         Graph_Max
47     };
48 
49     //Functions
50     static bool Load();
51     ZenLib::Ztring Transform(MediaInfo_Internal &MI, graph Graph, format Format=Format_Dot);
52 
53 private:
54     //Types
55     struct relation
56     {
57         Ztring Src;
58         Ztring Dst;
59         Ztring Opts;
relationrelation60         relation(Ztring Src, Ztring Dst, Ztring Opts) : Src(Src), Dst(Dst), Opts(Opts)
61         {};
62     };
63 
64     //Functions
65     #if defined(MEDIAINFO_AC4_YES)
66     Ztring Ac4_Graph(MediaInfo_Internal &MI, size_t StreamPos, size_t Level);
67     #endif //defined(MEDIAINFO_AC4_YES)
68     #if defined(MEDIAINFO_DOLBYE_YES)
69     Ztring Ed2_Graph(MediaInfo_Internal &MI, size_t StreamPos, size_t Level);
70     #endif //defined(MEDIAINFO_DOLBYE_YES)
71     #if defined(MEDIAINFO_ADM_YES)
72     Ztring Adm_Graph(MediaInfo_Internal &MI, size_t StreamPos, size_t Level);
73     #endif //defined(MEDIAINFO_ADM_YES)
74     #if defined(MEDIAINFO_MPEGH3DA_YES)
75     Ztring Mpegh3da_Graph(MediaInfo_Internal &MI, size_t StreamPos, size_t Level);
76     #endif //defined(MEDIAINFO_MPEGH3DA_YES )
77 };
78 
79 } //NameSpace
80 #endif
81