• Vivid colours and quality
• ISO Control for both flash and non-flash shots
• Advanced Auto-ISO Flash mode
• Shutter-speed control for both Flash and non-flash shots
• Manual Focus
• Manual Contrast
• Manual Saturation
• Manual Sharpness
• Auto-exposure lock on/off
• Advanced Hue/Tint selection
• Manual Colour balance: Cyan, Red, Yellow, Purple
• Forced flash on/off
• Colour Correction On/off
• Focus and other features in video mode
• Record videos in QVGA (320×240) and CIF (352×288)
Date: 31.10.2010.
Author: Hasaan Rafique aka. Witchking
Nationality: Pakistanian
download
//******************************************************** //* CYBERSHOT XPERIENCE for K850i * //* * //* (c) WITCHKING, Member No.: 92,437 @ www.se-nse.net * //* * //* Official topic for discussion/feedback/suggestions: * //* http://forums.se-nse.net/index.php?showtopic=39126 * //* GOOD LUCK TO ALL MY USERS * //* REGARDS * //* Hasaan Rafique / Witchking * //******************************************************** info_name=Cybershot™ Xperience; info_vendor=witchking; info_major_ver=9; info_minor_ver=5; //******************************************************** //-----------------Platform registers used---------------- //******************************************************** // 0, Used in CLEAR_EVENT_FIFO, // POLL_EVENT_ID, // jpeg_qtable_selector // WAIT_FOR_TRIG // 1, Used in SET_REG, // CLEAR_EVENT // SEND_COMMAND, // jpeg_qtable_selector // 2, Used in CLEAR_EVENT (Event info stored), // CLEAR_EVENT_FIFO, // POLL_EVENT_ID, // jpeg_qtable_selector // 3, Used in CLEAR_EVENT (Event id stored), // CLEAR_EVENT_FIFO, // POLL_EVENT_ID, // 4, Used in READ_REG (value stored) // Property 6 // 5, Used in Property 6 // Property 23 // UPDATE_MIN_FRMRATE // UPDATE_ISO // UPDATE_PHOTO // UPDATE_WB // Property 10 // 6, // 7, // 8, Used as a flag for HS video // 9, 0:Init 1:ReadyForBurstOutput 2:WaitForEV_RECORD_STATUS 3:BurstOutput // a, Used to remember EV value // b, Used in Property 29, BestPic operation // seq_pv_verify // c, Used to remember ISO setting since one has to change AE_MODE // to "auto" for IS. // d, Used to remember Xenon flash mode (property 14) // e, Used for picture readout, 0 => normal, burst 1 => read out pict 1 ... // f, Used as 32 flags: // bit 0, Image stabilization, 1 = ON, 0 = OFF // bit 1, High sensitivity, 1 = ON, 0 = OFF // bit 2, Any draft mode, 1 = YES, 0 = NO // bit 3, Snapshot format, 1 = JPEG, 0 = YCbCr // bit 4, Xenon flash needed, 1 = Yes, 0 = NO // bit 5, JPEG compression 1 = Normal, 0 = Low compression // bit 6, Flash was used 1 = True, 0 = False // bit 7, Menu mode(low frrate)1 = True, 0 = False //******************************************************** //-----------------CAMDRIVER SECTION START---------------- //******************************************************** //===================MACROS FOR CAMERA******************** //******************************************************** SET_REG = // Sets register to value 05 02 00 !0 !1 $f // Syntax: SET_REG(REG,VAL) $r2 1 1 $d0002 // ; READ_REG = // Read from camera and put result in platf. reg 4 05 01 00 !0 01 $f // Syntax: READ_REG(REG) $r2 4 4 $d0002 // Result saved in reg 4. ; CLEAR_EVENT = // Clears event register. FIFO is not cleared 05 01 00 03 03 $f // Packet length, access code, id number, reg to read (int source), req packet length $r4 1 123 $d0002 // Put Int_source in reg 1, Event_info in reg 2 and Event_id in reg 3 $c3 00 // If internal register 3 holds 0 (means the queue was empty) $"CAMDRIVER0: Queue_was_empty" $cl $"CAMDRIVER0: Cleared_Int_Source_%1_Event_Info_%2_Event_ID_%3" $cx #SET_REG(06,03) // Clears the event ; CLEAR_EVENT_FIFO = // Clears the event FIFO $s0 01 // Set internal register 0 to 0x01 (otherwise the loop won't even start) [ 0 ff // Loop 0xff times or quit looping when internal register 0 holds 0 #CLEAR_EVENT // Read the event and clear it $c3 00 // If internal register 3 holds 00 (= if EVENT_ID equals 00, meaning the queue is empty) $s0 00 // Set internal register 0 to 0x00 in order to exit the loop $cx ] ; SEND_COMMAND = // Only send command, no reply is read out 06 02 00 01 !1 !0 $f // Syntax: SEND_COMMAND(REG,VALUE) $r3 111 $d0002 // ; WAIT_FOR_TRIG = // Listen to TRIG $h 0 02 5 1000 // Listen to trig on Application GPIO_02 = TRIG $c0 00 $"CAMDRIVER0: TRIG_Timeout" // No event occured $cl $"CAMDRIVER0: TRIG_Recieved" // Event occured $cx ; // Reads and clears events until the specified event occurs. POLL_EVENT_ID = // Syntax: POLL_EVENT_ID($s4 Event Identification) !0 // "Execute" the first parameter $s0 01 // Set internal register 0 to 0x01 (otherwise the loop won't even start) [ 0 ff // Loop 0xff times or quit looping when internal register 0 holds 0 #CLEAR_EVENT // Clear event. If the event id (which the CLEAR_EVENT-makro will store in // internal register 2) is equal to 0xea (= EV_MODE_CHANGED) $-3 r4 // Subtract the contents of internal register 4 from the contents of register 3 (EVENT_ID) // and store the result in internal register 3 $c3 00 // If internal register 3 holds 0 $"CAMDRIVER0: Successfully_acknowledged_Event_ID_%4" $s0 00 // Set internal register 0 to 0x00 in order to exit the loop $cx // End if ] ; CAPTURE_EVENT = #WAIT_FOR_TRIG #CLEAR_EVENT ; CHANGE_MODE = // Syntax: CHANGE_MODE(command, value) #CLEAR_EVENT_FIFO // Clear the fifo #SEND_COMMAND(!0,!1) // Send command #POLL_EVENT_ID($s4 ea) // Wait for EV_mode_changed (0xea) #SET_REG(06,03) ; COM_EVENT = // Syntax: COM_EVENT(command, value) #CLEAR_EVENT_FIFO #SEND_COMMAND(!0,!1) #WAIT_FOR_TRIG #CLEAR_EVENT ; UPDATE_WB = // Updates white balance if necessary $p5 01 $c5 00 // WB is auto? $cl $u01 // Update WB $cx; UPDATE_PHOTO = // Updates photo metering $p5 16 $c5 00 // Photo metering is not spot? $cl $u16 // Update photo metering => spot $cx; WB_ISO100 = // Correct WB for ISO100 xenon #SET_REG(98,2B) // FLASH_CC_R #SET_REG(99,60) // FLASH_CC_B ; WB_ISO200 = // Correct WB for ISO200 xenon #SET_REG(98,2A) // FLASH_CC_R #SET_REG(99,65) // FLASH_CC_B ; WB_ISO400 = // Correct WB for ISO400 xenon #SET_REG(98,2C) // FLASH_CC_R #SET_REG(99,67) // FLASH_CC_B ; WB_ISO800 = // Correct WB for ISO800 xenon #SET_REG(98,2C) #SET_REG(99,69) ; WB_PORTRAIT = #SET_REG(98,27) #SET_REG(99,6D) ; FLASH_LIMIT_ISO100 = // Set flash limits for ISO100 #SET_REG(A2,C8) #SET_REG(A3,25) // Flash limits #SET_REG(A4,D0) #SET_REG(A5,25) ; FLASH_LIMIT_ISO200 = // Set flash limits for ISO200 #SET_REG(A2,C7) #SET_REG(A3,21) #SET_REG(A4,D0) #SET_REG(A5,21) ; FLASH_LIMIT_ISO400 = // Set flash limits for ISO400 #SET_REG(A2,C6) #SET_REG(A3,1D) #SET_REG(A4,D0) #SET_REG(A5,1D) ; UPDATE_ISO = // Updates ISO $p5 11 $c5 00 // ISO is auto $cl $u11 // Update ISO $cx; RERFLASH = // Additional RER Flash settings #COM_EVENT(58,04) //Saturation #COM_EVENT(55,00) //Contrast $p1 01 $c1 02 #COM_EVENT(13,01) $cl $c1 04 #COM_EVENT(13,01) $cl $p1 11 $c1 01 #COM_EVENT(13,01) $cl $p1 08 $c1 03 #COM_EVENT(13,01) $cl $p1 08 $c1 01 #COM_EVENT(13,01) $cl #COM_EVENT(13,00) $cx $cx $cx $cx $cx; AUTOFLASH = // Additional Auto Flash settings #COM_EVENT(58,04) //Saturation #COM_EVENT(55,00) //Contrast $p1 01 $c1 02 #COM_EVENT(13,01) $cl $c1 04 #COM_EVENT(13,01) $cl $p1 11 $c1 01 #COM_EVENT(13,01) $cl $p1 08 $c1 03 #COM_EVENT(13,01) $cl $p1 08 $c1 01 #COM_EVENT(13,01) $cl #COM_EVENT(13,00) $cx $cx $cx $cx $cx ; UPDATE_MIN_FRMRATE = // Updates minimum framerate $p5 10 $c5 03 #SET_REG(22,01) // DRAFT_MIN_FRMRATE $cl #SET_REG(22,05) // DRAFT_MIN_FRMRATE $cx; FLASH_SETTINGS = #SET_REG(92,00) // FLASH_MSHUT_MODE #SET_REG(A0,02) // FLASH_REDEYE_NUM #SET_REG(A1,03) // FLASH_REDEYE_TWAIT #SET_REG(96,00) // FLASH_EXPOSING_OFFSET #SET_REG(97,04) // Low byte of FLASH_EXPOSING_OFFSET #SET_REG(9A,F0) // CC_FLASH_OFFSET_MAX_RATIO #SET_REG(9B,A0) // CC_FLASH_OFFSET_MIN_RATIO #SET_REG(9C,0D) // CC_FLASH_OFFSET_DARK #SET_REG(9D,2B) // CC_FLASH_OFFSET_BRIGHT ; TO_DRAFT = // Changes to draft (but not on display) $cf.02 0 // If not draft #CHANGE_MODE(33,00) // MODE_MAIN $sf.02 1 // Set draft flag to 1 $cl $cx ; ///------------------------------------ /// CX MACROS FOR MANUAL SETTINGS ///------------------------------------ COLOURGAIN = $p5 10 $c5 00 #COM_EVENT(58,0B) $cl $c5 07 #COM_EVENT(58,01) $cl #COM_EVENT(58,07) $cx $cx ; UPDATECOLOUR = #SET_REG(65,FA) #SET_REG(66,1A) #COM_EVENT(13,01) #COLOURGAIN ; CCOFF = #SET_REG(65,FB) #SET_REG(66,08) #COM_EVENT(13,01) ; MANUAL_CONTRAST = $s4 %0 $-4 08 #COM_EVENT(55,$w4) $c1 #COM_EVENT(61,40) $c1 $cx $cx ; MANUAL_SATURATION = $s4 %0 $-4 08 $*4 08 #COM_EVENT(58,$w4) $c1 #COM_EVENT(61,40) $c1 $cx $cx ; MANUAL_FOCUS = #SET_REG(95,01) $s4 %0 $-4 03 $*4 08 #COM_EVENT(43,$w4) $c1 #COM_EVENT(61,40) $c1 $cx $cx ; MANUAL_SHARPNESS = $s4 %0 $-4 08 #COM_EVENT(56,$w4) $c1 #COM_EVENT(61,40) $c1 $cx $cx ; CC_CYANRED = $s4 %0 $-4 03 $*4 13 #SET_REG(65,$w4) #COM_EVENT(13,01) $c1 #COM_EVENT(61,40) $c1 $cx $cx ; CC_YELLOWBLUE = $s4 %0 $-4 03 $*4 13 #SET_REG(66,$w4) #COM_EVENT(13,01) $c1 #COM_EVENT(61,40) $c1 $cx $cx ; MANUAL_SS_FLASH = $s4 %0 $-4 03 $*4 08 #SET_REG(9E,$w4) $c1 #COM_EVENT(61,40) $c1 $cx $cx ; MANUAL_SHUTTER = $s4 %0 $-4 03 $*4 07 $/4 02 #COM_EVENT(02,02) #SET_REG(60,$w4) $sf.0a 1 ; ISO_AUTO = #TO_DRAFT $sc 00 #COM_EVENT(02,00) ; ISO100 = #TO_DRAFT $sc 01 #SET_REG(61,01) #COM_EVENT(02,04); ISO125 = #TO_DRAFT $sc 02 #SET_REG(61,02) #COM_EVENT(02,04); ISO160 = #TO_DRAFT $sc 03 #SET_REG(61,03) #COM_EVENT(02,04); ISO200 = #TO_DRAFT $sc 04 #SET_REG(61,04) #COM_EVENT(02,04); ISO250 = #TO_DRAFT $sc 05 #SET_REG(61,05) #COM_EVENT(02,04); ISO320 = #TO_DRAFT $sc 06 #SET_REG(61,06) #COM_EVENT(02,04); ISO400 = #TO_DRAFT $sc 07 #SET_REG(61,07) #COM_EVENT(02,04); ISO500 = #TO_DRAFT $sc 08 #SET_REG(61,08) #COM_EVENT(02,04); ISO640 = #TO_DRAFT $sc 09 #SET_REG(61,09) #COM_EVENT(02,04); ISO800 = #TO_DRAFT $sc 0a #SET_REG(61,0A) #COM_EVENT(02,04); ISO1000 = #TO_DRAFT $sc 0b #SET_REG(61,0B) #COM_EVENT(02,04); WB_AUTO = #TO_DRAFT #COM_EVENT(11,00); WB_INC = #TO_DRAFT #COM_EVENT(11,03); WB_FL = #TO_DRAFT #COM_EVENT(11,04); WB_DL = #TO_DRAFT #COM_EVENT(11,05); WB_CL = #TO_DRAFT #COM_EVENT(11,06); EF_FC = #COM_EVENT(57,8C) #COM_EVENT(53,00); EF_NO = #COM_EVENT(53,00); EF_NEG = #COM_EVENT(53,01); EF_SOL = #COM_EVENT(53,02); EF_SEP = #COM_EVENT(53,03); EF_BW = #COM_EVENT(53,04); CC_BLUE = #SET_REG(65,0C) #SET_REG(66,D0) #COM_EVENT(13,01); CC_YELLOW = #SET_REG(65,00) #SET_REG(66,1A) #COM_EVENT(13,01); CC_GREEN = #SET_REG(65,0A) #SET_REG(66,16) #COM_EVENT(13,01); CC_RED = #SET_REG(65,F5) #SET_REG(66,00) #COM_EVENT(13,01); VIVID = #COM_EVENT(56,06) #COM_EVENT(58,20) #COM_EVENT(57,00) #COM_EVENT(13,00) #COM_EVENT(55,00) #ISO_AUTO; RESET = #COM_EVENT(55,00) #COM_EVENT(56,07) #COM_EVENT(58,0B) #COM_EVENT(57,20) #WB_ISO200 #FLASH_LIMIT_AUTO #SET_REG(4C,00) #COM_EVENT(06,00); //================================================ //+++++++++++CAMERA CHARACTERISTICS+++++++++++++++ //************************************************ cam_power_on_0 = 5, 2, 31, 0, 05; // Pull RST pin (expander_GPIO_O9 = GPIO_31), delay 5ms cam_power_on_1 = 5, 2, 20, 1, 05; // Videocamera standby (expander_GPIO_00 = GPIO_30) cam_power_on_2 = 5, 2, 33, 1, 00; // VDDs (expander_GPIO_O11=GPIO_33) delay 5ms cam_power_on_3 = 5, 2, 30, 1, 05; // VDDs (expander_GPIO_O8=GPIO_30) delay 5ms cam_power_on_4 = 5, 3, 9, 6590,05; // Turn on 26 MHz clock, delay 5ms cam_power_on_5 = 5, 2, 31, 1, 05; // Release RST (expander_GPIO_09 = GPIO_41) cam_power_off_0 = 5, 2, 31, 0, 05; // Pull RST pin (expander_GPIO_09 = GPIO_41), delay 5ms cam_power_off_1 = 5, 3, 9, 0, 05; // Turn off 26 MHz clock and wait 5 ms cam_power_off_2 = 5, 2, 30, 0, 20; // VDDs (expander_GPIO_O8=GPIO_30), delay 32ms cam_power_off_3 = 5, 2, 33, 0, 05; // VDDs (expander_GPIO_O11=GPIO_33), delay 5ms cam_power_off_4 = 5, 2, 20, 0, 05; // Release standby (expander_GPIO_00 = GPIO_30) for videocamera cam_i2c_address = 1F; cam_i2c_clock = 64; // 100 kHz cam_vf_clock_freq = 9, 6590; // 26 MHz clock cam_ss_clock_freq = 9, 6590; // 26 MHz clock cam_vf_format = B100; cam_ss_format = 0001; // JPEG default cam_ss_format_10 = B100; // YCbCr cam_ss_format_11 = B100; // YCbCr cam_data_offset = 2; // JPEG default cam_data_offset_10 = 0; // YCbCr cam_data_offset_11 = 0; // YCbCr cam_vf_sync = 5; cam_ss_sync = 5; cam_post_processing_20 = 1; // viewfinder rotation cam_post_processing_25 = 1; // videotelephony cam_post_processing_26 = 1; // videotelephony cam_post_processing_29 = 1; // video recording cam_ss_jpeg_buf_size_1 = 25800; cam_ss_jpeg_buf_size_2 = 64000; // 600 KB buffer for 1280x960 SS cam_ss_jpeg_buf_size_4 = 96000; // 900 KB buffer for 1632x1244 SS cam_ss_jpeg_buf_size_5 = E1000; // 1500 KB buffer for 2048x1536 SS cam_ss_jpeg_buf_size_6 = 270000; //2500 KB buffer for 2592x1944 SS //================================================ //=============== SUPPORTED SIZES ***************** //************************************************ sup_sizes = 1[280,1E0,0], // SS 640 x 480 JPEG 2[500,3C0,0], // SS 1280 x 960 JPEG 1M 4[660,4C8,0], // SS 1632 x 1224 JPEG 2M 5[800,600,0], // SS 2048 x 1536 JPEG 3M 6[A20,798,0], // SS 2592 x 1944 JPEG 5M 10[140, F0,0], // SS 320 x 240 YCbCr 11[280,1E0,0], // SS 640 x 480 YCbCr 20[140,F0,BB8], // VF 320 x 240 YCbCr 30 fps 21[140,F0,5DC], // VF 320 x 240 YCbCr 15 fps 25[60,80,4B0], // VT 96 x 128 YCbCr 12 fps max 26[90,B0,4B0], // VT 144 x 176 YCbCr 12 fps max 29[90,B0,3E8], // VR 144 x 176 YCbCr 10 fps fixed 2a[140,F0,BB8], // VR 320 x 240 YCbCr 30 fps fixed 2b[160,120,9C4], // VR 352 x 288 YCbCr 25 fps fixed 2c[160,120,7D0], // VR 352 x 288 YCbCr 20 fps fixed 2f[140,F0,BB8] // VF 320 x 240 YCbCr 30 fps ; //================================================ // I2C SEQUENCES //================================================ seq_init = // This sequence is run after power_on $sf 00 // Set all flags to zero $sf.05 1 // Normal JPEG compression $sf.02 1 // Set draft flag to YES $s8 00 // Video HS OFF $sa 09 // EV $sc 00 // Set iso to auto $se 00 // Normal snapshot operation $sd 00 // Flash mode "auto" #CAPTURE_EVENT // EV_CAM_READY #CAPTURE_EVENT // EV_MUTE_OFF #SET_REG(29,01) // STILL_OUT_REPEAT #SET_REG(3B,03) #SET_REG(3A,E8)// JPEG_RETRY_LIMIT #SET_REG(6B,06) // SCANAF_MODE_1 #SET_REG(6C,01) // SCANAF_AF_ILLUMI #SET_REG(6F,3C) // SCANAF_MAX_FRMRATE #SET_REG(70,1E) // SCANAF_MIN_FRMRATE #SET_REG(64,20) // SCENE_SLOW_SHUTTER #SET_REG(22,01) // DRAFT_MIN_FRMRATE #COM_EVENT(55,00) #COM_EVENT(56,04) #COM_EVENT(51,00) // Custom scene #SET_REG(95,03) // Default ISO for flash #WB_ISO200 // Correct xenon WB #FLASH_LIMIT_ISO100 #COM_EVENT(5A,01); // FLASH_INFO = 1 seq_ping = ; //================================================ // PROPERTIES //================================================ sup_properties = 0[3,f,9], // Exposure 1[0,4,0], // White balance 2[0,3,0], // Flicker 3[0,1,0], // Vertical mirroring 4[0,1,0], // Horisontal mirroring 5[0,1,0], // JPEG compression 6[A,A0,A], // Step zoom 7[0,1,0], // Night mode, HS ON/OFF 8[0,4,0], // Effects 9[0,1,0], // Focus mode A[0,2,0], // Focus operation B[0,0,0], // EXIF info 1 C[0,0,0], // EXIF info 2 //D[0,0,0], // E[0,4,0], // Xenon flash support //F[0,0,0], // 10[0,7,0], // Scenes 11[0,4,0], // ISO 12[0,1,0], // Framerate adjustments for GUI speed //13[0,0,0], // 14[0,11,8], // Contrast 15[0,11,8], // Sharpening 16[0,1,0], // Photo metering 17[0,0,0], // Xenon flash required 18[0,1,0], // Image stabilization 19[0,2,0], // Continuous zoom 1A[0,0,0], // Get zoom level in percentage 1B[0,9,0], // Snapshot operation 1C[0,3,0], // BestPic picture size 1D[0,4,0], // BestPic Operation 1E[0,1,0] // Reset and Test pattern ; //************************************************ // Exposure property 0 ***** //************************************************ // 3 => -2 EV, 9 => -(0) EV .... f => 2 EV //--------------------------------------------------- seq_set_prop_0_3 = $sa 03 $cd 03 #COM_EVENT(06,FA) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO100 #SET_REG(95,01) #WB_ISO100 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #EF_NO $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #COM_EVENT(13,00) $cl $p1 11 $c1 03 $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,FA) #SET_REG(95,01) #WB_ISO100 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_4 = $sa 04 $cd 03 #COM_EVENT(06,FB) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO100 #SET_REG(95,01) #WB_ISO100 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #EF_SOL $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl #SET_REG(66,E7) #SET_REG(65,00) #COM_EVENT(13,01) $cl $p1 11 $c1 03 $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,FB) #SET_REG(95,01) #WB_ISO100 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_5 = $sa 05 $cd 03 #COM_EVENT(06,FC) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO125 #SET_REG(95,02) #WB_ISO100 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #EF_SEP $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #SET_REG(66,D0) #SET_REG(65,0C) #COM_EVENT(13,01) $cl $p1 11 $c1 03 #RESET $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,FC) #SET_REG(95,01) #WB_ISO100 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_6 = $sa 06 $cd 03 #COM_EVENT(06,FD) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO160 #SET_REG(95,03) #WB_ISO100 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #EF_BW $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #SET_REG(66,00) #SET_REG(65,09) #COM_EVENT(13,01) $cl $p1 11 $c1 03 #VIVID $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,FD) #SET_REG(95,02) #WB_ISO100 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_7 = $sa 07 $cd 03 #COM_EVENT(06,FE) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO200 #SET_REG(95,04) #WB_ISO200 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #EF_NEG #COM_EVENT(57,00) $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #SET_REG(66,17) #SET_REG(65,0A) #COM_EVENT(13,01) $cl $p1 11 $c1 03 #COM_EVENT(02,00) #RESET $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,FE) #SET_REG(95,03) #WB_ISO100 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_8 = $sa 08 $cd 03 #COM_EVENT(06,FF) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO250 #SET_REG(95,05) #WB_ISO200 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #EF_FC $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #SET_REG(66,1A) #SET_REG(65,08) #COM_EVENT(13,01) $cl $p1 11 $c1 03 #COM_EVENT(02,01) $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,FF) #SET_REG(95,04) #WB_ISO200 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_9 = $sa 09 $cd 03 #COM_EVENT(06,00) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO_AUTO #SET_REG(95,04) #WB_ISO200 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #WB_AUTO #EF_NO #COM_EVENT(57,00) $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #COM_EVENT(13,00) $cl $p1 11 $c1 03 #COM_EVENT(02,00) $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,00) #SET_REG(95,04) #WB_ISO200 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_a = $sa 0a $cd 03 #COM_EVENT(06,01) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO320 #SET_REG(95,06) #WB_ISO200 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #WB_DL $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #SET_REG(66,08) #SET_REG(65,00) #COM_EVENT(13,01) $cl $p1 11 $c1 03 #COM_EVENT(02,01) $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,01) #SET_REG(95,05) #WB_ISO200 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_b = $sa 0b $cd 03 #COM_EVENT(06,02) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO400 #SET_REG(95,07) #WB_ISO400 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #WB_CL $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #SET_REG(66,1C) #SET_REG(65,00) #COM_EVENT(13,01) $cl $p1 11 $c1 03 #COM_EVENT(02,00) #RESET $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,02) #SET_REG(95,06) #WB_ISO200 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_c = $sa 0c $p5 10 $c5 05 $cl $cd 03 #COM_EVENT(06,03) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO500 #SET_REG(95,08) #WB_ISO400 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #WB_FL $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #SET_REG(66,1B) #SET_REG(65,F7) #COM_EVENT(13,01) $cl $p1 11 $c1 03 #COM_EVENT(52,02) $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,03) #SET_REG(95,07) #WB_ISO400 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_d = $sa 0d $cd 03 #COM_EVENT(06,04) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO640 #SET_REG(95,09) #WB_ISO800 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #WB_INC $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #SET_REG(66,00) #SET_REG(65,F7) #COM_EVENT(13,01) $cl $p1 11 $c1 03 #COM_EVENT(52,05) $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,04) #SET_REG(95,08) #WB_ISO400 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_e = $sa 0e $cd 03 #COM_EVENT(06,05) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO800 #SET_REG(95,0A) #WB_ISO800 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #WB_AUTO $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #SET_REG(66,00) #SET_REG(65,F2) #COM_EVENT(13,01) $cl $p1 11 $c1 03 #COM_EVENT(52,03) $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,05) #SET_REG(95,09) #WB_ISO800 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; seq_set_prop_0_f = $sa 0f $cd 03 #COM_EVENT(06,06) #MANUAL_SS_FLASH $cl $p1 08 $c1 04 #MANUAL_FOCUS $cl $p1 08 $c1 03 #MANUAL_SATURATION $cl $p1 08 $c1 01 #MANUAL_CONTRAST $cl $p1 08 $c1 02 #ISO1000 #SET_REG(95,0B) #WB_ISO800 $cl $p1 01 $c1 04 #CC_CYANRED $cl $p1 01 $c1 02 #CC_YELLOWBLUE $cl $p1 01 $c1 01 #WB_AUTO $cl $p1 11 $c1 02 #MANUAL_SHARPNESS $cl $p1 11 $c1 01 #COM_EVENT(13,00) $cl $p1 11 $c1 03 #COM_EVENT(52,00) #RESET $cl $p7 10 $c7 04 #MANUAL_SHUTTER #WB_ISO100 #FLASH_LIMIT_ISO $cl #COM_EVENT(06,06) #SET_REG(95,0A) #WB_ISO800 $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx $cx; //************************************************ // White balance, property 1 ******* //************************************************ // 0 => auto 1 => tungsten 2 => fluorescent // 3 => clear sky 4 => cloudy //--------------------------------------------------- seq_set_prop_1_0 = // Auto #TO_DRAFT #COM_EVENT(11,00); seq_set_prop_1_1 = // Incandescent #TO_DRAFT #COM_EVENT(11,00); seq_set_prop_1_2 = // Flourescent #TO_DRAFT #COM_EVENT(11,00); seq_set_prop_1_3 = // Outdoor Sunlight #TO_DRAFT #COM_EVENT(11,00); seq_set_prop_1_4 = // Outdoor Cloudy #TO_DRAFT #COM_EVENT(11,00); //**************************************************** // Flicker correction, property 2 ******* //**************************************************** // 0 => auto, 1 => 50 Hz, 2 => 60 Hz, 3 => disable // //--------------------------------------------------- seq_set_prop_2_0 = #COM_EVENT(21,01); // Auto seq_set_prop_2_1 = #COM_EVENT(21,02); // 50 Hz seq_set_prop_2_2 = #COM_EVENT(21,03); // 60 Hz seq_set_prop_2_3 = #COM_EVENT(21,00); // Disable //*************************************************** // Vertical mirror, property 3 ********* //*************************************************** seq_set_prop_3_0 = #COM_EVENT(52,00); // Off seq_set_prop_3_1 = #COM_EVENT(52,0A); // On //*************************************************** // Horizontal mirror, property 4 ******* //*************************************************** seq_set_prop_4_0 = #COM_EVENT(52,00); // Off seq_set_prop_4_1 = #COM_EVENT(52,05); // On //*************************************************** // JPEG Compression level, property 5 //*************************************************** seq_set_prop_5_0 = $sf.05 1; // Normal compression seq_set_prop_5_1 = $sf.05 0; // Low compression //*************************************************** // Zoom, property 6 ***** //*************************************************** // 10 => 1.0 x zoom, 11 => 1.1 x zoom, ... 160 => 16.0 x zoom // Hex values from 40 ... 04 //--------------------------------------------------- seq_set_prop_6 = // Set zoom level y = -60x/150 + 68 #TO_DRAFT $s4 %0 $ma 4 $*4 3C $/4 96 $s5 44 $-5 r4 #SET_REG(67,3C) // ZM_SMTH_SPEED = 60 #COM_EVENT(61,$w5); // Send value to camera seq_get_prop_6 = #TO_DRAFT #READ_REG(69) // Get zoom level x = -150y/60 + 170 $*4 96 $/4 3C $s0 AA $-0 r4 $s1 00 $s2 00 $s3 00; //*************************************************** // Night mode, property 7 ***** //*************************************************** seq_set_prop_7_0 = ; // Normal mode seq_set_prop_7_1 = ; // HS mode ON //*************************************************** // Effects, property 8 ***** //*************************************************** // // 0 => normal, 1 => negative, 2 => solarize // 3 => sepia, 4 => black&white, //inverted sepia and negative B&W //--------------------------------------------------- seq_set_prop_8 = #COM_EVENT(53,00); //*************************************************** // Focus mode, property 9 ***** //*************************************************** seq_set_prop_9_0 = #TO_DRAFT #SET_REG(6A,00); // Normal range seq_set_prop_9_1 = #TO_DRAFT #SET_REG(6A,01); // Full range //*************************************************** // Focus operation, property 10, ***** //*************************************************** // 0 => stop AF 1 => start AF 2 => Go to infinity //-------------------------------------------------- seq_set_prop_a_0 = // Stop AF $cf.02 0 // If not in draft mode #CHANGE_MODE(33,00) // MODE_MAIN $sf.02 1 // Set draft flag to 1 #COM_EVENT(43,00) // MANUAL_FOCUS = 00, Infinity #COM_EVENT(56,04) #COM_EVENT(5A,01) // FLASH_INFO = 01 $cx ; seq_set_prop_a_1 = #CHANGE_MODE(31,06) $sf.02 0; seq_set_prop_a_2 = #CHANGE_MODE(31,02) $sf.02 0; seq_get_prop_a = 05 01 00 03 03 $f $r4 1 123 $d0005 $c3 e9 $b2 00 4 1 $c2 00 $"CAMDRIVER0: Focus_operation_succeded" $s0 04 $pa 00 $ca 09 $cf.06 1 #SEND_COMMAND(72,00) #READ_REG(71) $"CAMDRIVER0: Lens_position_=_%4" $cs4 1C #SET_REG(95,04) #WB_ISO200 #FLASH_LIMIT_ISO200 $cl #SET_REG(95,01) #WB_ISO100 #FLASH_LIMIT_ISO100 $cx $cl $cx $cl $cx $cl $"CAMDRIVER0: Focus_operation_failed" $s0 05 $pa 00 $ca 09 #SET_REG(95,06) #WB_ISO400 #FLASH_LIMIT_ISO400 $cl $cx $cx $"CAMDRIVER0: Received_and_cleared_Int_Source_%0_Event_Info_%2_Event_ID_%3" #SET_REG(06,03) $cl $"CAMDRIVER0: Focus_operation_not_finnished" $s0 03 $cx $s1 00 $s2 00 $s3 00; //***************************************************** // Get EXIF information 1, property 11 ** //***************************************************** seq_get_prop_b = #COM_EVENT(72,00) // INFO_GET_DATA 05 01 00 B0 04 $f // Read 4 bytes from adress B0 $r5 0 0 1 2 3 $d0002 // ISO r0 r1, Shutter r2 r3 ; //***************************************************** // Get EXIF information 2, property 12 *** //***************************************************** seq_get_prop_c = #COM_EVENT(72,00) // INFO_GET_DATA 05 01 00 B4 02 $f // Read 2 bytes from adress B4 $r3 0 0 1 $d0002 // CC r0, Distance r1 $cf.06 1 $ce 00 // If not BestPic $s2 01 // Flash $cl $s2 00 // BestPic, no flash used even if $cx // It was dark $cl $s2 00 // No flash $cx #READ_REG(4A) $m3 4 // Q-value ; //******************************************************************** // Internal/External xenon flash support, property 14 *** //******************************************************************** // 0 => OFF 1 => not impl. 2 => Auto // 3 => Auto RER 4 => Forced ON //-------------------------------------------------------------------- seq_set_prop_e_0 = // Off $sd 00 #SET_REG(91,00) // FLASH_XENON_MODE = 0 #SET_REG(65,FE) #SET_REG(66,08) #COM_EVENT(13,01) #COLOURGAIN; seq_set_prop_e_1 = $sd 01; seq_set_prop_e_2 = $sd 02 // Auto internal flash #FLASH_SETTINGS; seq_set_prop_e_3 = $sd 03 // Auto red-eye #FLASH_SETTINGS; seq_set_prop_e_4 = // Forced on $sd 04 #SET_REG(91,03); //******************************************************************** // Scenes, property 16, 0x10 //******************************************************************** // 0 => normal 1 => Portrait 2 => Landscape // 3 => Nightscene 4 => Nightportrait 5 => Beach/snow // 6 => sports 7 => Document //-------------------------------------------------------------------- // Normal Scene seq_set_prop_10_0= $sa 09 #TO_DRAFT #SET_REG(22,05) // DRAFT_MIN_FRMRATE #SET_REG(64,20) // SCENE_SLOW_SHUTTER #COM_EVENT(58,0B) // Saturation #COM_EVENT(55,00) // Contrast #COM_EVENT(57,24) // Hue #COM_EVENT(56,04) // Sharpness #COM_EVENT(51,08) // Auto scene #SET_REG(95,03) // ISO for flash #FLASH_LIMIT_ISO200 #WB_ISO200 #COM_EVENT(02,00) #UPDATE_WB #UPDATE_PHOTO #UPDATE_ISO #CHANGE_MODE(34,00) #COM_EVENT(5A,01) // FLASH_INFO = 1 $cf.00 1 // If imst mode #CHANGE_MODE(35,00) // IS_DRAFT mode $cl // Not in IS $cx ; // Portrait seq_set_prop_10_1 = $sa 09 #TO_DRAFT #SET_REG(22,0A) // DRAFT_MIN_FRMRATE #SET_REG(79,3E) // MAX ISO #SET_REG(7A,20) // MIN ISO #SET_REG(64,1D) // SCENE_SLOW_SHUTTER #COM_EVENT(54,00) // Brightness #COM_EVENT(55,01) // Contrast #COM_EVENT(56,05) // Sharpness #COM_EVENT(58,08) // Saturation #COM_EVENT(57,30) // Hue #SET_REG(95,04) #COM_EVENT(51,01) // Auto scene #SET_REG(61,06) // ISO #COM_EVENT(02,00) // AE Auto #FLASH_LIMIT_ISO200 #WB_PORTRAIT #UPDATE_WB #UPDATE_ISO #CHANGE_MODE(34,00) #COM_EVENT(5A,01) // FLASH_INFO = 1 $cf.00 1 // If imst mode #CHANGE_MODE(35,00) // IS_DRAFT mode $cl // Not in IS $cx; // Landscape seq_set_prop_10_2 = $sa 09 #TO_DRAFT #COM_EVENT(43,00) // Focus #SET_REG(22,04) // DRAFT_MIN_FRMRATE #SET_REG(79,3D) // MAX ISO #SET_REG(7A,20) // MIN ISO #COM_EVENT(03,0A) #COM_EVENT(06,00) #SET_REG(64,1D) // SCENE_SLOW_SHUTTER #COM_EVENT(53,60) // Brightness #COM_EVENT(55,00) // Contrast #COM_EVENT(56,08) // Sharpness #COM_EVENT(57,00) // Hue #COM_EVENT(58,09) // Saturation #COM_EVENT(51,03) // Auto scene #SET_REG(61,00) // ISO #COM_EVENT(02,00) // AE Auto #UPDATE_WB #UPDATE_ISO #CHANGE_MODE(34,00) #COM_EVENT(5A,01) // FLASH_INFO = 1 $cf.00 1 // If imst mode #CHANGE_MODE(35,00) $cl // Not in IS $cx ; // Night seq_set_prop_10_3 = $sa 09 #TO_DRAFT #SET_REG(22,01) // FPS #COM_EVENT(43,00) // Focus #SET_REG(64,2C) // SCENE_SLOW_SHUTTER #SET_REG(77,2C) // SCENE_SHUT_MAX #SET_REG(78,23) // SCENE_SHUT_MID #SET_REG(79,12) // MAX ISO #SET_REG(7A,0F) // MIN ISO #SET_REG(7B,0F) // SCENE_STILL_SHUT_MID #SET_REG(7C,12) // SCENE_STILL_GAIN_MAX #COM_EVENT(06,00) #COM_EVENT(03,02) #COM_EVENT(54,00) // Brightness #COM_EVENT(55,00) // Contrast #COM_EVENT(56,01) // Sharpness #COM_EVENT(58,02) // Saturation #COM_EVENT(57,25) // Hue #COM_EVENT(51,08) // Auto scene #SET_REG(61,00) // ISO #COM_EVENT(02,00) // AE Auto #UPDATE_WB #UPDATE_ISO #CHANGE_MODE(34,00) #COM_EVENT(5A,01) // FLASH_INFO = 1 $cf.00 1 // If imst mode #CHANGE_MODE(35,00) $cl // Not in IS $cx ; // Night portrait seq_set_prop_10_4 = $sa 09 // EV #TO_DRAFT #SET_REG(64,1D) #SET_REG(22,01) // FPS #SET_REG(77,20) // SCENE_SHUT_MAX #SET_REG(78,1A) // SCENE_SHUT_MID #SET_REG(79,46) // MAX ISO #SET_REG(7A,3C) // MIN ISO #SET_REG(7B,1A) // SCENE_STILL_SHUT_MID #SET_REG(7C,3C) // SCENE_STILL_GAIN_MAX #COM_EVENT(55,00) // Contrast #COM_EVENT(56,06) // Sharpness #COM_EVENT(57,25) // Hue #COM_EVENT(58,0A) // Saturation #COM_EVENT(51,08) // Auto scene #COM_EVENT(03,0A) #SET_REG(61,00) #UPDATE_WB #UPDATE_ISO #CHANGE_MODE(34,00) #COM_EVENT(5A,01) // FLASH_INFO = 1 $cf.00 1 // If imst mode #CHANGE_MODE(35,00) // IS_DRAFT mode $cl // Not in IS $cx ; // Beach & snow seq_set_prop_10_5 = #TO_DRAFT #SET_REG(22,01) // DRAFT_MIN_FRMRATE #SET_REG(64,2F) // SCENE_SLOW_SHUTTER #COM_EVENT(58,0A) // Saturation #COM_EVENT(56,06) // Sharpness #COM_EVENT(57,20) // Hue #COM_EVENT(51,08) // Auto scene #WB_ISO200 #UPDATE_WB #UPDATE_PHOTO #UPDATE_ISO #CHANGE_MODE(34,00) #COM_EVENT(5A,01) // FLASH_INFO = 1 $cf.00 1 // If imst mode #CHANGE_MODE(35,00) // IS_DRAFT mode $cl // Not in IS $cx ; // Sports seq_set_prop_10_6 = $sa 09 #TO_DRAFT #SET_REG(22,0F) #SET_REG(64,0F) // SCENE_SLOW_SHUTTER #COM_EVENT(03,0A) #SET_REG(77,2C) #COM_EVENT(58,0A) // Saturation #COM_EVENT(57,34) // Hue #COM_EVENT(51,00) // Auto scene #SET_REG(77,0F) // SCENE_SHUT_MAX #SET_REG(78,23) // SCENE_SHUT_MID #SET_REG(79,3D) // MAX ISO #SET_REG(7A,20) // MIN ISO #SET_REG(7B,0F) // SCENE_STILL_SHUT_MID #SET_REG(7C,14) // SCENE_STILL_GAIN_MAX #UPDATE_WB #UPDATE_ISO #CHANGE_MODE(34,00) #COM_EVENT(5A,01) // FLASH_INFO = 1 $cf.00 1 // If imst mode #CHANGE_MODE(35,00) $cl // Not in IS $cx ; // Document seq_set_prop_10_7 = $sa 08 #TO_DRAFT #COM_EVENT(43,00) #SET_REG(22,0A) #COM_EVENT(06,00) #SET_REG(64,1E) // SCENE_SLOW_SHUTTER #COM_EVENT(54,00) // Brightness #COM_EVENT(55,02) // Contrast #COM_EVENT(03,0A) #COM_EVENT(56,08) // Sharpness #COM_EVENT(57,00) // Hue #SET_REG(79,3D) // MAX ISO #SET_REG(7A,20) // MIN ISO #COM_EVENT(51,07) // Auto scene #COM_EVENT(58,06) // Saturation #UPDATE_WB #UPDATE_ISO #SET_REG(61,00) //ISO #COM_EVENT(02,00) #SET_REG(95,01) #WB_ISO100 #FLASH_LIMIT_ISO100 #CHANGE_MODE(34,00) #COM_EVENT(5A,01) // FLASH_INFO = 1 $cf.00 1 // If imst mode #CHANGE_MODE(35,00) $cl // Not in IS $cx ; //************************************************** // ISO, property 17, 0x11 **** //************************************************** // 0 => Auto 1 => 100 2 => 200 3 => 400 //-------------------------------------------------- seq_set_prop_11_0 = // Auto #TO_DRAFT $sc 00 #COM_EVENT(02,00) #WB_ISO200 #FLASH_LIMIT_ISO100 #COM_EVENT(5A,01) // FLASH_INFO = 1 ; seq_set_prop_11_1 = // ISO 100 ; seq_set_prop_11_2 = // ISO 200 ; seq_set_prop_11_3 = // ISO 400 ; //************************************************************************** //Framerate reduction/restoration for GUI speed, property 18 *** //************************************************************************** seq_set_prop_12_0 = // Restore framerate $"CAMDRIVER0: Restore framerate" $sf.07 0 // Set flag to "not in menu" $z5 // Put res id in reg 5 $c5 20 // If res id 0x20 $p6 10 // Put scene value in reg 6 $c6 03 // Scene is night? #SET_REG(22,02) // DRAFT_MIN_FRMRATE 1 fps $cl #SET_REG(22,0A) // DRAFT_MIN_FRMRATE 5 fps #SET_REG(25,0A) // HS_DRAFT_MIN_FRMRATE 5 fps $cx #SET_REG(21,3C) // DRAFT_MAX_FRMRATE 30 fps #SET_REG(24,3C) // HS_DRAFT_MAX_FRMRATE 30 fps $cx $c5 2f // If res id 0x2f $p6 10 // Put scene value in reg 6 $c6 03 // Scene is night? #SET_REG(22,02) // DRAFT_MIN_FRMRATE 1 fps $cl #SET_REG(22,0A) // DRAFT_MIN_FRMRATE 5 fps #SET_REG(25,0A) // HS_DRAFT_MIN_FRMRATE 5 fps $cx #SET_REG(21,3C) // DRAFT_MAX_FRMRATE 30 fps #SET_REG(24,3C) // HS_DRAFT_MAX_FRMRATE 30 fps $cx $c5 21 // If res id 0x21 #SET_REG(22,0A) // DRAFT_MIN_FRMRATE 5 fps #SET_REG(25,0A) // HS_DRAFT_MIN_FRMRATE 5 fps #SET_REG(21,3C) // DRAFT_MAX_FRMRATE 30 fps #SET_REG(24,3C) // HS_DRAFT_MAX_FRMRATE 30 fps $cx $c5 25 // If res id 0x25 #SET_REG(22,18) // DRAFT_MIN_FRMRATE 12 fps #SET_REG(25,18) // HS_DRAFT_MIN_FRMRATE 12 fps #SET_REG(21,18) // DRAFT_MAX_FRMRATE 12 fps #SET_REG(24,18) // HS_DRAFT_MAX_FRMRATE 12 fps $cx $c5 26 // If res id 0x26 #SET_REG(22,18) // DRAFT_MIN_FRMRATE 12 fps #SET_REG(25,18) // HS_DRAFT_MIN_FRMRATE 12 fps #SET_REG(21,18) // DRAFT_MAX_FRMRATE 12 fps #SET_REG(24,18) // HS_DRAFT_MAX_FRMRATE 12 fps $cx $c5 29 // If res id 0x29 #SET_REG(22,14) // DRAFT_MIN_FRMRATE 10 fps #SET_REG(25,14) // HS_DRAFT_MIN_FRMRATE 10 fps #SET_REG(21,14) // DRAFT_MAX_FRMRATE 10 fps #SET_REG(24,14) // HS_DRAFT_MAX_FRMRATE 10 fps $cx $c5 2a // If res id 0x2a #SET_REG(22,3B) // DRAFT_MIN_FRMRATE 29.5 fps #SET_REG(25,3B) // HS_DRAFT_MIN_FRMRATE 29.5 fps #SET_REG(21,3C) // DRAFT_MAX_FRMRATE 30 fps #SET_REG(24,3C) // HS_DRAFT_MAX_FRMRATE 30 fps $cx $c5 2b // If res id 0x2b #SET_REG(22,1E) // DRAFT_MIN_FRMRATE 15 fps #SET_REG(25,1E) // HS_DRAFT_MIN_FRMRATE 15 fps #SET_REG(21,1E) // DRAFT_MAX_FRMRATE 15 fps #SET_REG(24,1E) // HS_DRAFT_MAX_FRMRATE 15 fps $cx $c5 2c // If res id 0x2c #SET_REG(22,0F) // DRAFT_MIN_FRMRATE 7,5 fps #SET_REG(25,0F) // HS_DRAFT_MIN_FRMRATE 7,5 fps #SET_REG(21,0F) // DRAFT_MAX_FRMRATE 7,5 fps #SET_REG(24,0F) // HS_DRAFT_MAX_FRMRATE 7,5 fps $cl $cx #CHANGE_MODE(34,00) #COM_EVENT(5A,01) // FLASH_INFO = 1 $cf.00 1 // If imst mode #CHANGE_MODE(35,00) // IS_DRAFT mode $cf.01 1 // If (IS) HS mode #CHANGE_MODE(38,00) // Mode IS HS draft $cl $cx $cl // Not in IS $cf.01 1 // If HS mode #CHANGE_MODE(37,00) // Mode HS draft $cl $cx $cx ; seq_set_prop_12_1 = // Decrease framerate $"CAMDRIVER0: Decrease framerate" $sf.07 1 // Set flag to "menu" mode #SET_REG(22,0F) // DRAFT_MIN_FRMRATE 7,5 fps #SET_REG(25,0F) // HS_DRAFT_MIN_FRMRATE 7,5 fps #SET_REG(21,0F) // DRAFT_MAX_FRMRATE 7,5 fps #SET_REG(24,0F) // HS_DRAFT_MAX_FRMRATE 7,5 fps #CHANGE_MODE(34,00) ; //************************************************** // Post-processing, Property 20 //************************************************** seq_set_prop_14= $s5 %0 $-5 08 #COM_EVENT(55,$w5); seq_set_prop_15= $s5 %0 $-5 08 #COM_EVENT(56,$w5); //************************************************** // Photo metering, property 22 //************************************************** seq_set_prop_16_0 = #TO_DRAFT #COM_EVENT(08,00); // Multimode seq_set_prop_16_1 = #TO_DRAFT #COM_EVENT(08,01); // Spot //************************************************** // Xenon flash required , property 23 **** //************************************************** seq_get_prop_17 = // 0 = no flash, 1 = flash #READ_REG(93) // FLASH_INFO_STATUS $-4 02 $m0 4 $sf.06 0 // Set flash flag to FALSE $cd 02 $c0 01 // If use flash? #AUTOFLASH $sf.06 1 // Set flash flag to TRUE $p5 10 // Put value of Scene in reg 5 $c5 04 // If scene = night portrait #SET_REG(9E,1D) // FLASH_MSHUT_LONG = 1/8 sec #SET_REG(91,23) // FLASH_XENON_MODE = 0b00100011, slow sync $cl #SET_REG(9E,0E) #SET_REG(91,03) // FLASH_XENON_MODE = 0b00000011, autoflash ON $cx $cl $p5 10 $c5 04 $sf.06 0 #UPDATECOLOUR #SET_REG(91,00) // FLASH_XENON_MODE = 0, autoflash OFF $cl #UPDATECOLOUR #SET_REG(91,00) $cx $cx $cl $cx $cd 03 // Auto RER setting? $c0 01 #SET_REG(95,04) #RERFLASH $sf.06 1 $p5 10 $c5 04 #SET_REG(91,13) $cl #SET_REG(91,13) // FLASH_XENON_MODE = 0b00010011, autoflash ON, RER $cx $cl $p5 10 $c5 04 $sf.06 0 #UPDATECOLOUR #SET_REG(91,00) $cl #SET_REG(95,04) #RERFLASH $sf.06 1 #SET_REG(91,13) // FLASH_XENON_MODE = 0b00010011, autoflash ON, RER $cx $cx $cl $cx $s1 00 $s2 00 $s3 00; //************************************************** // Image stabilization, property 24 *** //************************************************** seq_set_prop_18_0 = // IS Off #TO_DRAFT #CHANGE_MODE(34,00) // DRAFT_MODE $sf.00 0 $cc 00 // AE_MODE = auto? #COM_EVENT(02,00) // Auto $cl #COM_EVENT(02,04) // ISO priority #SET_REG(61,$wc) // Change back to last ISO $cx #COM_EVENT(5A,01) // FLASH_INFO = 1 $c8 01 // If (IS) HS video mode #CHANGE_MODE(37,00) // Mode HS draft $cl $cx ; seq_set_prop_18_1 = // IS On #TO_DRAFT $sf.00 1 #COM_EVENT(02,00) // AE_MODE = Auto #CHANGE_MODE(35,00) // IS_DRAFT mode $c8 01 // If (IS) HS video mode #CHANGE_MODE(38,00) // Mode IS HS draft $cl $cx ; //*************************************************** // Continuous zoom, property 25 ***** //*************************************************** // 0 => Stop 1 => zoom in 2 => zoom out //--------------------------------------------------- seq_set_prop_19_0 = // Stop #TO_DRAFT #COM_EVENT(61,84); seq_set_prop_19_1 = // Zoom in #TO_DRAFT #SET_REG(67,01) // ZM_SMTH_SPEED = 1 #COM_EVENT(61,04); seq_set_prop_19_2 = // Zoom out #TO_DRAFT #SET_REG(67,01) // ZM_SMTH_SPEED = 1 #COM_EVENT(61,40); //*************************************************** // Get zoom value, property 26 ***** //*************************************************** seq_get_prop_1a = #TO_DRAFT #READ_REG(69) // Get zoom level in percent 1-100 $s0 63 $*0 40 $/0 r4 $-0 54 $/0 0F $s3 00 $s2 00 $s1 00; //************************************************** // Snapshot operation, property 27 **** //************************************************** seq_set_prop_1b = $se %0; // 0 => Normal, Read out pict 1-9 in BestPic //************************************************** // Best Pic Image Size, property 28,*** //************************************************** seq_set_prop_1c_0 = // 5M #SET_REG(2D,01) // BURST_JPEG_IMAGE_SIZE = 5M #SET_REG(42,56) // JPEG_INIT_QUALITY = 70d, 0x46 $cf.05 1 // If normal #SET_REG(45,5C) // JPEG_BURST_TARGET_RATE = 90d 850KB $cl // Else low compr #SET_REG(45,6B) // JPEG_BURST_TARGET_RATE = 95d = 897KB $cx; seq_set_prop_1c_1 = // 3M #SET_REG(2D,03) // BURST_JPEG_IMAGE_SIZE = 3M #SET_REG(42,50) // JPEG_INIT_QUALITY = 64d, 0x40 $cf.05 1 // If normal #SET_REG(45,48) // JPEG_BURST_TARGET_RATE = 64d 605 KB $cl // Else low compr #SET_REG(45,4A) // JPEG_BURST_TARGET_RATE = 70d 662 KB $cx; seq_set_prop_1c_2 = // 1M #SET_REG(2D,06) // BURST_JPEG_IMAGE_SIZE = SXGA #SET_REG(42,42) // JPEG_INIT_QUALITY = 50d, 0x32 $cf.05 1 // If normal #SET_REG(45,20) // JPEG_BURST_TARGET_RATE = 20d 189KB $cl // Else low compr #SET_REG(45,22) // JPEG_BURST_TARGET_RATE = 30d 283KB $cx; seq_set_prop_1c_3 = // VGA #SET_REG(2D,07) // BURST_JPEG_IMAGE_SIZE = VGA #SET_REG(42,30) // JPEG_INIT_QUALITY = 32d, 0x20 $cf.05 1 // If normal #SET_REG(45,08) // JPEG_BURST_TARGET_RATE = 5d 43KB $cl // Else low compr #SET_REG(45,0B) // JPEG_BURST_TARGET_RATE = 10d 95KB $cx; //************************************************** // Best Pic Operation, property 29 **** //************************************************** seq_set_prop_1d_0 = // Normal burst operation $sb 00; seq_set_prop_1d_1 = // Half speed burst operation $sb 01; seq_set_prop_1d_2 = // Abort Burst operation $sb 02; seq_set_prop_1d_3 = // Start Burst (only for ITP) #CHANGE_MODE(31,02) // Half-release with focus set to inf #CHANGE_MODE(39,04) ; seq_set_prop_1d_4 = // Stop Burst (only for ITP) #COM_EVENT(3A,00) // Take picture ; //************************************************** // Test pattern, property 30 **** //************************************************** // 0 => Reset 1 => test pattern //-------------------------------------------------- seq_set_prop_1e_0 = $go 31 0 // Reset low $d0020 $go 31 1 // Reset high #CAPTURE_EVENT // EV_CAM_READY #CAPTURE_EVENT // EV_MUTE_OFF #SET_REG(29,01) // STILL_OUT_REPEAT = 1 #SET_REG(2B,01) // VSGATE ON ; seq_set_prop_1e_1 = // Testpattern #SET_REG(81,01) 03 55 AA $f $r2 01 $d0003 08 04 70 30 00 05 01 00 $f $r3 001 $d0003 ; //================================================ // Viewfinder and Snapshot Sequences //================================================ seq_ss_config_1 = $sf.03 1 #SET_REG(26,08) $cf.05 1 $"CAMDRIVER0: VGA NORMAL COMPRESSION" 0D 02 00 3C 96 00 0A 00 37 00 46 3C 32 $f $ra 1111111111 $d0002 $cl $"CAMDRIVER0: VGA LOW COMPRESSION" 0D 02 00 3C 96 00 32 00 50 00 50 46 3C $f $ra 1111111111 $d0002 $cx; seq_ss_config_2 = $sf.03 1 #SET_REG(26,06) $cf.05 1 $"CAMDRIVER0: 1M NORMAL COMPRESSION" 0D 02 00 3C 90 01 3C 00 C8 00 46 3C 32 $f $ra 1111111111 $d0002 $cl $"CAMDRIVER0: 1M LOW COMPRESSION" 0D 02 00 3C 90 01 64 00 2C 01 50 46 3C $f $ra 1111111111 $d0002 $cx; seq_ss_config_4 = $sf.03 1 #SET_REG(26,05) $cf.05 1 $"CAMDRIVER0: 2M NORMAL COMPRESSION" 0D 02 00 3C 58 02 96 00 90 01 46 3C 32 $f $ra 1111111111 $d0002 $cl $"CAMDRIVER0: 2M LOW COMPRESSION" 0D 02 00 3C 58 02 90 01 F4 01 50 46 3C $f $ra 1111111111 $d0002 $cx; seq_ss_config_5 = $sf.03 1 #SET_REG(26,03) $cf.05 1 $"CAMDRIVER0: 3M NORMAL COMPRESSION" 0D 02 00 3C 20 03 90 01 58 02 46 3C 32 $f $ra 1111111111 $d0002 $cl $"CAMDRIVER0: 3M LOW COMPRESSION" 0D 02 00 3C 84 03 58 02 52 03 50 46 3C $f $ra 1111111111 $d0002 $cx; seq_ss_config_6 = $sf.03 1 #SET_REG(26,01) $cf.05 1 $"CAMDRIVER0: 5M NORMAL COMPRESSION" 0D 02 00 3C A4 06 B0 04 0E 06 64 5A 5A $f $ra 1111111111 $d0002 $cl $"CAMDRIVER0: 5M LOW COMPRESSION" 0D 02 00 3C // Start sending 13 bytes at adress 3C 9E 07 // JPEG_MAX_CODE_SIZE = 1950d DC 05 // JPEG_MIN_CODE_SIZE = 1500d 08 07 // JPEG_TARGET_CODE_SIZE = 1800d 64 // JPEG_INIT_QUALITY = 100d 5F // JPEG_FIRST_QUALITY = 95d 5A // JPEG_LAST_QUALITY = 95d $f $ra 1111111111 $d0002 $cx; seq_ss_config_10 = $sf.03 0 // YCbCr output #SET_REG(26,0C) // 320 x 240 YCbCr and YCbCr IMST ; seq_ss_config_11 = $sf.03 0 // YCbCr output #SET_REG(26,08) // 640 x 480 YCbCr and YCbCr IMST ; seq_vf_config_20 = // Viewfinder #SET_REG(20,0C) // DRAFT_IMAGE_SIZE 320x240 $cf.07 1 // If in menu mode // do not change max framerate $cl #SET_REG(21,3C) // DRAFT_MAX_FRMRATE = 30 (60/2) $cx #UPDATE_MIN_FRMRATE $s8 00 // No video HS ; seq_vf_config_21 = // Viewfinder for BestPic #SET_REG(20,0C) // DRAFT_IMAGE_SIZE 320x240 $cf.07 1 // If in menu mode // do not change max framerate $cl #SET_REG(21,1E) // DRAFT_MAX_FRMRATE = 15 (30/2) $cx #UPDATE_MIN_FRMRATE $s8 00 // No video HS ; seq_vf_config_25 = // VT #SET_REG(20,14) // DRAFT_IMAGE_SIZE 96x128 #SET_REG(23,14) // HS_DRAFT_IMAGE_SIZE 96x128 $cf.07 1 // If in menu mode // do not change max framerate $cl #SET_REG(22,14) // DRAFT_MIN_FRMRATE 10 fps #SET_REG(25,14) // HS_DRAFT_MIN_FRMRATE 10 fps #SET_REG(21,14) // DRAFT_MAX_FRMRATE 10 fps #SET_REG(24,14) // HS_DRAFT_MAX_FRMRATE 10 fps $cx $s8 00 // No video HS ; seq_vf_config_26 = // VT #SET_REG(20,12) // DRAFT_IMAGE_SIZE 144x176 #SET_REG(23,12) // HS_DRAFT_IMAGE_SIZE 144x176 $cf.07 1 // If in menu mode // do not change max framerate $cl #SET_REG(22,18) // DRAFT_MIN_FRMRATE 12 fps #SET_REG(25,18) // HS_DRAFT_MIN_FRMRATE 12 fps #SET_REG(21,18) // DRAFT_MAX_FRMRATE 12 fps #SET_REG(24,18) // HS_DRAFT_MAX_FRMRATE 12 fps $cx $s8 00 // No video HS ; seq_vf_config_29 = // VR #SET_REG(20,12) // DRAFT_IMAGE_SIZE 144x176 #SET_REG(23,12) // HS_DRAFT_IMAGE_SIZE 144x176 $cf.07 1 // If in menu mode // do not change max framerate $cl #SET_REG(22,14) // DRAFT_MIN_FRMRATE 10 fps #SET_REG(25,14) // HS_DRAFT_MIN_FRMRATE 10 fps #SET_REG(21,14) // DRAFT_MAX_FRMRATE 10 fps #SET_REG(24,14) // HS_DRAFT_MAX_FRMRATE 10 fps $cx $s8 01 // Video HS ; seq_vf_config_2a = // VR #COM_EVENT(58,06) // Reset saturation #SET_REG(20,0C) // DRAFT_IMAGE_SIZE 320x240 #SET_REG(23,0C) // HS_DRAFT_IMAGE_SIZE 320x240 $cf.07 1 // If in menu mode // do not change max framerate $cl $p1 01 $c1 03 #SET_REG(22,14) // DRAFT_MIN_FRMRATE 10 fps #SET_REG(25,14) // HS_DRAFT_MIN_FRMRATE 10 fps #SET_REG(21,14) // DRAFT_MAX_FRMRATE 10 fps #SET_REG(24,14) // HS_DRAFT_MAX_FRMRATE 10 fps $cl #SET_REG(22,3B) // DRAFT_MIN_FRMRATE 29.5 fps #SET_REG(25,3B) // HS_DRAFT_MIN_FRMRATE 29.5 fps #SET_REG(24,3B) // HS_DRAFT_MAX_FRMRATE 30 fps #SET_REG(21,3B) // DRAFT_MAX_FRMRATE 30 fps $cx $cx $s8 01 // Video HS ; seq_vf_config_2b = // VR #COM_EVENT(58,06) // Reset saturation #SET_REG(20,0B) // DRAFT_IMAGE_SIZE 352x288 #SET_REG(23,0B) // HS_DRAFT_IMAGE_SIZE 352x288 $cf.07 1 // If menu mode // do not change max framerate $cl $p1 01 $c1 03 #SET_REG(22,14) // DRAFT_MIN_FRMRATE 10 fps #SET_REG(25,14) // HS_DRAFT_MIN_FRMRATE 10 fps #SET_REG(21,14) // DRAFT_MAX_FRMRATE 10 fps #SET_REG(24,14) // HS_DRAFT_MAX_FRMRATE 10 fps $cl #SET_REG(22,1E) // DRAFT_MIN_FRMRATE 15 fps #SET_REG(25,1E) // HS_DRAFT_MIN_FRMRATE 15 fps #SET_REG(21,28) // DRAFT_MAX_FRMRATE 25 fps #SET_REG(24,28) // HS_DRAFT_MAX_FRMRATE 25 fps $cx $cx $s8 01 // Video HS ; seq_vf_config_2c = // VR #COM_EVENT(58,06) // Reset saturation #SET_REG(20,0B) // DRAFT_IMAGE_SIZE 352x288 #SET_REG(23,0B) // HS_DRAFT_IMAGE_SIZE 352x288 $cf.07 1 // If in menu mode // do not change max framerate $cl $p1 01 $c1 03 #SET_REG(22,14) // DRAFT_MIN_FRMRATE 10 fps #SET_REG(25,14) // HS_DRAFT_MIN_FRMRATE 10 fps #SET_REG(21,14) // DRAFT_MAX_FRMRATE 10 fps #SET_REG(24,14) // HS_DRAFT_MAX_FRMRATE 10 fps $cl #SET_REG(22,24) // DRAFT_MIN_FRMRATE 18 fps #SET_REG(25,24) // HS_DRAFT_MIN_FRMRATE 18 fps #SET_REG(21,28) // DRAFT_MAX_FRMRATE 20 fps #SET_REG(24,28) // HS_DRAFT_MAX_FRMRATE 20 fps $cx $cx $s8 01 // Video HS ; seq_vf_config_2f = // Viewfinder #SET_REG(20,0C) // DRAFT_IMAGE_SIZE 320x240 $cf.07 1 // If in menu mode // do not change max framerate $cl #SET_REG(21,3C) // DRAFT_MAX_FRMRATE = 30 (60/2) $cx #UPDATE_MIN_FRMRATE $s8 00 // No Video HS ; //================================================ //============ STATE TRANSITIONS ================= //================================================ seq_vf_start = $cf.02 0 // If not in any draft mode #CHANGE_MODE(33,00) // MODE_MAIN #COM_EVENT(43,00) // MANUAL_FOCUS = 00, Infinity #COM_EVENT(5A,01) // FLASH_INFO = 1 $sf.02 1 // Set draft flag to 1 $se 00 // Set snapshot operation to normal $cl #CHANGE_MODE(34,00) #COM_EVENT(5A,01) // FLASH_INFO = 1 $cf.00 1 // If imst mode #CHANGE_MODE(35,00) // IS_DRAFT mode $c8 01 // If (IS) HS video mode #CHANGE_MODE(38,00) // Mode IS HS draft $cl $cx $cl // Not in IS $c8 01 // If HS video mode #CHANGE_MODE(37,00) // Mode HS draft $cl $cx $cx $cx ; seq_vf_stop = ; seq_ss_start = $cf.02 1 // If draft mode? #CHANGE_MODE(31,02) // Half-release with focus set to inf $sf.02 0 // Not in draft mode $cl $cx ; seq_ss_take = $ce 00 // If not BestPic $cf.03 1 // IF JPEG #CHANGE_MODE(36,80) // MODE_IMST_STILL_CAPT, JPEG #CAPTURE_EVENT // EV_CAPTURE_STATUS, 02 e4 $cl // Else IMST OFF #CHANGE_MODE(36,00) // MODE_STILL_CAPT, YCbCr $cx $cl // Else BestPic mode #CHANGE_MODE(3A,$we) // Read out pict # stored in reg e $cx #CAPTURE_EVENT // Capture EV_CAPTURE_STATUS, 00 E4 ; seq_ss_verify = #CAPTURE_EVENT // Capture EV_CAPTURE_STATUS, 01 E4 $c2 01 $s0 01 $"CAMDRVIER0: Image_verified" $cl $"CAMDRIVER0: Image_not_verified" $cx ; seq_ss_stop = ; // Functions for synchronized viewfinder images in burst mode. seq_pv_start = $cf.02 1 // If draft mode? #CHANGE_MODE(31,02) // Half-release with focus set to inf $sf.02 0 // Not in draft mode $cl $cx $"CAMDRIVER0: seq_pv_start" $s9 00 // BurstStatus -> Init $cb 00 // If normal interval #CHANGE_MODE(39,04) // Mode burst start, BURST_INTERVAL = 0, BURST_REMAIN = 4 $cl // Else half speed, every 2nd frame #CHANGE_MODE(39,14) // Mode burst start, BURST_INTERVAL = 1, BURST_REMAIN = 4 $cx; seq_pv_stop = $c9 01 $"CAMDRIVER0: seq_pv_stop" $s9 03 // BurstStatus -> BurstOutput #COM_EVENT(3A,00) // Take picture $cl $"CAMDRIVER0: seq_pv_stop is waiting for EV_RECORD_STATUS" $s9 02 // BurstStatus -> WaitForEV_RECORD_STATUS $cx; seq_pv_verify = $h0 02 5 0000 // Wait for TRIG 05 01 00 03 03 $f $r4 0 012 // [source, info, id] 05 02 00 06 03 $f // Release interrupt $cb 02 // If Burst operation = abort? $s0 ff // Abort! $cl $s0 00 $c2 e3 $b1 00 4 4 $c1 00 $s0 01 // Rotate, i.e synch vf-image $"CAMDRIVER0: Rotate, synch vf" $cl $"CAMDRIVER0: Compr_failed_%0_%1_%2" $cx $cl $cx $c2 ea // If EVENT_MODE_CHANGED $c1 50 $s0 ff // Done (Burst output) $cl $cx $cl $cx $c2 ee // EV_RECORD_STATUS $c9 02 $"CAMDRIVER0: EV_RECORD_STATUS(completed)" $"CAMDRIVER0: Change the mode to BurstOutput" $s9 03 // BurstStatus -> BurstOutput #COM_EVENT(3A,00) // Take picture $s0 00 // Reset register 0 to 0 $cl $"CAMDRIVER0: EV_RECORD_STATUS(completed)" $s9 01 // BurstStatus -> ReadyForBurstOutput $cx $cl $cx $cx; //================================================ //============ JPEG HEADER CREATION ============== //================================================ jpeg_qtable_selector_0 = $s2 00 #READ_REG(4A) // JPEG_HOST_QUALITY $m0 4 $s1 00 $"CAMDRIVER0: qtable0=%0" ; jpeg_qtable_selector_1 = $s2 01 #READ_REG(4A) // JPEG_HOST_QUALITY $m0 4 $s1 00 $"CAMDRIVER0: qtable1=%0" ; jpeg_qtable_0 = 10 0B 0C 0E 0C 0A 10 0E 0D 0E 12 11 10 13 18 28 1A 18 16 16 18 31 23 25 1D 28 3A 33 3D 3C 39 33 38 37 40 48 5C 4E 40 44 57 45 37 38 50 6D 51 57 5F 62 67 68 67 3E 4D 71 79 70 64 78 5C 65 67 63 ; jpeg_qtable_1 = 11 12 12 18 15 18 2F 1A 1A 2F 63 42 38 42 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ; jpeg_qtable_factors = 0,320100,190000,10AB00,C8000,A0000,85500,72500,64000,58E00,50000, 48C00,42B00,3D900,39200,35500,32000,2F100,2C700,2A200,28000, 26200,24600,22D00,21500,20000,1EC00,1DA00,1C900,1B900,1AB00, 19D00,19000,18400,17800,16E00,16400,15A00,15100,14800,14000, 13800,13100,12A00,12300,11C00,11600,11000,10B00,10500,10000, FB00, F600, F100, EC00, E600, E100, DC00,D700,D200,CD00, C800, C300, BD00, B800, B300, AE00, A900,A400,9F00,9A00, 9400, 8F00, 8A00, 8500, 8000, 7B00, 7600,7100,6C00,6600, 6100, 5C00, 5700, 5200, 4D00, 4800, 4300,3D00,3800,3300, 2E00, 2900, 2400, 1F00, 1A00, 1400, F00, A00, 500, 100 ; jpeg_header= FF D8 FF E0 00 10 4A 46 49 46 00 01 01 00 00 01 00 01 00 00 FF DB 00 84 00 $qt0 01 $qt1 FF C4 01 A2 00 00 01 05 01 01 01 01 01 01 00 00 00 00 00 00 00 00 01 02 03 04 05 06 07 08 09 0A 0B 01 00 03 01 01 01 01 01 01 01 01 01 00 00 00 00 00 00 01 02 03 04 05 06 07 08 09 0A 0B 10 00 02 01 03 03 02 04 03 05 05 04 04 00 00 01 7D 01 02 03 00 04 11 05 12 21 31 41 06 13 51 61 07 22 71 14 32 81 91 a1 08 23 42 b1 c1 15 52 d1 f0 24 33 62 72 82 09 0a 16 17 18 19 1a 25 26 27 28 29 2a 34 35 36 37 38 39 3a 43 44 45 46 47 48 49 4a 53 54 55 56 57 58 59 5a 63 64 65 66 67 68 69 6a 73 74 75 76 77 78 79 7a 83 84 85 86 87 88 89 8a 92 93 94 95 96 97 98 99 9a a2 a3 a4 a5 a6 a7 a8 a9 aa b2 b3 b4 b5 b6 b7 b8 b9 ba c2 c3 c4 c5 c6 c7 c8 c9 ca d2 d3 d4 d5 d6 d7 d8 d9 da e1 e2 e3 e4 e5 e6 e7 e8 e9 ea f1 f2 f3 f4 f5 f6 f7 f8 f9 fa 11 00 02 01 02 04 04 03 04 07 05 04 04 00 01 02 77 00 01 02 03 11 04 05 21 31 06 12 41 51 07 61 71 13 22 32 81 08 14 42 91 a1 b1 c1 09 23 33 52 f0 15 62 72 d1 0a 16 24 34 e1 25 f1 17 18 19 1a 26 27 28 29 2a 35 36 37 38 39 3a 43 44 45 46 47 48 49 4a 53 54 55 56 57 58 59 5a 63 64 65 66 67 68 69 6a 73 74 75 76 77 78 79 7a 82 83 84 85 86 87 88 89 8a 92 93 94 95 96 97 98 99 9a a2 a3 a4 a5 a6 a7 a8 a9 aa b2 b3 b4 b5 b6 b7 b8 b9 ba c2 c3 c4 c5 c6 c7 c8 c9 ca d2 d3 d4 d5 d6 d7 d8 d9 da e2 e3 e4 e5 e6 e7 e8 e9 ea f2 f3 f4 f5 f6 f7 f8 f9 fa FF DD 00 04 00 00 FF C0 00 11 08 $h $w 03 01 21 00 02 11 01 03 11 01 FF DA 00 0C 03 01 00 02 11 03 11 00 3F 00; //******************************************************** // (C) Witchking //********************************************************
No comments:
Post a Comment