1 #include "ADM_inttype.h"
2 #include "DIA_factory.h"
3 #include "DIA_coreToolkit.h"
4 #include "DIA_encoding.h"
5 #include "ADM_jsTestFactory.h"
6 
7 extern "C"
8 {
9 	/**
10 	\fn jsTestFacInt
11 	*/
jsTestFacInt(void)12 	int jsTestFacInt(void)
13 	{
14 		uint32_t tog=0;
15 		diaElemUInteger blend(&tog,"Uinteger",0,255);
16 		diaElem *elems[]={&blend   };
17 
18 		if(diaFactoryRun("Test uinteger",1,elems))
19 		{
20 			return true;
21 		}
22 		return false;
23 	}
24 
25 	/**
26 	\fn jsTestFacFloat
27 	*/
jsTestFacFloat(void)28 	int jsTestFacFloat(void)
29 	{
30 		ELEM_TYPE_FLOAT tog=0;
31 		diaElemFloat blend(&tog,"Float",0,255);
32 		diaElem *elems[]={&blend   };
33 
34 		if(diaFactoryRun("Test float",1,elems))
35 		{
36 			return true;
37 		}
38 		return false;
39 	}
40 
41 	/**
42 	\fn jsTestFacToggle
43 	*/
jsTestFacToggle(void)44 	int jsTestFacToggle(void)
45 	{
46 		bool tog=0;
47 		uint32_t test=0;
48 		diaElemToggle blend(&tog,"Toggle");
49 		diaElemUInteger     bt(&test,"Entry",0,10);
50 		diaElemUInteger     bt2(&test,"Entry",0,10);
51 		diaElem *elems[]={&blend,&bt,&bt2   };
52 		blend.link(1,&bt);
53 		blend.link(0,&bt2);
54 
55 		if(diaFactoryRun("Test Toggle",3,elems))
56 		{
57 			return true;
58 		}
59 		return false;
60 	}
61 
62 	/**
63 	\fn jsTestFacMenu
64 	*/
jsTestFacMenu(void)65 	int jsTestFacMenu(void)
66 	{
67 		uint32_t tog=4;
68 		ELEM_TYPE_FLOAT f=1;
69 
70 		diaMenuEntry menu[]={
71 			{2,   "No Strategy",NULL},
72 			{4,     "3:2 Pulldown",NULL},
73 			{6,     "Pal/Secam",NULL},
74 			{7,  "NTSC converted from PAL",NULL}
75 		};
76 		diaElemMenu blend(&tog,"menu",4,menu);
77 
78 		// Link it to another
79 		diaElemFloat toggle(&f,"Linked float",1,2);
80 		blend.link(&(menu[1]),1,&toggle);
81 		//
82 		diaElem *elems[]={&blend,&toggle   };
83 		if(diaFactoryRun("Test Menu",2,elems))
84 		{
85 			return true;
86 		}
87 		return false;
88 	}
89 
90 	/**
91 	\fn jsTestFacFile
92 	*/
jsTestFacFile(void)93 	int jsTestFacFile(void)
94 	{
95 		uint32_t tog=0;
96 		char *test=ADM_strdup("Entry test1");
97 
98 		diaElemFile fread(0,&test,"Entry");
99 		diaElem *elems[]={&fread   };
100 		if(diaFactoryRun("Test FileRead",1,elems))
101 		{
102 			if(test) ADM_dealloc(test);
103 			return true;
104 		}
105 		if(test) ADM_dealloc(test);
106 		return false;
107 	}
108 
109 	/**
110 	\fn jsTestFacDirSel
111 	*/
jsTestFacDirSel(void)112 	int jsTestFacDirSel(void)
113 	{
114 		uint32_t tog=0;
115 		char *test=ADM_strdup("Entry test1");
116 
117 		diaElemDirSelect fread(&test,"Entry");
118 		diaElem *elems[]={&fread   };
119 		if(diaFactoryRun("Test DirSel",1,elems))
120 		{
121 			if(test) ADM_dealloc(test);
122 			return true;
123 		}
124 		if(test) ADM_dealloc(test);
125 		return false;
126 	}
127 
128 	/**
129 	\fn jsTestFacBitrate
130 	*/
jsTestFacBitrate(void)131 	int jsTestFacBitrate(void)
132 	{
133 
134 		COMPRES_PARAMS test={
135 			COMPRESS_CQ,
136 			1,
137 			1500,
138 			700,
139 			1000,
140 			ADM_ENC_CAP_CQ+ADM_ENC_CAP_2PASS+ADM_ENC_CAP_CBR+ADM_ENC_CAP_SAME
141 		};
142 
143 		diaElemBitrate bt(&test,"Entry");
144 		diaElem *elems[]={&bt   };
145 		if(diaFactoryRun("Test BitRate",1,elems))
146 		{
147 
148 			return true;
149 		}
150 		return false;
151 	}
152 
153 	/**
154 	\fn jsTestFacInt
155 	*/
jsTestFacBar(void)156 	int jsTestFacBar(void)
157 	{
158 
159 		diaElemBar bar1(25,"25");
160 		diaElemBar bar2(65,"65");
161 		diaElem *elems[]={&bar1,&bar2   };
162 		if(diaFactoryRun("Test FileRead",2,elems))
163 		{
164 			return true;
165 		}
166 		return false;
167 	}
168 
clickMe(void * cookie)169 	void clickMe(void *cookie)
170 	{
171 		GUI_Error_HIG("Button","Button pressed!");
172 	}
173 
174 	/**
175 	\fn jsTestFacButton
176 	*/
jsTestFacButton(void)177 	int jsTestFacButton(void)
178 	{
179 
180 		diaElemButton bar1("Button",clickMe,NULL);
181 		diaElem *elems[]={&bar1   };
182 		if(diaFactoryRun("Test Button",1,elems))
183 		{
184 			return true;
185 		}
186 		return false;
187 	}
188 
189 	/**
190 	\fn jsTestFacSlider
191 	*/
jsTestFacSlider(void)192 	int jsTestFacSlider(void)
193 	{
194 		int32_t val=4;
195 		diaElemSlider slide(&val,"foo", 0,10);
196 
197 		diaElem *elems[]={&slide   };
198 		if(diaFactoryRun("Test Slider",1,elems))
199 		{
200 			return true;
201 		}
202 		return false;
203 	}
204 
205 	/**
206 	\fn jsTestFacInt
207 	*/
jsTestFacRoText(void)208 	int jsTestFacRoText(void)
209 
210 	{
211 
212 		diaElemReadOnlyText txt("blah blah","Value:");
213 
214 		diaElem *elems[]={&txt   };
215 		if(diaFactoryRun("Test FileRead",1,elems))
216 		{
217 			return true;
218 		}
219 		return false;
220 	}
221 
222 	/**
223 	\fn jsTestFacText
224 	*/
jsTestFacText(void)225 	int jsTestFacText(void)
226 	{
227 
228 		char *foo=ADM_strdup("blah");
229 		diaElemText txt(&foo,"Text",NULL);
230 
231 		diaElem *elems[]={&txt   };
232 		if(diaFactoryRun("Test FileRead",1,elems))
233 		{
234 			if(foo) ADM_dealloc(foo);
235 			return true;
236 		}
237 		if(foo) ADM_dealloc(foo);
238 		return false;
239 	}
240 
241 	/**
242 	\fn jsTestFacInt
243 	*/
jsTestFacTab(void)244 	int jsTestFacTab(void)
245 	{
246 
247 		uint32_t test,test2;
248 
249 		diaElemReadOnlyText txt("blah blah","Value:");
250 		diaElemUInteger     bt(&test,"Entry",0,10);
251 		diaElemUInteger     bt2(&test2,"Entry",0,10);
252 
253 
254 		diaElem *elems1[]={&txt   };
255 		diaElem *elems2[]={&bt,&bt2   };
256 
257 		diaElemTabs tab1("T1",1,(diaElem **)elems1);
258 		diaElemTabs tab2("T2",2,(diaElem **)elems2);
259 
260 		diaElemTabs *tabs[2]={&tab1,&tab2};
261 
262 
263 		if(diaFactoryRunTabs("Test FileRead",2,tabs))
264 		{
265 			return true;
266 		}
267 		return false;
268 	}
269 
270 	/**
271 	\fn jsTestFacInt
272 	*/
jsTestFacFrame(void)273 	int jsTestFacFrame(void)
274 	{
275 
276 		uint32_t test,test2;
277 
278 		diaElemReadOnlyText align("*****","Value:");
279 		diaElemReadOnlyText txt("blah blah","Value:");
280 		diaElemUInteger     bt(&test,"Entry1",0,10);
281 		diaElemUInteger     bt2(&test2,"Entry2",0,10);
282 		diaElemFrame        frm("Frame1");
283 
284 		frm.swallow(&txt);
285 		frm.swallow(&bt);
286 		frm.swallow(&bt2);
287 
288 		diaElem *elems[]={&align,&frm   };
289 		if(diaFactoryRun("Test frame",2,elems))
290 		{
291 			return true;
292 		}
293 		return false;
294 	}
295 
296 
297 	/**
298 	\fn jsTestFacHex
299 	*/
jsTestFacHex(void)300 	int jsTestFacHex(void)
301 	{
302 
303 		uint8_t data[100];
304 		for(int i=0;i<100;i++) data[i]=i;
305 
306 		diaElemHex binhex("*****",100,data);
307 
308 
309 		diaElem *elems[]={&binhex   };
310 		if(diaFactoryRun("Test binHex",1,elems))
311 		{
312 			return true;
313 		}
314 		return false;
315 
316 	}
317 
318 	/**
319 	\fn jsTestFacMatrix
320 	*/
jsTestFacMatrix(void)321 	int jsTestFacMatrix(void)
322 	{
323 
324 		uint8_t data[16];
325 		for(int i=0;i<100;i++) data[i]=i;
326 
327 		diaElemMatrix Matrix(data,"Matrix",4);
328 
329 
330 		diaElem *elems[]={&Matrix   };
331 		if(diaFactoryRun("Test Matrix",1,elems))
332 		{
333 			for(int x=0;x<4*4;x++)
334 			{
335 				if(x && !(x&3)) printf("\n");
336 			}
337 			return true;
338 		}
339 		return false;
340 	}
341 
342 	/**
343 	\fn jsTestFacThreadcount
344 	*/
jsTestFacThreadCount(void)345 	int jsTestFacThreadCount(void)
346 	{
347 		uint32_t val=1;
348 		diaElemThreadCount threadcount(&val,"ThreadCount");
349 
350 		diaElem *elems[]={&threadcount   };
351 
352 		if(diaFactoryRun("Test ThreadCount",1,elems))
353 		{
354 			return true;
355 		}
356 		return false;
357 	}
358 
359 	/**
360 	\fn jsTestFacNotch
361 	*/
jsTestFacNotch(void)362 	int jsTestFacNotch(void)
363 	{
364 
365 		diaElemNotch notch(1,"Notch");
366 
367 		diaElem *elems[]={&notch   };
368 		if(diaFactoryRun("Test Notch",1,elems))
369 		{
370 			return true;
371 		}
372 		return false;
373 
374 	}
375 	/**
376 	\fn jsTestFacEncoding
377 	*/
jsTestFacEncoding(void)378 	int jsTestFacEncoding(void)
379 	{
380 		DIA_encodingBase *base=createEncoding(1000*1000LL);
381 		base->setContainer("the container");
382 		base->setAudioCodec("the audio codec");
383 		base->setVideoCodec("the video codec");
384 		for(int i=0;i<20;i++)
385 		{
386 			base->refresh();
387 			base->pushVideoFrame(10000,1,50*1000LL*i);
388 			base->refresh();
389 			printf("%d / %d\n",i,20);
390 			ADM_usleep(500*1000);
391 		}
392 		delete base;
393 		base=NULL;
394 		return true;
395 	}
396 
jsTestCrash(void)397 	int jsTestCrash(void)
398 	{
399 		int *foobar = NULL;
400 		*foobar = 0; // CRASH!
401 
402 		return true;
403 	}
404 
jsTestAssert(void)405 	int jsTestAssert(void)
406 	{
407 		ADM_assert(0);
408 
409 		return true;
410 	}
411 }
412