Mode dials and Playback pushbuttons - General Discussion and Assistance - CHDK Forum

Mode dials and Playback pushbuttons

  • 201 Replies
  • 90499 Views
Mode dials and Playback pushbuttons
« on: 23 / February / 2009, 05:52:59 »
Advertisements
Some time ago, Zeno followed-up on the work of Jeff666 and posted details of overriding the mode dial.
This works on many cameras, but not all.
For example, on my A620 the dial modes are in the highest nibble of physw[1].
They cannot be forced to other values.
The highest nibble of associated memory location 0xc0220204 is always 'f'.

Does anyone know where the dial-mode values can be overriden ?

A number of cameras have playback pushbuttons and it seems the physw[] values indicate the playback state after the firmware has responded to the button.
Again, you cannot switch to playback by overriding the physw[] values.

Any ideas where the playback buttons can be 'pressed' ?

There are a number of possible functions in the string names (also for dial-mode switching) but I am not sure they are implimented in every camera.
Others, like 'Rec2PB'  may cause the camera to crash.


David

*

Offline ewavr

  • ****
  • 1057
  • A710IS
Re: Mode dials and Playback pushbuttons
« Reply #1 on: 23 / February / 2009, 10:06:18 »
Maybe PostLogicalEventForNotPowerType(int event, int unknown) can be useful here.

In my a710:

PostLogicalEventForNotPowerType(0x1061 /*ModeDialToPlay*/, 0)  switch camera to playback mode
PostLogicalEventForNotPowerType(0x1065 /*ModeDialToRec*/, 0)  switch camera to record mode
PostLogicalEventForNotPowerType(0x1005 /*PressOffButton*/, 0) shutdowns camera
PostLogicalEventForNotPowerType(0x1081 /*ConnectVideoCable*/, 0) emulates inserting of AV cable
PostLogicalEventForNotPowerType(0x1082 /*DisconnectVideoCable*/, 0)  emulates releasing of AV cable
PostLogicalEventForNotPowerType(0x849 /*PressDriveButton*/, 0) changes drive mode (no such button on a710!)

Unfortunately, changing mode dial with this way is impossible - it returns to previous mode  :(.

Mode dial change example ('rotate' dial to movie move):

             int old=*(unsigned int*)0x722C;
             PostLogicalEventForNotPowerType(0x105B/*ModeDialToMovie*/,0);
             msleep(10);
             *(unsigned int*)0x722C=old;

"Magic" variable @0x722C is found using memory browser, but it present, for example,  is sub_FFD9CE8C ("_DecideModeDial").
« Last Edit: 23 / February / 2009, 10:36:49 by ewavr »

*

Offline fudgey

  • *****
  • 1705
  • a570is
Re: Mode dials and Playback pushbuttons
« Reply #2 on: 23 / February / 2009, 14:53:36 »
Wow, now this seems interesting. I wonder is PostLogicalEventToUI will help getting the GUI up to date after overriding some of these things..or is it even necessary (haven't tried anything yet)?

..below is a message list from a570 100e firmware, a lot to try there...

000010c0 00000002 DisconnectDTerminal
000010bf 00000002 ConnectDTerminal
000010be 00000001 UnpressPcPlayButton
000010bd 00000000 PressPcPlayButton
000010bc 00000001 UnpressRemotePcPlayButton
000010bb 00000000 PressRemotePcPlayButton
000010ba 00000002 CloseLensCoverHalf
000010b9 00000002 OpenLensCoverHalf
000010b8 00000002 CloseLensCover
000010b7 00000002 OpenLensCover
000010b6 00000002 DetachCradle
000010b5 00000002 AttachCradle
000010b4 00000002 WriteEnableMedia
000010b3 00000002 WriteProtectMedia
000010b2 00000002 RemoveMedia
000010b1 00000002 InsertMedia
000010b0 00000002 CloseBatMediaCover
000010af 00000002 OpenBatMediaCover
000010ae 00000002 CloseMediaCover
000010ad 00000002 OpenMediaCover
000010ac 00000002 RemoveBattery
000010ab 00000002 InsertBattery
000010aa 00000002 CloseBatteryCover
000010a9 00000002 OpenBatteryCover
000010a8 00000002 UnmountExtFlash
000010a7 00000002 MountExtFlash
000010a6 00000002 DisconnectUSBCable
000010a5 00000002 ConnectUSBCable
000010a4 00000002 DisconnectACCable
000010a3 00000002 ConnectACCable
000010a2 00000002 DisconnectVideoCable
000010a1 00000002 ConnectVideoCable
00001075 00000002 ModeDialToKidsAndPets
00001074 00000002 ModeDialToParty
00001073 00000002 ModeDialToNightSnap
00001072 00000002 RotateIsoDialLeft
00001071 00000002 RotateIsoDialRight
00001070 00000002 IsoDialToMaxSpd
0000106f 00000002 IsoDialTo800
0000106e 00000002 IsoDialTo400
0000106d 00000002 IsoDialTo200
0000106c 00000002 IsoDialTo100
0000106b 00000002 IsoDialToMinSpd
0000106a 00000002 IsoDialToHighAuto
00001069 00000002 IsoDialToAuto
00001068 00000002 ModeDialToSport
00001065 00000002 ModeDialToRec
00001064 00000002 ModeDialToFunColor
00001063 00000002 ModeDialToSCN
00001062 00000002 ModeDialToCamera
00001061 00000002 ModeDialToPlay
00001060 00000002 ModeDialToSlowShutter
0000105f 00000002 ModeDialToFastShutter
0000105e 00000002 ModeDialToC
0000105d 00000002 ModeDialToC2
0000105c 00000002 ModeDialToC1
0000105b 00000002 ModeDialToMovie
0000105a 00000002 ModeDialToStitchAssist
00001059 00000002 ModeDialToNightScene
00001058 00000002 ModeDialToLandscape
00001057 00000002 ModeDialToPortrait
00001056 00000002 ModeDialToAuto
00001055 00000002 ModeDialToP
00001054 00000002 ModeDialToTv
00001053 00000002 ModeDialToAv
00001052 00000002 ModeDialToM
0000100c 00000002 ModeLeverStillRec
0000100b 00000002 ModeLeverMovieRec
0000100a 00000002 ModeLeverPlay
00001009 00000001 UnpressPowerButton
00001008 00000000 PressPowerButton
00001007 00000002 ChangeMainDial
00001006 00000001 UnpressOffButton
00001005 00000000 PressOffButton
00001004 00000001 UnpressPBButton
00001003 00000000 PressPBButton
00001002 00000001 UnpressRecButton
00001001 00000000 PressRecButton
000009a6 00000001 UnpressMovieButton
000009a5 00000000 PressMovieButton
000009a4 00000001 UnpressSwTwo
000009a3 00000000 PressSwTwo
000009a2 00000001 UnpressSwOne
000009a1 00000000 PressSwOne
00000976 00000003 PressMenuAndSetAndEdit
00000975 00000003 PressDispAndLeft
00000974 00000003 PressSw2AndMenu
00000973 00000002 RepeatLeftButton
00000972 00000002 RepeatRightButton
00000971 00000002 RepeatDownButton
00000970 00000002 RepeatUpButton
0000096f 00000003 HoldSetAFFrameButton
0000096e 00000001 UnpressSetAFFrameButton
0000096d 00000000 PressSetAFFrameButton
0000096c 00000001 UnpressWideReductionButton
0000096b 00000000 PressWideReductionButton
0000096a 00000001 UnpressTeleMagButton
00000969 00000000 PressTeleMagButton
00000968 00000001 UnpressMFSoundButton
00000967 00000000 PressMFSoundButton
00000966 00000001 UnpressFlashMultiButton
00000965 00000000 PressFlashMultiButton
00000964 00000001 UnpressMacroJumpButton
00000963 00000000 PressMacroJumpButton
00000962 00000001 UnpressAEFELockEraseButton
00000961 00000000 PressAEFELockEraseButton
00000960 00000001 UnpressDownWBButton
0000095f 00000000 PressDownWBButton
0000095e 00000001 UnpressUpExpButton
0000095d 00000000 PressUpExpButton
0000095c 00000003 PressMenuAndSetAndPs
0000095b 00000003 PressPsAndLeft
0000095a 00000003 PressPsAndRight
00000959 00000003 PressSw1AndAF
00000958 00000003 PressDispAndRightButton
00000957 00000003 PressSw1AndShortcut
00000956 00000003 PressSw2AndWide
00000955 00000003 PressSw2AndTele
00000954 00000003 PressSw2AndSound
00000953 00000003 PressSw2AndFunc
00000952 00000003 PressSw2AndDisp
00000951 00000003 PressSw2AndErase
00000950 00000003 PressSw2AndSet
0000094f 00000003 PressSw1AndMF
0000094e 00000003 PressSw1AndAELock
0000094d 00000003 PressSw1AndAE
0000094c 00000003 PressMFAndDown
0000094b 00000003 PressMFAndUp
0000094a 00000003 PressSetAndPs
00000949 00000003 PressSetAndWide
00000948 00000003 PressSetAndTele
00000947 00000003 PressSetAndDisp
00000946 00000003 PressSetAndJump
00000945 00000003 PressSetAndRight
00000944 00000003 PressSetAndLeft
00000943 00000003 PressSetAndDown
00000942 00000003 PressSetAndUp
00000941 00000003 PressSetAndMenu
00000916 00000001 UnpressRemoteDpButton
00000915 00000000 PressRemoteDpButton
00000914 00000001 UnpressRemoteMenuButton
00000913 00000000 PressRemoteMenuButton
00000912 00000001 UnpressRemoteLeftButton
00000911 00000000 PressRemoteLeftButton
00000910 00000001 UnpressRemoteRightButton
0000090f 00000000 PressRemoteRightButton
0000090e 00000001 UnpressRemoteDownButton
0000090d 00000000 PressRemoteDownButton
0000090c 00000001 UnpressRemoteUpButton
0000090b 00000000 PressRemoteUpButton
0000090a 00000001 UnpressRemoteSetButton
00000909 00000000 PressRemoteSetButton
00000908 00000001 UnpressRemoteReleaseButton
00000907 00000000 PressRemoteReleaseButton
00000906 00000001 UnpressRemoteDispButton
00000905 00000000 PressRemoteDispButton
00000904 00000001 UnpressRemoteMagnifyButton
00000903 00000000 PressRemoteMagnifyButton
00000902 00000001 UnpressRemoteMultiButton
00000901 00000000 PressRemoteMultiButton
0000087a 00000001 UnpressEditButton
00000879 00000000 PressEditButton
00000878 00000001 UnpressEnjoyButton
00000877 00000000 PressEnjoyButton
00000876 00000002 TransitFeatherDown
00000875 00000002 TransitFeatherUp
00000874 00000002 TransitFeatherLeft
00000873 00000002 TransitFeatherRight
00000872 00000002 UnpressFeatherDownButton
00000871 00000002 PressFeatherDownButton
00000870 00000002 UnpressFeatherUpButton
0000086f 00000002 PressFeatherUpButton
0000086e 00000002 UnpressFeatherLeftButton
0000086d 00000002 PressFeatherLeftButton
0000086c 00000002 UnpressFeatherRightButton
0000086b 00000002 PressFeatherRightButton
0000086a 00000001 UnpressDpButton
00000869 00000000 PressDpButton
00000868 00000001 UnpressISOButton
00000867 00000000 PressISOButton
00000866 00000002 RotateJogDialLeft
00000865 00000002 RotateJogDialRight
00000864 00000003 HoldAvExpButton
00000863 00000001 UnpressAvExpButton
00000862 00000000 PressAvExpButton
00000861 00000003 HoldPrintShareButton
00000860 00000001 UnpressPrintShareButton
0000085f 00000000 PressPrintShareButton
0000085e 00000001 UnpressShortcutButton
0000085d 00000000 PressShortcutButton
0000085c 00000003 HoldISButton
0000085b 00000001 UnpressISButton
0000085a 00000000 PressISButton
00000859 00000003 HoldAFFrameButton
00000858 00000001 UnpressAFFrameButton
00000857 00000000 PressAFFrameButton
00000856 00000003 HoldSetButton
00000855 00000001 UnpressSetButton
00000854 00000000 PressSetButton
00000853 00000001 UnpressReductionButton
00000852 00000000 PressReductionButton
00000851 00000001 UnpressWideButton
00000850 00000000 PressWideButton
0000084f 00000001 UnpressMagButton
0000084e 00000000 PressMagButton
0000084d 00000001 UnpressTeleButton
0000084c 00000000 PressTeleButton
0000084b 00000003 HoldDriveButton
0000084a 00000001 UnpressDriveButton
00000849 00000000 PressDriveButton
00000848 00000001 UnpressMFButton
00000847 00000000 PressMFButton
00000846 00000003 HoldSoundButton
00000845 00000001 UnpressSoundButton
00000844 00000000 PressSoundButton
00000843 00000001 UnpressEraseButton
00000842 00000000 PressEraseButton
00000841 00000001 UnpressSpotButton
00000840 00000000 PressSpotButton
0000083f 00000001 UnpressPonButton
0000083e 00000000 PressPonButton
0000083d 00000002 RotateElectronicMainDialLeft
0000083c 00000002 RotateElectronicMainDialRight
0000083b 00000003 HoldDispButton
0000083a 00000001 UnpressDispButton
00000839 00000000 PressDispButton
00000838 00000001 UnpressFlashButton
00000837 00000000 PressFlashButton
00000836 00000001 UnpressMultiButton
00000835 00000000 PressMultiButton
00000834 00000001 UnpressJumpButton
00000833 00000000 PressJumpButton
00000832 00000003 HoldMacroButton
00000831 00000001 UnpressMacroButton
00000830 00000000 PressMacroButton
0000082f 00000001 UnpressAEFELockButton
0000082e 00000000 PressAEFELockButton
0000082d 00000001 UnpressWBButton
0000082c 00000000 PressWBButton
0000082b 00000001 UnpressExpButton
0000082a 00000000 PressExpButton
00000829 00000001 UnpressFuncButton
00000828 00000000 PressFuncButton
00000827 00000003 HoldMenuButton
00000826 00000001 UnpressMenuButton
00000825 00000000 PressMenuButton
00000824 00000003 HoldDownButton
00000823 00000001 UnpressDownButton
00000822 00000000 PressDownButton
00000821 00000001 UnpressUpButton
00000820 00000000 PressUpButton
0000081f 00000001 UnpressLeftButton
0000081e 00000000 PressLeftButton
0000081d 00000001 UnpressRightButton
0000081c 00000000 PressRightButton

*

Offline ewavr

  • ****
  • 1057
  • A710IS
Re: Mode dials and Playback pushbuttons
« Reply #3 on: 23 / February / 2009, 15:38:55 »
I wonder is PostLogicalEventToUI will help getting the GUI up to date after overriding some of these things..or is it even necessary (haven't tried anything yet)?

If we 'rotate' mode dial, GUI is updated automatically (with all visual effects).

Quote
..below is a message list from a570 100e firmware, a lot to try there...

How you got that list? Using some script? I see some difference between a710 and a570.

Re: Mode dials and Playback pushbuttons
« Reply #4 on: 23 / February / 2009, 15:43:47 »
I see some difference between a710 and a570.

I also see some the same as the A620.

What does the second column represent ?

*

Offline fudgey

  • *****
  • 1705
  • a570is
Re: Mode dials and Playback pushbuttons
« Reply #5 on: 23 / February / 2009, 16:01:28 »
I just cut&pasted the list of codes and the strings pointed by the list to two files messagestrings.asm and codes.asm from GPL disassembly and then did some shell magic:

Code: [Select]
cat messagestrings.asm |
grep -A 1 '\":' |
grep -v "\-\-" |
cut -f 1 |
sed s/\"/\#/ |
tr -d '\n' |
tr '#' '\n' |
tr ':' ' ' |
tr -d \" > messagestrings

------------------------

cat codes.asm |
cut -f 2 |
sed s/^ffe/\#ffe/ |
tr '\n' ' ' |
tr '#' '\n' > messagecodes

------------------------

sort -k 2 messagestrings >strings.sorted
sort messagecodes > codes.sorted

paste codes.sorted strings.sorted > codesstrings

-------------------------

cat codesstrings |
tr '\t' ' ' |
sed s/\ \ \*/\ /g |
cut -d ' ' -f 2-4 > a570_postcodes.txt

I have no idea what the other column is, the list just happens to be a list of three values and that's the last one of each. I haven't looked at the code at all...could be number of arguments?

Re: Mode dials and Playback pushbuttons
« Reply #6 on: 23 / February / 2009, 16:40:51 »
Well, I have made two uBasic commands .. 'movie_mode'  and 'record_mode' and a little script that switches to movie mode for five seconds and then returns to record mode   .... except it does not return.

After exiting the script I am still in movie mode even though the dial is on Manual.

Do I have to manipulate the 'magic numbers' in some way  ?

Edit: Well, in movie mode we are already in record mode, as opposed to playback mode.
So, I tried to make it return to manual mode but it stayed in movie mode.
« Last Edit: 23 / February / 2009, 17:03:36 by Microfunguy »

*

Offline fudgey

  • *****
  • 1705
  • a570is
Re: Mode dials and Playback pushbuttons
« Reply #7 on: 23 / February / 2009, 16:57:34 »
I wonder what happens if you take that other number from the table and stick it as the second argument to PostLogicalEventForNotPowerType()?

*

Offline ewavr

  • ****
  • 1057
  • A710IS
Re: Mode dials and Playback pushbuttons
« Reply #8 on: 23 / February / 2009, 17:13:31 »
Here is list for A710 (using IDA's 'array' command):
Code: [Select]
PressRightButton, 0x81C, 0
UnpressRightButton, 0x81D, 1
PressLeftButton, 0x81E, 0
UnpressLeftButton, 0x81F, 1
PressUpButton, 0x820, 0
UnpressUpButton, 0x821, 1
PressDownButton, 0x822, 0
UnpressDownButton, 0x823, 1
HoldDownButton, 0x824, 3
PressMenuButton, 0x825, 0
UnpressMenuButton, 0x826, 1
HoldMenuButton, 0x827, 3
PressFuncButton, 0x828, 0
UnpressFuncButton, 0x829, 1
PressExpButton, 0x82A, 0
UnpressExpButton, 0x82B, 1
PressWBButton, 0x82C, 0
UnpressWBButton, 0x82D, 1
PressAEFELockButton, 0x82E, 0
UnpressAEFELockButton, 0x82F, 1
PressMacroButton, 0x830, 0
UnpressMacroButton, 0x831, 1
HoldMacroButton, 0x832, 3
PressJumpButton, 0x833, 0
UnpressJumpButton, 0x834, 1
PressMultiButton, 0x835, 0
UnpressMultiButton, 0x836, 1
PressFlashButton, 0x837, 0
UnpressFlashButton, 0x838, 1
PressDispButton, 0x839, 0
UnpressDispButton, 0x83A, 1
HoldDispButton, 0x83B, 3
RotateElectronicMainDialRight, 0x83C, 2
RotateElectronicMainDialLeft, 0x83D, 2
PressPonButton, 0x83E, 0
UnpressPonButton, 0x83F, 1
PressSpotButton, 0x840, 0
UnpressSpotButton, 0x841, 1
PressEraseButton, 0x842, 0
UnpressEraseButton, 0x843, 1
PressSoundButton, 0x844, 0
UnpressSoundButton, 0x845, 1
HoldSoundButton, 0x846, 3
PressMFButton, 0x847, 0
UnpressMFButton, 0x848, 1
PressDriveButton, 0x849, 0
UnpressDriveButton, 0x84A, 1
PressTeleButton, 0x84B, 0
UnpressTeleButton, 0x84C, 1
PressMagButton, 0x84D, 0
UnpressMagButton, 0x84E, 1
PressWideButton, 0x84F, 0
UnpressWideButton, 0x850, 1
PressReductionButton, 0x851, 0
UnpressReductionButton, 0x852, 1
PressSetButton, 0x853, 0
UnpressSetButton, 0x854, 1
HoldSetButton, 0x855, 3
PressAFFrameButton, 0x856, 0
UnpressAFFrameButton, 0x857, 1
HoldAFFrameButton, 0x858, 3
PressISButton, 0x859, 0
UnpressISButton, 0x85A, 1
HoldISButton, 0x85B, 3
PressShortcutButton, 0x85C, 0
UnpressShortcutButton, 0x85D, 1
PressPrintShareButton, 0x85E, 0
UnpressPrintShareButton, 0x85F, 1
HoldPrintShareButton, 0x860, 3
PressAvExpButton, 0x861, 0
UnpressAvExpButton, 0x862, 1
HoldAvExpButton, 0x863, 3
RotateJogDialRight, 0x864, 2
RotateJogDialLeft, 0x865, 2
PressISOButton, 0x866, 0
UnpressISOButton, 0x867, 1
PressDpButton, 0x868, 0
UnpressDpButton, 0x869, 1
PressFeatherRightButton, 0x86A, 2
UnpressFeatherRightButton, 0x86B, 2
PressFeatherLeftButton, 0x86C, 2
UnpressFeatherLeftButton, 0x86D, 2
PressFeatherUpButton, 0x86E, 2
UnpressFeatherUpButton, 0x86F, 2
PressFeatherDownButton, 0x870, 2
UnpressFeatherDownButton, 0x871, 2
TransitFeatherRight, 0x872, 2
TransitFeatherLeft, 0x873, 2
TransitFeatherUp, 0x874, 2
TransitFeatherDown, 0x875, 2
PressRemoteMultiButton, 0x901, 0
UnpressRemoteMultiButton, 0x902, 1
PressRemoteMagnifyButton, 0x903, 0
UnpressRemoteMagnifyButton, 0x904, 1
PressRemoteDispButton, 0x905, 0
UnpressRemoteDispButton, 0x906, 1
PressRemoteReleaseButton, 0x907, 0
UnpressRemoteReleaseButton, 0x908, 1
PressRemoteSetButton, 0x909, 0
UnpressRemoteSetButton, 0x90A, 1
PressRemoteUpButton, 0x90B, 0
UnpressRemoteUpButton, 0x90C, 1
PressRemoteDownButton, 0x90D, 0
UnpressRemoteDownButton, 0x90E, 1
PressRemoteRightButton, 0x90F, 0
UnpressRemoteRightButton, 0x910, 1
PressRemoteLeftButton, 0x911, 0
UnpressRemoteLeftButton, 0x912, 1
PressRemoteMenuButton, 0x913, 0
UnpressRemoteMenuButton, 0x914, 1
PressRemoteDpButton, 0x915, 0
UnpressRemoteDpButton, 0x916, 1
PressSetAndMenu, 0x931, 3
PressSetAndUp, 0x932, 3
PressSetAndDown, 0x933, 3
PressSetAndLeft, 0x934, 3
PressSetAndRight, 0x935, 3
PressSetAndJump, 0x936, 3
PressSetAndDisp, 0x937, 3
PressSetAndTele, 0x938, 3
PressSetAndWide, 0x939, 3
PressSetAndPs, 0x93A, 3
PressMFAndUp, 0x93B, 3
PressMFAndDown, 0x93C, 3
PressSw1AndAE, 0x93D, 3
PressSw1AndAELock, 0x93E, 3
PressSw1AndMF, 0x93F, 3
PressSw2AndSet, 0x940, 3
PressSw2AndErase, 0x941, 3
PressSw2AndDisp, 0x942, 3
PressSw2AndFunc, 0x943, 3
PressSw2AndSound, 0x944, 3
PressSw2AndTele, 0x945, 3
PressSw2AndWide, 0x946, 3
PressSw1AndShortcut, 0x947, 3
PressDispAndRightButton, 0x948, 3
PressSw1AndAF, 0x949, 3
PressPsAndRight, 0x94A, 3
PressPsAndLeft, 0x94B, 3
PressMenuAndSetAndPs, 0x94C, 3
PressUpExpButton, 0x94D, 0
UnpressUpExpButton, 0x94E, 1
PressDownWBButton, 0x94F, 0
UnpressDownWBButton, 0x950, 1
PressAEFELockEraseButton, 0x951, 0
UnpressAEFELockEraseButton, 0x952, 1
PressMacroJumpButton, 0x953, 0
UnpressMacroJumpButton, 0x954, 1
PressFlashMultiButton, 0x955, 0
UnpressFlashMultiButton, 0x956, 1
PressMFSoundButton, 0x957, 0
UnpressMFSoundButton, 0x958, 1
PressTeleMagButton, 0x959, 0
UnpressTeleMagButton, 0x95A, 1
PressWideReductionButton, 0x95B, 0
UnpressWideReductionButton, 0x95C, 1
PressSetAFFrameButton, 0x95D, 0
UnpressSetAFFrameButton, 0x95E, 1
HoldSetAFFrameButton, 0x95F, 3
RepeatUpButton, 0x960, 2
RepeatDownButton, 0x961, 2
RepeatRightButton, 0x962, 2
RepeatLeftButton, 0x963, 2
PressSw2AndMenu, 0x964, 3
PressSwOne, 0x981, 0
UnpressSwOne, 0x982, 1
PressSwTwo, 0x983, 0
UnpressSwTwo, 0x984, 1
PressMovieButton, 0x985, 0
UnpressMovieButton, 0x986, 1
PressRecButton, 0x1001, 0
UnpressRecButton, 0x1002, 1
PressPBButton, 0x1003, 0
UnpressPBButton, 0x1004, 1
PressOffButton, 0x1005, 0
UnpressOffButton, 0x1006, 1
ChangeMainDial, 0x1007, 2
PressPowerButton, 0x1008, 0
UnpressPowerButton, 0x1009, 1
ModeLeverPlay, 0x100A, 2
ModeLeverMovieRec, 0x100B, 2
ModeLeverStillRec, 0x100C, 2
ModeDialToM, 0x1052, 2
ModeDialToAv, 0x1053, 2
ModeDialToTv, 0x1054, 2
ModeDialToP, 0x1055, 2
ModeDialToAuto, 0x1056, 2
ModeDialToPortrait, 0x1057, 2
ModeDialToLandscape, 0x1058, 2
ModeDialToNightScene, 0x1059, 2
ModeDialToStitchAssist, 0x105A, 2
ModeDialToMovie, 0x105B, 2
ModeDialToC1, 0x105C, 2
ModeDialToC2, 0x105D, 2
ModeDialToC, 0x105E, 2
ModeDialToFastShutter, 0x105F, 2
ModeDialToSlowShutter, 0x1060, 2
ModeDialToPlay, 0x1061, 2
ModeDialToCamera, 0x1062, 2
ModeDialToSCN, 0x1063, 2
ModeDialToFunColor, 0x1064, 2
ModeDialToRec, 0x1065, 2
ModeDialToSport, 0x1068, 2
IsoDialToAuto, 0x1069, 2
IsoDialToHighAuto, 0x106A, 2
IsoDialToMinSpd, 0x106B, 2
IsoDialTo100, 0x106C, 2
IsoDialTo200, 0x106D, 2
IsoDialTo400, 0x106E, 2
IsoDialTo800, 0x106F, 2
IsoDialToMaxSpd, 0x1070, 2
RotateIsoDialRight, 0x1071, 2
RotateIsoDialLeft, 0x1072, 2
ConnectVideoCable, 0x1081, 2
DisconnectVideoCable, 0x1082, 2
ConnectACCable, 0x1083, 2
DisconnectACCable, 0x1084, 2
ConnectUSBCable, 0x1085, 2
DisconnectUSBCable, 0x1086, 2
MountExtFlash, 0x1087, 2
UnmountExtFlash, 0x1088, 2
OpenBatteryCover, 0x1089, 2
CloseBatteryCover, 0x108A, 2
InsertBattery, 0x108B, 2
RemoveBattery, 0x108C, 2
OpenMediaCover, 0x108D, 2
CloseMediaCover, 0x108E, 2
OpenBatMediaCover, 0x108F, 2
CloseBatMediaCover, 0x1090, 2
InsertMedia, 0x1091, 2
RemoveMedia, 0x1092, 2
WriteProtectMedia, 0x1093, 2
WriteEnableMedia, 0x1094, 2
AttachCradle, 0x1095, 2
DetachCradle, 0x1096, 2
OpenLensCover, 0x1097, 2
CloseLensCover, 0x1098, 2
OpenLensCoverHalf, 0x1099, 2
CloseLensCoverHalf, 0x109A, 2
PressRemotePcPlayButton, 0x109B, 0
UnpressRemotePcPlayButton, 0x109C, 1
PressPcPlayButton, 0x109D, 0
UnpressPcPlayButton, 0x109E, 1

Well, I have made two uBasic commands .. 'movie_mode'  and 'record_mode' and a little script that switches to movie mode for five seconds and then returns to record mode   .... except it does not return.
After exiting the script I am still in movie mode even though the dial is on Manual.
Do I have to manipulate the 'magic numbers' in some way  ?

Maybe we must avoid the magic numbers like 0x1056 (using string search?). Now late in the day to think about it  :).

*

Offline ewavr

  • ****
  • 1057
  • A710IS
Re: Mode dials and Playback pushbuttons
« Reply #9 on: 23 / February / 2009, 17:15:50 »
I wonder what happens if you take that other number from the table and stick it as the second argument to PostLogicalEventForNotPowerType()?

I see no difference if second argument is 0, 1, or 2.

edit: Only for some commands.

   
« Last Edit: 23 / February / 2009, 17:17:42 by ewavr »

 

Related Topics


SimplePortal © 2008-2014, SimplePortal