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[]={¬ch }; 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