Changeset 2086
- Timestamp:
- 08/17/12 09:19:26 (10 months ago)
- Location:
- trunk
- Files:
-
- 3 edited
-
core/gui_osd.c (modified) (1 diff)
-
platform/sx220hs/kbd.c (modified) (12 diffs)
-
platform/sx220hs/platform_camera.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/core/gui_osd.c
r2065 r2086 184 184 sprintf(osd_buf+strlen(osd_buf), "%9s", ""); 185 185 osd_buf[9-i]=0; 186 draw_string(conf.values_pos.x+i*FONT_WIDTH, conf.values_pos.y+m, osd_buf, use_good_color?((conf.osd_color & 0xff00) | COLOR_ GREEN):conf.osd_color);186 draw_string(conf.values_pos.x+i*FONT_WIDTH, conf.values_pos.y+m, osd_buf, use_good_color?((conf.osd_color & 0xff00) | COLOR_HISTO_G):conf.osd_color); 187 187 } else { 188 188 osd_buf[9]=0; -
trunk/platform/sx220hs/kbd.c
r2021 r2086 23 23 #define KEYS_MASK0 (0x000FFC0F) // sx220 physw_status[0] 24 24 #define KEYS_MASK1 (0x00200000) 25 #define KEYS_MASK2 (0x00002182) // sx220 physw_status[2]25 #define KEYS_MASK2 (0x00002182) // sx220 physw_status[2] 26 26 27 27 #define NEW_SS (0x2000) 28 28 #define SD_READONLY_FLAG (0x20000) 29 #define SD_READONLY_IDX 2 30 #define USB_IDX 2 29 #define SD_READONLY_IDX 2 30 #define USB_IDX 2 31 31 32 32 #define USB_MASK (0x4000000) … … 36 36 int get_usb_bit() 37 37 { 38 long usb_physw[3];39 usb_physw[USB_IDX] = 0;40 _kbd_read_keys_r2(usb_physw);41 return(( usb_physw[USB_IDX] & USB_MASK)==USB_MASK) ; 38 long usb_physw[3]; 39 usb_physw[USB_IDX] = 0; 40 _kbd_read_keys_r2(usb_physw); 41 return(( usb_physw[USB_IDX] & USB_MASK)==USB_MASK) ; 42 42 } 43 43 … … 64 64 { 0, KEY_ZOOM_IN2 , 0x0000000C }, 65 65 { 0, KEY_DISPLAY , 0x00000800 }, 66 { 0, KEY_UP , 0x00001000 }, 66 { 0, KEY_UP , 0x00001000 }, 67 67 { 0, KEY_RIGHT , 0x00006000 }, 68 68 { 0, KEY_SET , 0x00010000 }, … … 70 70 { 0, KEY_MENU , 0x00040000 }, 71 71 { 0, KEY_VIDEO , 0x00080000 }, 72 // { 0, KEY_RIGHT_SOFT , 0x00002000 }, //soft keys commented out but still counted in the keymasks, seems to disable them like we want.73 // { 0, KEY_UP_SOFT , 0x00000400 }, //if enabled can cause unintentional button presses in alt menu when rotating the jogdial really fast.72 // { 0, KEY_RIGHT_SOFT , 0x00002000 }, //soft keys commented out but still counted in the keymasks, seems to disable them like we want. 73 // { 0, KEY_UP_SOFT , 0x00000400 }, //if enabled can cause unintentional button presses in alt menu when rotating the jogdial really fast. 74 74 // { 0, KEY_DOWN_SOFT , 0x00008000 }, 75 75 … … 92 92 93 93 void my_blinkk(void) { 94 int i;95 while(1) {96 *((volatile int *) 0xC0220130) = 0x46; // Turn on LED97 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }98 99 *((volatile int *) 0xC0220130) = 0x44; // Turn off LED100 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }101 102 *((volatile int *) 0xC0220130) = 0x46; // Turn on LED103 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }104 105 *((volatile int *) 0xC0220130) = 0x44; // Turn off LED106 for (i=0; i<0x900000; i++) { asm volatile ( "nop\n" ); }107 }94 int i; 95 while(1) { 96 *((volatile int *) 0xC0220130) = 0x46; // Turn on LED 97 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 98 99 *((volatile int *) 0xC0220130) = 0x44; // Turn off LED 100 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 101 102 *((volatile int *) 0xC0220130) = 0x46; // Turn on LED 103 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 104 105 *((volatile int *) 0xC0220130) = 0x44; // Turn off LED 106 for (i=0; i<0x900000; i++) { asm volatile ( "nop\n" ); } 107 } 108 108 } 109 109 … … 115 115 static void __attribute__((noinline)) mykbd_task_proceed() { 116 116 while (physw_run) { 117 _SleepTask( *((int*)(0x1c40+0x8)));//10); @FF0244F4118 119 if (wrap_kbd_p1_f() == 1) { // autorepeat ?120 _kbd_p2_f();117 _SleepTask(physw_sleep_delay); 118 119 if (wrap_kbd_p1_f() == 1) { // autorepeat ? 120 _kbd_p2_f(); 121 121 } 122 122 } … … 126 126 void __attribute__((naked,noinline)) mykbd_task() { 127 127 128 mykbd_task_proceed(); 128 mykbd_task_proceed(); 129 129 130 130 // function can be modified to restore SP here... 131 131 132 _ExitTask();132 _ExitTask(); 133 133 } 134 134 … … 137 137 asm volatile( 138 138 "STMFD SP!, {R1-R7,LR}\n" //SX220 modified 139 "MOV R5, #0\n" 139 "MOV R5, #0\n" 140 140 // "BL _kbd_read_keys\n" // replaces kbd_fetch_data() 141 141 "BL my_kbd_read_keys\n" // + 142 142 "B _kbd_p1_f_cont\n" // continue 143 143 ); 144 145 return 0; // shut up the compiler144 145 return 0; // shut up the compiler 146 146 } 147 147 … … 164 164 // like SX30 and g12 165 165 void my_kbd_read_keys() { 166 166 167 167 kbd_prev_state[0] = kbd_new_state[0]; 168 kbd_prev_state[1] = kbd_new_state[1];168 kbd_prev_state[1] = kbd_new_state[1]; 169 169 kbd_prev_state[2] = kbd_new_state[2]; 170 170 171 _GetKbdState(kbd_new_state); 172 _kbd_read_keys_r2(kbd_new_state); 173 171 _GetKbdState(kbd_new_state); 172 _kbd_read_keys_r2(kbd_new_state); 174 173 175 174 if (kbd_process() == 0) { 176 175 // we read keyboard state with _kbd_read_keys() 177 physw_status[0] = kbd_new_state[0];178 physw_status[1] = kbd_new_state[1];179 physw_status[2] = kbd_new_state[2];180 jogdial_control(0);176 physw_status[0] = kbd_new_state[0]; 177 physw_status[1] = kbd_new_state[1]; 178 physw_status[2] = kbd_new_state[2]; 179 jogdial_control(0); 181 180 } else { 182 181 // override keys 183 182 physw_status[0] = (kbd_new_state[0] | KEYS_MASK0) & (~KEYS_MASK0 | kbd_mod_state[0]); 184 physw_status[1] = (kbd_new_state[1] | KEYS_MASK1) & (~KEYS_MASK1 | kbd_mod_state[1]);183 physw_status[1] = (kbd_new_state[1] | KEYS_MASK1) & (~KEYS_MASK1 | kbd_mod_state[1]); 185 184 physw_status[2] = (kbd_new_state[2] | KEYS_MASK2) & (~KEYS_MASK2 | kbd_mod_state[2]); 186 185 187 if ((jogdial_stopped==0) && !state_kbd_script_run) {186 if ((jogdial_stopped==0) && !state_kbd_script_run) { 188 187 jogdial_control(1); 189 188 get_jogdial_direction(); … … 193 192 } 194 193 195 usb_remote_key() ;196 197 if (conf.remote_enable) {198 physw_status[USB_IDX] = physw_status[USB_IDX] & ~(SD_READONLY_FLAG | USB_MASK);199 } else {200 physw_status[USB_IDX] = physw_status[USB_IDX] & ~SD_READONLY_FLAG;201 }194 usb_remote_key() ; 195 196 if (conf.remote_enable) { 197 physw_status[USB_IDX] = physw_status[USB_IDX] & ~(SD_READONLY_FLAG | USB_MASK); 198 } else { 199 physw_status[USB_IDX] = physw_status[USB_IDX] & ~SD_READONLY_FLAG; 200 } 202 201 203 202 } … … 224 223 225 224 void kbd_key_release_all() { 226 227 kbd_mod_state[0] |= KEYS_MASK0;225 226 kbd_mod_state[0] |= KEYS_MASK0; 228 227 kbd_mod_state[1] |= KEYS_MASK1; 229 228 kbd_mod_state[2] |= KEYS_MASK2; … … 259 258 } 260 259 } 261 260 262 261 return 0; 263 262 } -
trunk/platform/sx220hs/platform_camera.h
r1848 r2086 37 37 38 38 #define CAM_HAS_CMOS 1 39 #define CAM_HAS_ND_FILTER 1 40 #define CAM_HAS_JOGDIAL 1 41 #define CAM_HAS_VIDEO_BUTTON 1 42 #define CAM_HAS_MOVIE_DIGEST_MODE 1 39 43 40 # define CAM_HAS_ND_FILTER 144 #undef CAM_HAS_ERASE_BUTTON 41 45 42 46 #undef CAM_CAN_SD_OVER_NOT_IN_MF 47 48 #define CAM_VIDEO_QUALITY_ONLY 1 49 #undef CAM_VIDEO_CONTROL 43 50 #undef CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 44 51 45 #define CAM_HAS_VIDEO_BUTTON 146 #define CAM_VIDEO_QUALITY_ONLY 147 48 #undef CAM_VIDEO_CONTROL49 50 #define CAM_HAS_JOGDIAL 151 52 #undef CAM_USE_ZOOM_FOR_MF 52 53 … … 71 72 #define CAM_ACTIVE_AREA_Y2 3060 72 73 73 #define PARAM_CAMERA_NAME 4 // parameter number for GetParameterData 74 #define PARAM_CAMERA_NAME 4 // parameter number for GetParameterData - Camera Model name 75 #define PARAM_OWNER_NAME 7 // parameter number for GetParameterData - Owner name 76 74 77 #undef CAM_SENSOR_BITS_PER_PIXEL 75 78 #define CAM_SENSOR_BITS_PER_PIXEL 12 76 79 77 80 #define CAM_EXT_TV_RANGE 1 81 #define CAM_CHDK_HAS_EXT_VIDEO_TIME 1 78 82 79 83 #undef CAM_BITMAP_PALETTE 80 84 #define CAM_BITMAP_PALETTE 10 81 #undef CAM_HAS_ERASE_BUTTON82 85 #define CAM_SHOW_OSD_IN_SHOOT_MENU 1 83 86 … … 99 102 100 103 //#define CAM_QUALITY_OVERRIDE 1 // works not really 101 #define CAM_CHDK_HAS_EXT_VIDEO_TIME 1102 104 103 105 #define CAM_STARTUP_CRASH_FILE_OPEN_FIX 1 … … 111 113 112 114 #define DRAW_ON_ACTIVE_BITMAP_BUFFER_ONLY 1 113 #define CAM_HAS_MOVIE_DIGEST_MODE 1114 115 //----------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.