1 #include <ctype.h>
2
3 #include "config.h"
4
5 #include "ADM_default.h"
6 #include "DIA_coreToolkit.h"
7 #include "DIA_coreUI_internal.h"
8
9 #define BOX_SIZE 80
10 static int beQuiet=0;
boxStart(void)11 static void boxStart(void)
12 {
13 for(int i=0;i<BOX_SIZE;i++) fprintf(stderr,"*");
14 fprintf(stderr,"\n");
15 }
boxEnd(void)16 static void boxEnd(void)
17 {
18 for(int i=0;i<BOX_SIZE;i++) fprintf(stderr,"*");
19 fprintf(stderr,"\n");
20 }
boxAdd(const char * str)21 static void boxAdd(const char *str)
22 {
23 int l=strlen(str);
24 fprintf(stderr, "* %s",str);
25 if(l+4<BOX_SIZE)
26 {
27 l=BOX_SIZE-l-4;
28 for(int i=0;i<BOX_SIZE;i++) fprintf(stderr,"");
29 }
30 fprintf(stderr," *\n");
31 }
32
33
34 namespace ADM_CliCoreUIToolkit
35 {
36 extern DIA_workingBase *createWorking(const char *title);
37 extern DIA_encodingBase *createEncoding(uint64_t duration);
38 extern DIA_audioTrackBase *createAudioTrack( PoolOfAudioTracks *pool, ActiveAudioTracks *active );
39
GUI_Info_HIG(const ADM_LOG_LEVEL level,const char * primary,const char * secondary_format)40 void GUI_Info_HIG(const ADM_LOG_LEVEL level,const char *primary, const char *secondary_format)
41 {
42 boxStart();
43 boxAdd("Info");
44 boxAdd(primary);
45
46 if(!secondary_format)
47 {
48 boxEnd();
49 return;
50 }
51
52 boxAdd(secondary_format);
53 boxEnd();
54 }
55
GUI_Error_HIG(const char * primary,const char * secondary_format)56 void GUI_Error_HIG(const char *primary, const char *secondary_format)
57 {
58 boxStart();
59 boxAdd("Error");
60 boxAdd(primary);
61 if(!secondary_format)
62 {
63 boxEnd();
64 return;
65 }else
66 {
67 boxAdd(secondary_format);
68 boxEnd();
69 }
70 }
71
GUI_Confirmation_HIG(const char * button_confirm,const char * primary,const char * secondary_format)72 int GUI_Confirmation_HIG(const char *button_confirm, const char *primary, const char *secondary_format)
73 {
74 boxStart();
75 boxAdd("Question");
76
77 boxAdd(button_confirm);
78 if(!secondary_format)
79 {
80 boxEnd();
81 }else
82 {
83 boxAdd(secondary_format);
84 boxEnd();
85 }
86 if (beQuiet)
87 {
88 boxAdd("--> Automatically confirmed\n");
89 return 1;
90 }else
91 {
92 int x;
93 while(1)
94 {
95 printf("Are you sure (Y/y or N/n ):\n");
96 x=tolower(getchar());
97 if(x=='y') return 1;
98 if(x=='n') return 0;
99 }
100 }
101 return 0;
102 }
103
GUI_YesNo(const char * primary,const char * secondary_format)104 int GUI_YesNo(const char *primary, const char *secondary_format)
105 {
106 boxStart();
107 boxAdd("Question");
108 boxAdd(primary);
109
110 if(!secondary_format)
111 {
112 boxEnd();
113 }else
114 {
115 boxAdd(secondary_format);
116 boxEnd();
117 }
118 if (beQuiet)
119 {
120 boxAdd("--> Automatically affirmed\n");
121 return 1;
122 }else
123 {
124 int x;
125 while(1)
126 {
127 printf("Yes or No (Y/y or N/n) :\n");
128 x=tolower(getchar());
129 if(x=='y') return 1;
130 if(x=='n') return 0;
131 }
132 }
133 return 0;
134 }
135
GUI_Question(const char * alertstring,bool insuppressible)136 int GUI_Question(const char *alertstring, bool insuppressible)
137 {
138 if(beQuiet && !insuppressible)
139 {
140 printf("%s => Yes\n",alertstring);
141 return 1;
142 }
143
144 boxStart();
145 boxAdd("Question");
146 boxAdd(alertstring);
147 boxEnd();
148
149 while(1)
150 {
151 printf("Yes or No (Y/y or N/n) :\n");
152 int x=tolower(getchar());
153 if(x=='y') return 1;
154 if(x=='n') return 0;
155 }
156 return 0;
157 }
158
GUI_Alternate(const char * title,const char * choice1,const char * choice2)159 int GUI_Alternate(const char *title,const char *choice1,const char *choice2)
160 {
161 if(beQuiet)
162 {
163 printf("%s => %s\n",title,choice1);
164 return 0;
165 }
166
167 boxStart();
168 boxAdd("Choice");
169 boxAdd(title);
170 boxEnd();
171
172 while(1)
173 {
174 printf("0->%s 1->%s :\n",choice1,choice2);
175 int x=tolower(getchar());
176 if(x=='0') return 0;
177 if(x=='1') return 1;
178 }
179 return 0;
180 }
181
GUI_getDoubleValue(double * valye,float min,float max,const char * title)182 uint8_t GUI_getDoubleValue(double *valye, float min, float max, const char *title)
183 {
184 boxStart();
185 boxAdd("DOUBLEVALUE stub");
186 boxAdd(title);
187 boxEnd();
188
189 return 0;
190 }
191
GUI_isQuiet(void)192 uint8_t GUI_isQuiet(void)
193 {
194 return beQuiet;
195 }
196
GUI_Verbose(void)197 void GUI_Verbose(void)
198 {
199 beQuiet=0;
200 }
201
GUI_Quiet(void)202 void GUI_Quiet(void)
203 {
204 beQuiet=1;
205 }
206
UI_readJog(void)207 int32_t UI_readJog(void)
208 {
209 return 0;
210 }
211
getVersion(uint32_t * maj,uint32_t * minor)212 void getVersion(uint32_t *maj,uint32_t *minor)
213 {
214 *maj=ADM_CORE_TOOLKIT_MAJOR;
215 *minor=ADM_CORE_TOOLKIT_MINOR;
216 }
217
UI_purge(void)218 void UI_purge( void )
219 {
220 }
221
222 class cliProcessing: public DIA_processingBase
223 {
224 public:
cliProcessing(const char * title,uint64_t _totalToProcess)225 cliProcessing(const char *title, uint64_t _totalToProcess ) : DIA_processingBase(title,_totalToProcess)
226 {
227
228 }
~cliProcessing()229 ~cliProcessing()
230 {
231
232 }
233 };
234
createProcessing(const char * title,uint64_t totalToProcess)235 DIA_processingBase *createProcessing(const char *title,uint64_t totalToProcess)
236 {
237 return new cliProcessing(title,totalToProcess);
238 }
239
240 }; // namespace
241
242 static CoreToolkitDescriptor CliCoreToolkitDescriptor=
243 {
244 &ADM_CliCoreUIToolkit::getVersion,
245 &ADM_CliCoreUIToolkit::GUI_Info_HIG,
246 &ADM_CliCoreUIToolkit::GUI_Error_HIG,
247 &ADM_CliCoreUIToolkit::GUI_Confirmation_HIG,
248
249 &ADM_CliCoreUIToolkit::GUI_YesNo,
250 &ADM_CliCoreUIToolkit::GUI_Question,
251 &ADM_CliCoreUIToolkit::GUI_Alternate,
252 &ADM_CliCoreUIToolkit::GUI_Verbose,
253
254 &ADM_CliCoreUIToolkit::GUI_Quiet,
255 &ADM_CliCoreUIToolkit::GUI_isQuiet,
256 &ADM_CliCoreUIToolkit::createWorking,
257 &ADM_CliCoreUIToolkit::createEncoding,
258
259 &ADM_CliCoreUIToolkit::createAudioTrack,
260 &ADM_CliCoreUIToolkit::UI_purge,
261 &ADM_CliCoreUIToolkit::createProcessing
262 };
263
InitCoreToolkit(void)264 void InitCoreToolkit(void)
265 {
266 DIA_toolkitInit(&CliCoreToolkitDescriptor);
267 }
268 //EOF
269