Changeset 657
- Timestamp:
- 05/06/11 08:27:20 (2 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
-
core/luascript.c (modified) (2 diffs)
-
include/platform.h (modified) (1 diff)
-
lib/ubasic/tokenizer.c (modified) (1 diff)
-
lib/ubasic/tokenizer.h (modified) (1 diff)
-
lib/ubasic/ubasic.c (modified) (8 diffs)
-
platform/generic/wrappers.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/core/luascript.c
r646 r657 300 300 } 301 301 302 #ifdef CAM_MULTIPART 303 static int luaCB_get_partitionInfo( lua_State* L ) 304 { 305 lua_createtable(L, 0, 4); 306 SET_INT_FIELD("count", get_part_count()); 307 SET_INT_FIELD("active", get_active_partition()); 308 SET_INT_FIELD("type", get_part_type()); 309 SET_INT_FIELD("size", GetTotalCardSpaceKb()>>10); 310 return 1; 311 } 312 313 static int luaCB_swap_partitions( lua_State* L ) 314 { 315 int partNr; 316 317 if( lua_gettop(L)==1 ) 318 { 319 partNr = luaL_checknumber(L, 1); 320 } 321 else 322 { 323 int partCount = get_part_count(); 324 partNr = get_active_partition()+1; 325 if( partNr > partCount ) partNr = 1; 326 } 327 lua_pushboolean(L, swap_partitions(partNr)); 328 return 1; 329 } 330 #endif 331 302 332 static int luaCB_get_av96( lua_State* L ) 303 333 { … … 1810 1840 FUNC(print_screen); 1811 1841 1842 #ifdef CAM_MULTIPART 1843 FUNC(get_partitionInfo); 1844 FUNC(swap_partitions); 1845 #endif 1846 1812 1847 FUNC(get_focus_mode); 1813 1848 FUNC(get_focus_state); -
trunk/include/platform.h
r643 r657 460 460 461 461 462 voidswap_partitions(int new_partition);462 int swap_partitions(int new_partition); 463 463 unsigned char get_active_partition(void); 464 int get_part_type(void); 464 465 int get_part_count(void); 465 466 int is_partition_changed(void); -
trunk/lib/ubasic/tokenizer.c
r406 r657 152 152 {"get_exp_count", TOKENIZER_GET_EXP_COUNT}, 153 153 {"get_config_value", TOKENIZER_GET_CONFIG_VALUE}, 154 154 {"get_partitionInfo", TOKENIZER_GET_PARTITION_INFO}, 155 {"swap_partitions", TOKENIZER_SWAP_PARTITIONS}, 155 156 //SET 156 157 {"set_av96_direct", TOKENIZER_SET_AV96_DIRECT}, -
trunk/lib/ubasic/tokenizer.h
r406 r657 203 203 TOKENIZER_GET_CONFIG_VALUE, 204 204 TOKENIZER_SET_CONFIG_VALUE, 205 205 TOKENIZER_GET_PARTITION_INFO, 206 TOKENIZER_SWAP_PARTITIONS 206 207 } ubasic_token; 207 208 -
trunk/lib/ubasic/ubasic.c
r574 r657 241 241 r = ! relation(); 242 242 break; 243 case TOKENIZER_GET_VBATT:243 case TOKENIZER_GET_VBATT: 244 244 accept(TOKENIZER_GET_VBATT); 245 245 r = (unsigned short) stat_get_vbatt(); 246 246 break; 247 case TOKENIZER_GET_DAY_SECONDS:247 case TOKENIZER_GET_DAY_SECONDS: 248 248 accept(TOKENIZER_GET_DAY_SECONDS); 249 249 r = shooting_get_day_seconds(); 250 250 break; 251 case TOKENIZER_GET_TICK_COUNT:251 case TOKENIZER_GET_TICK_COUNT: 252 252 accept(TOKENIZER_GET_TICK_COUNT); 253 253 r = shooting_get_tick_count(); 254 break;255 case TOKENIZER_GET_MODE:254 break; 255 case TOKENIZER_GET_MODE: 256 256 accept(TOKENIZER_GET_MODE); 257 257 int m=mode_get()&MODE_SHOOTING_MASK; … … 260 260 if ((mode_get()&MODE_MASK) == MODE_PLAY) r = 1; 261 261 if (((mode_get()&MODE_MASK) != MODE_PLAY) && mode_video) r = 2; 262 break;263 case TOKENIZER_GET_RAW_NR:262 break; 263 case TOKENIZER_GET_RAW_NR: 264 264 accept(TOKENIZER_GET_RAW_NR); 265 265 r = camera_get_nr(); 266 266 break; 267 case TOKENIZER_IS_KEY:267 case TOKENIZER_IS_KEY: 268 268 accept(TOKENIZER_IS_KEY); 269 269 r = script_key_is_clicked(ubasic_get_key_arg()); 270 270 break; 271 case TOKENIZER_SCRIPT_AUTOSTARTED:271 case TOKENIZER_SCRIPT_AUTOSTARTED: 272 272 accept(TOKENIZER_SCRIPT_AUTOSTARTED); 273 273 r = camera_get_script_autostart(); 274 274 break; 275 case TOKENIZER_GET_SCRIPT_AUTOSTART:275 case TOKENIZER_GET_SCRIPT_AUTOSTART: 276 276 accept(TOKENIZER_GET_SCRIPT_AUTOSTART); 277 277 #ifdef UBASIC_TEST 278 r = 0;279 #else 278 r = 0; 279 #else 280 280 r = conf.script_startup; 281 281 #endif 282 282 break; 283 case TOKENIZER_GET_USB_POWER:283 case TOKENIZER_GET_USB_POWER: 284 284 accept(TOKENIZER_GET_USB_POWER); 285 285 r = get_usb_power(0); 286 286 break; 287 case TOKENIZER_GET_EXP_COUNT:287 case TOKENIZER_GET_EXP_COUNT: 288 288 accept(TOKENIZER_GET_EXP_COUNT); 289 289 r = get_exposure_counter(); 290 290 break; 291 case TOKENIZER_IS_PRESSED:291 case TOKENIZER_IS_PRESSED: 292 292 accept(TOKENIZER_IS_PRESSED); 293 293 r = script_key_is_clicked(ubasic_get_key_arg()); … … 302 302 action_push_delay(rand()%10); 303 303 r = min + rand()%(max-min+1); 304 break;304 break; 305 305 case TOKENIZER_GET_MOVIE_STATUS: 306 306 accept(TOKENIZER_GET_MOVIE_STATUS); 307 307 r = movie_status; 308 break;308 break; 309 309 case TOKENIZER_GET_PLATFORM_ID: 310 310 accept(TOKENIZER_GET_PLATFORM_ID); 311 311 r = PLATFORMID; 312 break;312 break; 313 313 case TOKENIZER_GET_DRIVE_MODE: 314 314 accept(TOKENIZER_GET_DRIVE_MODE); 315 315 r = shooting_get_drive_mode(); 316 break;316 break; 317 317 case TOKENIZER_GET_FOCUS_MODE: 318 318 accept(TOKENIZER_GET_FOCUS_MODE); 319 319 r = shooting_get_real_focus_mode(); 320 break;320 break; 321 321 case TOKENIZER_GET_FOCUS_STATE: 322 322 accept(TOKENIZER_GET_FOCUS_STATE); 323 323 r = shooting_get_focus_state(); 324 break;324 break; 325 325 case TOKENIZER_GET_FOCUS_OK: 326 326 accept(TOKENIZER_GET_FOCUS_OK); 327 327 r = shooting_get_focus_ok(); 328 break;329 case TOKENIZER_GET_DISPLAY_MODE:328 break; 329 case TOKENIZER_GET_DISPLAY_MODE: 330 330 accept(TOKENIZER_GET_DISPLAY_MODE); 331 331 r = shooting_get_prop(PROPCASE_DISPLAY_MODE); 332 break;332 break; 333 333 case TOKENIZER_GET_FLASH_MODE: 334 334 accept(TOKENIZER_GET_FLASH_MODE); 335 335 r = shooting_get_prop(PROPCASE_FLASH_MODE); 336 break;336 break; 337 337 case TOKENIZER_GET_SHOOTING: 338 338 accept(TOKENIZER_GET_SHOOTING); 339 339 r = shooting_get_prop(PROPCASE_SHOOTING); 340 break;340 break; 341 341 case TOKENIZER_GET_FLASH_READY: 342 342 accept(TOKENIZER_GET_FLASH_READY); 343 343 r = shooting_get_prop(PROPCASE_IS_FLASH_READY); 344 break;344 break; 345 345 case TOKENIZER_GET_IS_MODE: 346 346 accept(TOKENIZER_GET_IS_MODE); 347 347 r = shooting_get_prop(PROPCASE_IS_MODE); 348 break;348 break; 349 349 case TOKENIZER_GET_EV: 350 350 accept(TOKENIZER_GET_EV); 351 351 r = shooting_get_prop(PROPCASE_EV_CORRECTION_1); 352 break;352 break; 353 353 case TOKENIZER_GET_RESOLUTION: 354 354 accept(TOKENIZER_GET_RESOLUTION); 355 355 r = shooting_get_prop(PROPCASE_RESOLUTION); 356 break;356 break; 357 357 case TOKENIZER_GET_QUALITY: 358 358 accept(TOKENIZER_GET_QUALITY); 359 359 r = shooting_get_prop(PROPCASE_QUALITY); 360 break;360 break; 361 361 case TOKENIZER_GET_ORIENTATION_SENSOR: 362 362 accept(TOKENIZER_GET_ORIENTATION_SENSOR); 363 363 r = shooting_get_prop(PROPCASE_ORIENTATION_SENSOR); 364 break;364 break; 365 365 case TOKENIZER_GET_ZOOM_STEPS: 366 366 accept(TOKENIZER_GET_ZOOM_STEPS); 367 367 r = zoom_points; 368 break;368 break; 369 369 case TOKENIZER_GET_ND_PRESENT: 370 370 accept(TOKENIZER_GET_ND_PRESENT); … … 378 378 r = 2; 379 379 #endif 380 break;380 break; 381 381 case TOKENIZER_GET_PROPSET: 382 382 accept(TOKENIZER_GET_PROPSET); 383 383 r = CAM_PROPSET; 384 break;384 break; 385 385 case TOKENIZER_GET_TV96: 386 386 accept(TOKENIZER_GET_TV96); … … 459 459 r = GetFreeCardSpaceKb(); 460 460 break; 461 462 461 case TOKENIZER_GET_JPG_COUNT: 463 462 accept(TOKENIZER_GET_JPG_COUNT); … … 493 492 switch (temp) 494 493 { 495 case 0:496 r = get_optical_temp();497 break;498 case 1:499 r = get_ccd_temp();500 break;501 case 2:502 r = get_battery_temp();503 break;504 default: // do something sane if given a bad index505 r = 0;506 }507 break; 508 case TOKENIZER_GET_TIME: {494 case 0: 495 r = get_optical_temp(); 496 break; 497 case 1: 498 r = get_ccd_temp(); 499 break; 500 case 2: 501 r = get_battery_temp(); 502 break; 503 default: // do something sane if given a bad index 504 r = 0; 505 } 506 break; 507 case TOKENIZER_GET_TIME: 509 508 accept(TOKENIZER_GET_TIME); 510 unsigned long t2 = time(NULL);509 unsigned long t2 = time(NULL); 511 510 int tmode = expr(); 512 static struct tm *ttm;513 ttm = localtime(&t2);511 static struct tm *ttm; 512 ttm = localtime(&t2); 514 513 if (tmode==0) r = ttm->tm_sec; 515 514 else if (tmode==1) r = ttm->tm_min; … … 518 517 else if (tmode==4) r = ttm->tm_mon+1; 519 518 else if (tmode==5) r = 1900+ttm->tm_year; 520 break; 521 } 522 case TOKENIZER_GET_RAW: 519 break; 520 case TOKENIZER_GET_RAW: 523 521 accept(TOKENIZER_GET_RAW); 524 522 #ifdef UBASIC_TEST 525 r = 1;526 #else 523 r = 1; 524 #else 527 525 r = conf.save_raw; 528 526 #endif 529 527 break; 530 // get CHDK capture mode value, or 0 if in playback or unknown (broken modemap)531 // NOTE: different from get_mode, since this returns the actual value532 case TOKENIZER_GET_CAPTURE_MODE:528 // get CHDK capture mode value, or 0 if in playback or unknown (broken modemap) 529 // NOTE: different from get_mode, since this returns the actual value 530 case TOKENIZER_GET_CAPTURE_MODE: 533 531 accept(TOKENIZER_GET_CAPTURE_MODE); 534 532 r = mode_get(); 535 533 if ( (r&MODE_MASK) == MODE_REC) 536 r &= MODE_SHOOTING_MASK;534 r &= MODE_SHOOTING_MASK; 537 535 else 538 r = 0;539 break; 540 // check if CHDK capture mode exists in modemap of this camera541 case TOKENIZER_IS_CAPTURE_MODE_VALID: {536 r = 0; 537 break; 538 // check if CHDK capture mode exists in modemap of this camera 539 case TOKENIZER_IS_CAPTURE_MODE_VALID: 542 540 accept(TOKENIZER_IS_CAPTURE_MODE_VALID); 543 541 int modenum = expr(); 544 542 if (shooting_mode_chdk2canon(modenum) == -1) 545 r = 0;543 r = 0; 546 544 else 547 r = 1;545 r = 1; 548 546 break; 549 547 case TOKENIZER_GET_FOCAL_LENGTH: … … 557 555 case TOKENIZER_GET_CONFIG_VALUE: 558 556 accept(TOKENIZER_GET_CONFIG_VALUE); 559 int var = expr();560 557 int var1 = expr(); 561 if( conf_getValue(var, &configVal) == CONF_VALUE) r = configVal.numb; else r = var1; 562 break; 563 } 558 int var2 = expr(); 559 if( conf_getValue(var1, &configVal) == CONF_VALUE) r = configVal.numb; else r = var2; 560 break; 561 #ifdef CAM_MULTIPART 562 case TOKENIZER_SWAP_PARTITIONS: 563 accept(TOKENIZER_SWAP_PARTITIONS); 564 int partNr = expr(); 565 r = swap_partitions(partNr); 566 break; 567 #endif 564 568 default: 565 569 r = varfactor(); -
trunk/platform/generic/wrappers.c
r645 r657 923 923 return count; 924 924 } 925 int get_part_type() 926 { 927 int partType = 0x00; 928 if (is_mbr_loaded()) 929 { 930 partType=mbr_buf[0x1C2+(get_active_partition()-1)*16]; 931 } 932 return partType; 933 } 925 934 926 935 static int boot_partition = 0; … … 929 938 { 930 939 return partition_changed; 931 }932 933 voidswap_partitions(int new_partition)940 } 941 942 int swap_partitions(int new_partition) 934 943 { 935 944 if (is_mbr_loaded()) … … 949 958 if( new_partition > partition_count || new_partition <= 0 ) 950 959 { 951 return ;960 return 0; 952 961 } 953 962 partition_changed = (new_partition==boot_partition)?0:1; … … 972 981 _WriteSDCard(0,0,1,mbr_buf); 973 982 } 983 return 1; 974 984 } 975 985
Note: See TracChangeset
for help on using the changeset viewer.