© 2019 alkenius systems · 6.creation of an application (whether it will be freeware, shareware or...

119
© 2019 Alkenius Systems TCamRemote ActiveX component version 9.0

Upload: others

Post on 18-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

© 2019 Alkenius Systems

TCamRemoteActiveX component

version 9.0

Page 2: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote

The ActiveX component to handle PowerShot/EOS digital cameras

by Hans-David Alkenius

You have Canon digital camera(s)? Want to use thecamera(s) as picture source to your computer? Maybe wantto create a movie or handle RAW pictures?

The TCamRemote component for ActiveX enables you tohandle PowerShot and/or EOS digital camera(s) within yourdevelopment platform.

Page 3: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, ormechanical, including photocopying, recording, taping, or information storage and retrieval systems - without thewritten permission of the publisher.

Products that are referred to in this document may be either trademarks and/or registered trademarks of therespective owners. The publisher and the author make no claim to these trademarks.

While every precaution has been taken in the preparation of this document, the publisher and the author assume noresponsibility for errors or omissions, or for damages resulting from the use of information contained in this documentor from the use of programs and source code that may accompany it. In no event shall the publisher and the author beliable for any loss of profit or any other commercial damage caused or alleged to have been caused directly orindirectly by this document.

Printed: oktober 2019 in Linköping, Sweden.

TCamRemote

© 2019 Alkenius Systems

Publisher

Special thanks to:

My patient wife, which allows me to work with this product. It hasbeen very time consuming and many late hours. Thanks!

Ross Garner in Australia for helping with developing and testing ofthe TCamRemote component. Thanks!

Hans-David Alkenius

Reviewer

Anders AlkeniusAnna Alkenius

Page 4: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemoteI

© 2019 Alkenius Systems

Table of Contents

Foreword 0

Part I Introduction 2

................................................................................................................................... 21 Welcome

................................................................................................................................... 22 Description

................................................................................................................................... 33 License

................................................................................................................................... 44 Evaluation, support and upgrade of TCamRemote

Part II Overview 6

................................................................................................................................... 61 Overview ActiveX

................................................................................................................................... 72 Support for Windows 7, Windows 8 and Windows 10

................................................................................................................................... 83 Supported cameras

................................................................................................................................... 114 Camera protocol

................................................................................................................................... 125 Revision History

................................................................................................................................... 236 Installation ActiveX

................................................................................................................................... 237 Updating TCamRemote

................................................................................................................................... 238 Known problems

................................................................................................................................... 249 Template applications

................................................................................................................................... 3610 RAW development

................................................................................................................................... 3711 Handle several cameras

................................................................................................................................... 3812 Viewfinder description

................................................................................................................................... 3913 PowerShot G7X MkII

Part III TCamRemote component 42

................................................................................................................................... 421 TCamRemote

................................................................................................................................... 422 TCamRemote runtime files

................................................................................................................................... 423 TCamRemote error handling

................................................................................................................................... 424 TCamRemote properties

.......................................................................................................................................................... 42List of properties in TCamRemote

.......................................................................................................................................................... 42TCamRemote.EOSViewfinderRefreshInterval

.......................................................................................................................................................... 43TCamRemote.LibraryFolder

.......................................................................................................................................................... 43TCamRemote.PS2ViewfinderRefreshInterval

.......................................................................................................................................................... 43TCamRemote.RegCode

.......................................................................................................................................................... 43TCamRemote.RegName

.......................................................................................................................................................... 43TCamRemote.Version

................................................................................................................................... 435 TCamRemote methods

.......................................................................................................................................................... 43List of methods in TCamRemote

.......................................................................................................................................................... 45TCamRemote.CloseCameraCollection

......................................................................................................................................................... 45CloseCameraCollection example

.......................................................................................................................................................... 45TCamRemote.CloseCameraEnumeration

.......................................................................................................................................................... 45TCamRemote.CloseRAWObject

.......................................................................................................................................................... 46TCamRemote.Connect

......................................................................................................................................................... 47Connect example

.......................................................................................................................................................... 49TCamRemote.Connect_CameraModel

.......................................................................................................................................................... 49TCamRemote.Connect_CameraModelName

Page 5: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

IIContents

II

© 2019 Alkenius Systems

.......................................................................................................................................................... 49TCamRemote.Connect_OwnerName

.......................................................................................................................................................... 50TCamRemote.Connect_Battery_BatterySource

.......................................................................................................................................................... 50TCamRemote.Connect_Battery_BatteryStatus

.......................................................................................................................................................... 50TCamRemote.DeletePicture

......................................................................................................................................................... 50DeletePicture example

.......................................................................................................................................................... 51TCamRemote.DevelopRAWPicture

.......................................................................................................................................................... 51TCamRemote.Disconnect

.......................................................................................................................................................... 52TCamRemote.GetBodyID

.......................................................................................................................................................... 52TCamRemote.GetPicture

......................................................................................................................................................... 53GetPicture example

.......................................................................................................................................................... 53TCamRemote.GetRAWDevelopmentParameters

.......................................................................................................................................................... 53TCamRemote.FormatCameraCard

.......................................................................................................................................................... 54TCamRemote.OpenCameraCollection

......................................................................................................................................................... 54OpenCameraCollection example

.......................................................................................................................................................... 55TCamRemote.OpenCameraCollection_GetNrOfPictures

.......................................................................................................................................................... 55TCamRemote.OpenCameraCollection_NameOfImage

.......................................................................................................................................................... 55TCamRemote.OpenCameraCollection_GetThumbnail

.......................................................................................................................................................... 56TCamRemote.OpenCameraEnumeration

.......................................................................................................................................................... 56TCamRemote.OpenCameraEnumeration_GetPowerShotNr

.......................................................................................................................................................... 57TCamRemote.OpenCameraEnumeration_GetEOSNr

.......................................................................................................................................................... 57TCamRemote.OpenCameraEnumeration_GetModel

.......................................................................................................................................................... 57TCamRemote.OpenRAWObject

.......................................................................................................................................................... 58TCamRemote.OpenRAWObject_GetRemoteParamSupported

.......................................................................................................................................................... 59TCamRemote.RemoteActivateViewfinderAuto

.......................................................................................................................................................... 59TCamRemote.RemoteAFLock

.......................................................................................................................................................... 59TCamRemote.RemoteBULBMode

.......................................................................................................................................................... 60TCamRemote.RemoteEnd

.......................................................................................................................................................... 60TCamRemote.RemoteEndMovieRecording

.......................................................................................................................................................... 61TCamRemote.RemoteGetCameraCacheParameters

.......................................................................................................................................................... 61TCamRemote.RemoteGetCFPicture

.......................................................................................................................................................... 62TCamRemote.RemoteGetNumberOfAvailableShots

.......................................................................................................................................................... 62TCamRemote.RemoteGetMovie

.......................................................................................................................................................... 62TCamRemote.RemoteGetPicture

.......................................................................................................................................................... 63TCamRemote.RemoteGetPowerZoom

.......................................................................................................................................................... 64TCamRemote.RemoteGetRemoteParams

......................................................................................................................................................... 65RemoteGetRemoteParams example

.......................................................................................................................................................... 65TCamRemote.RemoteGetRemoteParams_PictureStyle

.......................................................................................................................................................... 66TCamRemote.RemoteGetRemoteParams_WhitebalanceShift

.......................................................................................................................................................... 66TCamRemote.RemoteGetViewfinderAutofocusInfo

.......................................................................................................................................................... 67TCamRemote.RemoteGetViewfinderAutofocusInfoFrame

.......................................................................................................................................................... 68TCamRemote.RemoteGetViewfinderAutofocusMode

.......................................................................................................................................................... 68TCamRemote.RemoteGetViewfinderDepthOfFieldPreview

.......................................................................................................................................................... 68TCamRemote.RemoteGetViewfinderHistogram

.......................................................................................................................................................... 69TCamRemote.RemoteGetViewfinderImage

.......................................................................................................................................................... 69TCamRemote.RemoteGetZoomPos_CurrentZoomPos

.......................................................................................................................................................... 70TCamRemote.RemoteGetZoomPos_MaxOpticalZoomPos

.......................................................................................................................................................... 70TCamRemote.RemoteGetZoomPos_MaxZoomPos

.......................................................................................................................................................... 70TCamRemote.RemoteLoadCameraRemoteParams

.......................................................................................................................................................... 71TCamRemote.RemotePowerZoomStop

.......................................................................................................................................................... 71TCamRemote.RemotePowerZoomTele

.......................................................................................................................................................... 72TCamRemote.RemotePowerZoomWide

.......................................................................................................................................................... 72TCamRemote.RemotePressShutter

.......................................................................................................................................................... 73TCamRemote.RemoteSaveCameraRemoteParams

.......................................................................................................................................................... 73TCamRemote.RemoteSetRemoteParams

......................................................................................................................................................... 74RemoteSetRemoteParams example

.......................................................................................................................................................... 74TCamRemote.RemoteSetRemoteParams_AvTvImageMode

.......................................................................................................................................................... 75TCamRemote.RemoteSetRemoteParams_ImageQuality

.......................................................................................................................................................... 75TCamRemote.RemoteSetRemoteParams_PictureStyle

Page 6: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemoteIII

© 2019 Alkenius Systems

.......................................................................................................................................................... 76TCamRemote.RemoteSetRemoteParams_WhitebalanceShift

.......................................................................................................................................................... 77TCamRemote.RemoteSetViewfinderAutofocusMode

.......................................................................................................................................................... 77TCamRemote.RemoteSetViewfinderDepthOfFieldPreview

.......................................................................................................................................................... 78TCamRemote.RemoteSetViewfinderDriveLens

.......................................................................................................................................................... 78TCamRemote.RemoteSetViewfinderOutput

.......................................................................................................................................................... 79TCamRemote.RemoteSetViewfinderWhitebalance

.......................................................................................................................................................... 79TCamRemote.RemoteSetViewfinderZoom

.......................................................................................................................................................... 79TCamRemote.RemoteSetViewfinderZoomPosition

.......................................................................................................................................................... 80TCamRemote.RemoteSetZoomPos

......................................................................................................................................................... 80RemoteSetZoomPos example

.......................................................................................................................................................... 80TCamRemote.RemoteStart

......................................................................................................................................................... 82RemoteStart example

.......................................................................................................................................................... 82TCamRemote.RemoteStart_DoSupportZoom

.......................................................................................................................................................... 82TCamRemote.RemoteStart_DoSupportPowerZoom

.......................................................................................................................................................... 83TCamRemote.RemoteStart_DoSupportShootingPara

.......................................................................................................................................................... 83TCamRemote.RemoteStart_DoSupportViewfinder

.......................................................................................................................................................... 84TCamRemote.RemoteStart_ReqViewfinderOffWhenShooting

.......................................................................................................................................................... 84TCamRemote.RemoteStart_DoSupportAfLockUnlock

.......................................................................................................................................................... 84TCamRemote.RemoteStart_GetRemoteParamSupported

.......................................................................................................................................................... 86TCamRemote.RemoteStartMovieRecording

.......................................................................................................................................................... 87TCamRemote.RemoteStartViewfinder

......................................................................................................................................................... 88RemoteStartViewfinder example

.......................................................................................................................................................... 88TCamRemote.RemoteStopViewfinder

.......................................................................................................................................................... 88TCamRemote.RemoteSupported

.......................................................................................................................................................... 89TCamRemote.RemoteTakePicture

......................................................................................................................................................... 89RemoteTakePicture example

.......................................................................................................................................................... 89TCamRemote.SetOwnerName

.......................................................................................................................................................... 90TCamRemote.SetRAWDevelopmentParameters

.......................................................................................................................................................... 90TCamRemote.SetTimeInCamera

................................................................................................................................... 906 TCamRemote events

.......................................................................................................................................................... 90List of events in TCamRemote

.......................................................................................................................................................... 91TCamRemote.OnEvent

......................................................................................................................................................... 91OnEvent example

.......................................................................................................................................................... 91TCamRemote.OnGetPictureEvent

......................................................................................................................................................... 92OnGetPictureEvent example

.......................................................................................................................................................... 92TCamRemote.OnRawDevelopEvent

......................................................................................................................................................... 92OnRawDevelopEvent example

.......................................................................................................................................................... 92TCamRemote.OnRemoteEvent

......................................................................................................................................................... 94OnRemoteEvent example

.......................................................................................................................................................... 94TCamRemote.OnRemoteGetPictureEvent

......................................................................................................................................................... 95OnRemoteGetPictureEvent example

.......................................................................................................................................................... 95TCamRemote.OnRemoteGetMovieEvent

......................................................................................................................................................... 95OnRemoteGetMovieEvent example

.......................................................................................................................................................... 95TCamRemote.OnRemoteProbeParamEvent

......................................................................................................................................................... 95OnRemoteProbeParamEvent example

.......................................................................................................................................................... 96TCamRemote.OnRemoteTakePictureEvent

......................................................................................................................................................... 96OnRemoteTakePictureEvent example

.......................................................................................................................................................... 96TCamRemote.OnViewfinderEvent

......................................................................................................................................................... 97OnViewfinderEvent example

................................................................................................................................... 997 TCamRemote types

.......................................................................................................................................................... 99BatterySourceType

.......................................................................................................................................................... 99BatteryStatusType

.......................................................................................................................................................... 99CamModType

.......................................................................................................................................................... 99EventCallbackType

.......................................................................................................................................................... 99RemoteEventCallbackType

.......................................................................................................................................................... 100RemoteReleaseParametersType

.......................................................................................................................................................... 106TRAWParamType

.......................................................................................................................................................... 106TRemoteParamType

Page 7: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

IVContents

IV

© 2019 Alkenius Systems

.......................................................................................................................................................... 106TRemoteParamPictureStyleType

.......................................................................................................................................................... 106TRemoteParamWhitebalanceShiftType

Index 107

Page 8: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote

Part

I

Page 9: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Introduction 2

© 2019 Alkenius Systems

1 Introduction

1.1 Welcome

Welcome to the TCamRemote component.

The TCamRemote component can be used to interface and remotely handle Canon PowerShot(generation 1 and 2) and EOS digital cameras.

Highlights

· take pictures remotely and receive the picture to the computer,· handle the remote viewfinder,· set and get remote parameters (e.g. ISO and Zoom),· list, get and delete pictures stored in connected camera(s),· record movies using EOS cameras,· handle multiple cameras. · develop RAW-pictures with development parameters (e.g. change whitebalance) to 8 or 16 bits

Tiffs.

1.2 Description

AuthorsHans-David Alkenius, [email protected]

©2019 Alkenius Systems.

Description

The TCamRemote ActiveX version is based on the TCamRemote Delphi component which used tohandle one or several Canon PowerShot (generation 1 and 2) and/or EOS digital cameras.

UpdatesThe homesite for the TCamRemote Component https://alkenius.no-ip.org

Development RequirementsAny development platform that supports ActiveX such as Visual Basic, Visual C++, VB.NET, C#, ASP,ASP.NET, Access, Borland C++ Builder, PowerBuilder, FoxPro. The application developed must be forx86, not x64, for details see Support for Windows 7, Windows 8 and Windows 10 .Included with the TCamRemote release is two templates, one for Visual Basic 6 and one for VisualBasic 2008.

Target Requirements Operating SystemWindows 7 (32 and 64 bits), Windows 8 (32 and 64 bits) and Windows 10. macOS 10.11 and newer.PowerShot cameras (generation 1) are supported in Windows 7, Windows 8 and Windows 10 inCompatibility mode for WinXP, see section Support for Windows 7, Windows 8 and Windows 10 . PowerShot cameras (generation 2) are supported in · Windows 7, Windows 8 and Windows 10 natively without Compatibility mode required · macOSEOS cameras are supported in · Windows 7, Windows 8 and Windows 10 natively without Compatibility mode required· macOS

Suggestions for ImprovementsThe author welcomes suggestions for improvements and new functions. As long as a function not isrequested, it is not implemented in TCamRemote.Examples of functions that could be implemented are:

· Handle pictures stored on local drive on computer.· Upload pictures to the camera.

7

7

Page 10: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote3

© 2019 Alkenius Systems

RAW-development:· Add many more development parameters.· Add PowerShot development functions.· Set Whitebalance by clicking a preview.· Generate preview to file or TImage/TPicture/TBitmap. Different sizes and qualities versus speed.· Save to other format than TIFF.· Store EXIF in JPEG/TIFF.· Store and get ICC profiles for both 8 and 16 bits.· Automatically rotate developed pictures correctly, using orientation information in the EXIF-data.

How it happened...

From the beginning (year 2000) I developed a tool called Cam4you utilities. Cam4you utilitieshomepage is http://alkenius.no-ip.org/cam4you/. I used Delphi to develop Cam4you utilities and Idecided in 2004 to develop a Delphi VCL making it possible for other Delphi developers to handleCanon cameras. At the end of 2006 I decided to create a TCamRemote ActiveX version based on theDelphi VCL version. The main approach was to create a TCamRemote ActiveX and make sure that allthe methods, properties and events are included from the VCL TCamRemote interfaces.

1.3 License

As a proprietary product, TCamRemote is protected by copyright laws. At all times Alkenius Systemsretains full title to the software. Subject to your acceptance of and accordance with the terms andconditions stated in this agreement, you shall be granted a single-user software license. Any previousagreement with Alkenius Systems is superseded by this agreement.

THIS SOFTWARE LICENSE GIVES YOU THE RIGHT TO:

1. Install and use the Software for the sole purposes of designing, developing, testing, and deployingapplication programs which you create. You may install a copy of the Software on a computer andfreely move the Software from one computer to another, provided that you are the only individualusing the Software. If you are an entity, you must designate one individual within your organization("Named User") to have the right to use the Software.

2. Write and compile your own application programs using the TCamRemote software contained inthis package. All copies of the software you so write and distribute must include a TCamRemotecopyright notice, or a valid copyright notice of your own.

3. Make one copy of the Software for backup or archival purposes or copy the Software to a singlepermanent storage medium provided you keep the original solely for backup or archivalpurposes.

4. Distribute runtime packages for the sole purpose of executing application programs created withDelphi. TCamRemote runtime packages available for distribution are listed in the TCamRemoteruntime files chapter .

ENGAGING IN ANY OF THE ACTIVITIES LISTED BELOW WILL TERMINATE THE SOFTWARELICENSE.

1. Distribution of any files contained in this software package, other than the runtime packagesexplicitly listed above, including but not limited to .PAS, .DFM, .DCU files, .DCP files, anddesign-time packages.

2. Modification, de-compilation, disassembly, reverse engineering or translation of the Software.3. Removal of proprietary notices, labels or marks from the Software or Software Documentation.4. Inclusion of the software in a development environment. 5. Creation of an application that does not differ materially from the Software.6. Creation of an application (whether it will be freeware, shareware or a commercial product) which

competes directly or indirectly with TCamRemote. 7. Distribution of an application program created using the Software to another developer. A

developer is defined as any person who is executing an application program created using theSoftware, on a computer which contains an installation of Borland Delphi. In order to execute suchan application, the developer must own a license to the Software, and must have installed theSoftware on the computer.

8. You may not use TCamRemote to create components or controls to be used by other developers

12

Page 11: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Introduction 4

© 2019 Alkenius Systems

without written approval from Alkenius Systems.

AGREEMENT PERTAINING TO THE RELEASE OF SOURCE CODE by Alkenius Systems toRecipient:

USE OF SOURCE CODE

Recipient will not utilize the source for the creation of software (whether it is freeware, shareware or acommercial product) which competes directly or indirectly with TCamRemote. In addition, Recipient willnot disclose the source itself, nor the implementations discovered therein, to any party involved in thecreation of software which competes directly or indirectly with TCamRemote.

DISTRIBUTION OF SOURCE CODE

Recipient will not distribute the source. Specifically this includes all .dcu, .dfm, and .pas files whichAlkenius Systems has provided.

CHANGES TO SOURCE CODE

Alkenius Systems reserves the right to change any part of the source in future versions of the product.These changes may include the removal of classes, properties and methods or the creation of newclasses, properties and methods.

TECHNICAL SUPPORT FOR SOURCE CODE

The Software is not guaranteed to be error free. Alkenius Systems will provide limited technicalsupport but will not provide support for changes recipient makes to the source. Recipient assumes fullresponsibility for supporting any code or application which results from such modification. Recipient willnot hold Alkenius Systems liable, directly or indirectly, for any changes made to the source, includingchanges which Recipient has made based on advice or suggestions provided by Alkenius Systems.The Recipent shall get back the payment for the Software, if critical errors found in the Software notcan be solved by Alkenius Systems. Recipent will not hold Alkenius Systems liable for any hardwareproblems when using the Software.

1.4 Evaluation, support and upgrade of TCamRemote

As from TCamRemote 9.0 TCamRemote is a free component and is not required to be registered inany way.Source code are supplied and the registration compiler switch is default turned off.Limited support is provided by the owner of TCamRemote.

Page 12: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote

Part

II

Page 13: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 6

© 2019 Alkenius Systems

2 Overview

2.1 Overview ActiveX

The TCamRemote ActiveX version is a wrapper for the TCamRemote Delphi VCL version. In Delphi itis possible to create ActiveX version of VCL components, but only the interfaces that fulfills therequirements on data types are included in the ActiveX component. Only simple data types (e.g.integer, string etc) are supported by ActiveX. Since the TCamRemote VCL version, uses morecomplex data types, specially data records, is the TCamRemote VCL interfaces wrapped in anotherVCL component only used for creating the ActiveX version, see picture below.

TCamRemote ActiveX is available in two versions; with or without source code. The zip-filedownloaded from TCamRemote homepage with TCamRemote ActiveX, is the version without sourcecode. Registration is required after the evaluation period . In addition the source code version willinclude all sources needed to compile the .ocx file. Note that Borland Delphi 7 or newer is required tocompile the sources.

The names of methods and data types are shared as much as possible between the Delphi VCLversion and the ActiveX version, but the ActiveX version have a few addons. A function in the DelphiVCL version returning complex data records are first changed to a procedure. Then several interfacemethods with a prefix name same as the original function, and appended with a '_' and then the data.In some cases 'GetXXX' functions are created. Below a few examples:The Connect functions returns complex data structures in the Delphi VCL version. In the ActiveXversion these data structures can be received using the Connect_CameraModel, Connect_OwnerName etc.

Therefore may the TCamRemote VCL version manual be used as a compliment, since the informationand data is shared as much as possible.

The TCamRemote ActiveX version is based on a TCamRemote VCL version which includes thePS-DLL and PS2-DLL interface for PowerShot support and EOS-DLL interface for EOS support.

Depending on which cameras TCamRemote supports, required run-time DLLs must be reached bythe application using TCamRemote.

4

46

49

49

42

Page 14: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote7

© 2019 Alkenius Systems

2.2 Support for Windows 7, Windows 8 and Windows 10

TCamRemote supports Windows 7, Windows 8 and Windows 10EOS and PowerShot generation 2 cameras are supported (see EOS-DLL and PS2-DLL interface inthe supported cameras section ) natively in Windows 7, Windows 8 and Windows 10 andPowerShot generation 1 cameras that Canon claims are supported in Windows 7, Windows 8 andWindows 10 (e.g. S3 IS, S5 IS, G7, G9, A640, SX100 IS) are supported if the application usingTCamRemote are executed in Compatibility mode for WinXP, see details below.

In short this means that TCamRemote support Windows 7, Windows 8 and Windows 10 natively forEOS and PowerShot generation 2 camera. For PowerShot generation 1 cameras the application mustbe run in a compatibility mode for WinXP, which is not a good solution in the long term. The reason forthis restriction is that Canon has not released drivers that natively supports Windows 7, Windows 8and Windows 10 for PowerShot generation 1 cameras. Hopefully Canon will create updated driversthat TCamRemote can use in the future enabling support for newer PowerShot generation 1 camerasnatively in Windows 7, Windows 8 and Windows 10, however Canon has not promised any futurereleases native Windows 7, Windows 8 and Windows 10 support for PowerShot generation 1cameras.

An application based on TCamRemote can be executed on Windows 7, Windows 8 and Windows 10without any change.

To manually set an application in WinXP compatibility mode in Windows 7, Windows 8 and Windows10 do the following.1. Right click the application and select properties2. Select the compatibility tab3. Check "Run this program in compatibility mode for", select "Windows XP (Service Pack 2)" or

"Windows XP (Service Pack 3)"

The above procedure is possible to execute as a part of an installation of a program (e.g. usingInstallShield), but the details must be covered by the respective installation product.

This information was extracted from Canon U.S.A. homepage (regarding PowerShot generation 1 and

8

Page 15: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 8

© 2019 Alkenius Systems

older EOS cameras):----------------------------------------------------------------------------------------------------The following digital cameras do not support Picture Transfer Protocol and are thus not able to beconnected to Windows 7, Windows 8 and Windows 10. To transfer images from your camera to a PC,please use a PC compatible memory card reader:

PowerShot 350 PowerShot 600 PowerShot A5PowerShot A5

ZoomPowerShot A50

PowerShot S10 PowerShot S100 PowerShot S110 PowerShot S20 PowerShot S200

PowerShot S230* PowerShot S30 PowerShot S300 PowerShot S330 PowerShot S40

PowerShot S45* PowerShot A10 PowerShot A100 PowerShot A20 PowerShot A200

PowerShot A30 PowerShot A300 PowerShot A40 PowerShot G1 PowerShot G2

PowerShot G3*PowerShot

Pro70PowerShot

Pro90ISEOS-D30 EOS-D60

  EOS-10D EOS-1D EOS-1Ds  

Support for Windows 7, Windows 8 and Windows 10 64 bit OS

TCamRemote is a 32 (Delphi and ActiveX) and 64 (Delphi only) bits component. Note that an x86application will work fine in a 64 bits Windows.When creating a new application in e.g. Microsoft Visual Studio 2008 in Windows 7, Windows 8 andWindows 10 64 bits the application is default compiled with 64 bits, which will cause the application notto work.In Microsoft Visual Studio do the following:Set the Target CPU option in the in Project Properties->Compile->Advanced CompilerSettings->Target CPU to x86.

2.3 Supported cameras

The following cameras are supported:PowerShot generation 2:Camera model Remote handling

supportedincludingdownload ofpictures takenremotely

Remote viewfindersupported

Picture downloadof pictures thathave been takemanually and isstored on cameramemory card

PowerShot G7X Mark II yes yes yes

PowerShot generation 1:Camera model Remote handling

supportedincludingdownload ofpictures takenremotely

Remote viewfindersupported

Picture downloadof pictures thathave been takemanually and isstored on cameramemory card

PowerShot A10 yes no yesPowerShot A20 yes no yesPowerShot A30 yes no yesPowerShot A40 yes no yesPowerShot A60 yes yes yesPowerShot A70 yes yes yes

39

Page 16: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote9

© 2019 Alkenius Systems

PowerShot A75 yes yes yesPowerShot A80 yes yes yesPowerShot A85 yes yes yesPowerShot A95 yes yes yesPowerShot A100 yes yes yesPowerShot A200 yes yes yesPowerShot A300 yes yes yesPowerShot A310 yes yes yesPowerShot A400 yes yes yesPowerShot A510 yes yes yesPowerShot A520 yes yes yesPowerShot A620 yes yes noPowerShot A640 yes yes noPowerShot S1 IS yes yes yesPowerShot S2 IS yes yes yesPowerShot S3 IS yes yes noPowerShot S5 IS yes yes noPowerShot S10 no no yesPowerShot S20 no no yesPowerShot S30 yes yes yesPowerShot S40 yes yes yesPowerShot S45 yes yes yesPowerShot S50 yes yes yesPowerShot S60 yes yes yesPowerShot S70 yes yes yesPowerShot S80 yes yes noPowerShot G1 yes no yesPowerShot G2 yes yes yesPowerShot G3 yes yes yesPowerShot G5 yes yes yesPowerShot G6 yes yes yesPowerShot G7 yes yes noPowerShot G9 yes yes noPowerShot G10 yes yes noPowerShot SX100 IS yes yes noPowerShot SX110 IS yes yes noPowerShot Pro1 yes yes yesPowerShot Pro90 IS yes no yesPowerShot S100,IXY DIGITAL,DIGITAL IXUS

yes no yes

PowerShot S110,IXY DIGITAL 200,DIGITAL IXUS v

yes no yes

PowerShot S200,IXY DIGITAL 200a,DIGITAL IXUS v2

yes yes yes

PowerShot S230,IXY DIGITAL 320,DIGITAL IXUS v3

yes yes yes

PowerShot S300,IXY DIGITAL 300,DIGITAL IXUS 300

yes no yes

PowerShot S330,IXY DIGITAL 300a,DIGITAL IXUS 330

no no no

PowerShot S400,IXY DIGITAL 400,DIGITAL IXUS 400

yes yes yes

PowerShot S410,IXY DIGITAL 450,DIGITAL IXUS 430

yes yes yes

Page 17: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 10

© 2019 Alkenius Systems

PowerShot S500,IXY DIGITAL 500,DIGITAL IXUS 500

yes yes yes

PowerShot SD10,IXY DIGITAL L,DIGITAL IXUS i

no no yes

PowerShot SD20,IXY DIGITAL L2,DIGITAL IXUS i5

no no yes

PowerShot SD100,IXY DIGITAL 30,DIGITAL IXUS II

yes yes yes

PowertShot SD110,IXY DIGITAL 30a,DIGITAL IXUS IIs

yes yes yes

PowerShot SD200,IXY DIGITAL 40,DIGITAL IXUS 30

no no yes

PowerShot SD300,IXY DIGITAL 50,DIGITAL IXUS 40

no no yes

PowerShot SD400,IXY DIGITAL 55,DIGITAL IXUS 50

no no yes

PowerShot SD500,IXY DIGITAL 600,DIGITAL IXUS 700

no no yes

Notes regarding PowerShot support:

· Canon has discontinued the support for remote operations of newer PowerShot cameras. Thelatest cameras supporting remote operations are the G10 and the SX110 IS.

· Some of the listed PowerShot cameras above are supported by Windows 7, Windows 8 andWindows 10, see section Support of Windows 7, Windows 8 and Windows 10 .

· PowerShot A410, A420, A430, A460, A470, A480, A530, A540, A550, A560, A570 IS, A580, A590IS, A610, A630, A650 IS, A700, A710 IS, A720 IS, A1000 IS, A1100 IS, A2000 IS, A2100 IS, D10,E1, G11, S90, SD30, SD40, SD430, SD450, SD550, SD600, SD630, SD700 IS, SD800 IS,SD900, SX1 IS, SX10 IS, SX120 IS, SX20 IS, SX200 IS are not supported by TCamRemote.

· No newer Digital IXUS are supported (e.g. Digital IXUS 990 IS, 980 IS, 970 IS, 960 IS, 950 IS,870 IS, 860 IS, 110 IS, 100 IS, 95 IS, 90 IS, 85 IS, 80 IS, 75, 70)

·· PowerShot generation 1 does only support 32 bits.

EOS:EOS-1D Mark IIIEOS 40DEOS-1Ds Mark IIIEOS DIGITAL REBEL Xsi/450D/ Kiss X2EOS DIGITAL REBEL XS/ 1000D/ KISS FEOS 50DEOS 5D Mark IIEOS Kiss X3/EOS REBEL T1i /EOS 500DEOS 7DEOS 7D Mark IIEOS-1D Mark IVEOS Kiss X4/EOS REBEL T2i /EOS 550DEOS 60DEOS Kiss X5/EOS REBEL T3i /EOS 600DEOS Kiss X50/EOS REBEL T3 /EOS 1100DEOS 5D Mark IIIEOS 1D X

7

Page 18: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote11

© 2019 Alkenius Systems

EOS Kiss X6i/EOS 650D/EOS REBEL T4iEOS M (Only download of pictures from camera memory. Other remote operations not possible)EOS 6DEOS-1D CEOS Kiss X7i/EOS 700D /EOS REBEL T5iEOS Kiss X7/EOS 100D/EOS REBEL SL1EOS 70DEOS M2 (Only download of pictures from camera memory. Other remote operations not possible)EOS Kiss X70/EOS 1200D/EOS REBEL T5/EOS HiEOS 5DS/EOS 5DS R / EOS 760D/ EOS REBEL T6s/EOS 8000DEOS Kiss X8i/EOS 750D/EOS REBEL T6iEOS M3 (Only download of pictures from camera memory. Other remote operations not possible)EOS-1D X Mark II EOS 80D EOS Rebel T6 / EOS 1300D / EOS Kiss X80EOS 5D Mark IV EOS M10 (Only download of pictures from camera memory. Other remote operations not possible)EOS Kiss X9i/EOS Rebel T7i /EOS 800D/EOS 9000DEOS 77DEOS M5 / EOS M6 (Only download of pictures from camera memory. Other remote operations notpossible)EOS 6D Mark II EOS Kiss X9 / EOS Rebel SL2 / EOS 200DEOS M100 (Only download of pictures from camera memory. Other remote operations not possible)EOS Kiss M / EOS M50 EOS Kiss X90 / EOS REBEL T7 / EOS 2000D / EOS 1500DEOS REBEL T100 / EOS 4000D /EOS 3000DEOS REOS RPPowerShot SX70 HSEOS Kiss X10 / EOS Rebel SL3 / EOS 250D / EOS 200D IIEOS M200EOS M6 Mark II / EOS 90DPowerShot G7X Mark III / PowerShot G5X Mark II

2.4 Camera protocol

Protocol for Remote ConnectionTwo types of protocol are used by EOS Digital to connect to a host PC. TCamRemote applications canbasically communicate with remotely connected cameras without any awareness of the differencebetween protocols.

Type 1 (Legacy Protocol)Legacy protocol is an original protocol from Canon for connections between a host PC and camera.This protocol is incorporated into cameras up to EOS5D and in EOS (EOS1 series) cameras with anIEEE1394 interface. A special device driver for the connected camera must be installed on the hostPC in order to connect using this protocol. Be sure to install this driver beforehand from the CD-ROMsupplied with Canon cameras or by downloading from Canon's homepage. Cameras which use a Type1 protocol as standard such as EOS 1DmarkII N are called "Type 1 protocol standard cameras" in thismanual.

Type 2 (PTP)PTP is an abbreviation of "Picture Transfer Protocol." PTP is a standard protocol used to transferimages to a PC. This protocol is incorporated in EOS digital cameras that include a USB interfacestarting with EOS Kiss Digital N (EOS 350D/REBEL XT). A device driver for each model isunnecessary when connecting to an OS that supports PTP. (However, a device driver for making PTPconnections is required when using an OS which does not support PTP as standard such as Windows2000. This driver can be obtained from the CD-ROM supplied with Canon cameras or by downloadingfrom Canon's homepage.) Type 1 protocol has been eliminated from cameras with a USB interfacestarting from EOS30D and Type 2 protocol is utilized as that standard. Cameras that use Type 2protocol as standard such as EOS30D are called "Type 2 protocol standard

Page 19: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 12

© 2019 Alkenius Systems

cameras" in this manual. EOS Kiss Digital N , 350D, REBELXT, and EOS 5D model cameras comeshipped from the factory with communications set for [Print/PTP] but functions that support PCconnections are limited. For example, capture-related features cannot be used. Since these camerasuse [PC connection] (Type 1 protocol) as the standard for connecting to a PC, they are Type 1 protocolstandard cameras.

Support by modelThe following table shows the protocol which can be used for each model when controlling a remotelyconnected camera. Be sure to set the communication settings of the camera as follows.

2.5 Revision History

Version 9.0

· TCamRemote is now a free component. Source code is supplied and no serial keys are required.· Added support for the EOS M200· Added support for the EOS M6 Mark II / EOS 90D· Added support for the PowerShot G7X Mark III / PowerShot G5X Mark II

Version 8.9

· Added support for the EOS Kiss X10 / EOS Rebel SL3 / EOS 250D / EOS 200D II

Version 8.8

·· Added LibraryFolder property to define the location of the TCamRemote runtime files . Makes

it possible to separate them from the application directory.· Added support for the Power Zoom Adapter PZ-E1. New methods RemotePowerZoomTele ,

RemotePowerZoomWide and RemotePowerZoomStop . Added RemoteGetPowerZoomand RemoteStart_DoSupportPowerZoom .

· Added parameter Zoom in OnViewfinderEvent .· Added support for the EOS RP.· Support for Delphi 5 removed.· Added support for Delphi 10.3.1.

Version 8.7

· Added support for 64-bits compilation in Delphi.

43 42

71

72 71 63

82

96

Page 20: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote13

© 2019 Alkenius Systems

· Added support for the EOS R and PowerShot SX70 HS· The RAW development functions are not supported by the Canon libraries.It seems like the function

is permanently removed :(

Version 8.6

· Added support for Delphi 10.3

Version 8.5

· The viewfinder AF modes are probed during remote start. Added new parameter VFAFMode in RemoteReleaseAvailParametersType.

· Added support for Smooth Zone viewfinder autofocus mode.· The RemoteSetViewfinderAutofocusMode method will only accept supported viewfinder modes

for the camera model.· Improved probing of remote parameter for EOS and PowerShot generation 2 cameras.· Improved description how to resolve the problem if the EOS camera is stuck in manual focus mode.

See details in the known problems section .

Version 8.4.1

· Corrected problems with the live VF autofocus mode for M50 and EOS 6D mkII (RemoteSetViewfinderAutofocusMode ). Quick and LiveMulti mode are translated into Live modein all camera modes other than Auto. In camera mode Auto all live VF autofocus mode can beused.

· Corrected problems with the EOS M50 live VF autofocus mode.· Added more items for selection of ISO and drivemodes.

Version 8.4

· Added support for the Camera EOS M100 / EOS Kiss M / EOS M50 / EOS Kiss X90 / EOS REBELT7 / EOS 1500D/ EOS 2000D / EOS REBEL T100 / EOS 4000D

· Added information about that it i possible to get 64 bits support (only for the TCamRemote VCLversion) when creating a 64 bits native application.

Version 8.3

· Added support for EOS 6D Mark II / EOS Kiss X9 / EOS Rebel SL2 / EOS 200D· New camera files and firmware for the PowerShot G7X MkII· Added support for remote parameters AF Assist lamp and Beep (see Beep and AFAssistLight in

RemoteReleaseParametersType ) for the PowerShot G7X MkII· Added support for AF locking during viewfinder operations (see RemoteActivateViewfinderAuto )

for the PowerShot G7X MkII

Version 8.2.1 (ActiveX release only)

· Corrected problems to read the model name from the PowerShot generation 2 cameras.· The PS2ViewfinderRefreshInterval is added to the control (was not visible in the 8.2 release)· Updated the RemoteTemplate application. Removed the use of cached remote parameters since it

does not work for the PowerShot generation 2 cameras.

Version 8.2

· Added support for PowerShot G7X Mark II (the first PowerShot generation 2 camera)· Added support for EOS Kiss X9i / EOS Rebel T7i / EOS 800D / EOS 9000D / EOS 77D / EOS M5 /

EOS M6. Please note: Remote capture functions are not supported for the EOS M5 / EOS M6· Added PS2ViewfinderRefreshInterval property· Updated CamModType . Added PowerShot generation 2 cameras.· Added FirmwareVersion to ConnectInfoType.· Added PowerShotGen2Camera to CameraConnectedType used by method

OpenCameraEnumeration· Templates upgraded to match PowerShot generation 2 cameras.· TCamRemote only supports handling of one camera type at once (EOS, PowerShot generation 1,

PowerShot generation 2). Still it is possible to connect multiple cameras of the same type at thesame time. See section Known Problems .

· Histogram blue channel is replaced with yellow channel (HistogramColorType).

77

23

77

100

59

39

43

99

56

23

Page 21: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 14

© 2019 Alkenius Systems

· Resolved problems with empty Histogram matrixes.

Version 8.1

· Added support for Delphi 10.2

Version 8.0

· Added support for Delphi 10.1.2· Added support for the EOS 5D Mark IV· Resolved problems with RAW development· The number of runtime files is increased to support RAW development functions correctly

Version 7.9

· Added support for Delphi 10.1· Added support for the EOS-1D X Mark II

· Added support for the EOS 80D

· Added support for the EOS Rebel T6 / EOS 1300D / EOS Kiss X80

· Added support for the EOS M10 (Only download of pictures from camera memory. Other remoteoperations not possible)

· Removed support for Windows XP and Windows Vista. Latest version supporting Windows XP andWindows Vista is TCamRemote 7.4.

Version 7.8

· Added support for Delphi 10

Version 7.7R2

· Added support for Windows 10

Version 7.7

· Added support for the EOS 5DS / EOS 5DS R· Added support for the EOS REBEL T6s / EOS 760D / EOS 8000D· Added support for the EOS REBEL T6i / EOS 750D / EOS Kiss X8i· Added support for the EOS M3 (Only download of pictures from camera memory. Other remote

operations not possible)· Added PictureStyleFineDetail in PictureStyleNumberType used in RemoteReleaseParametersType

.· RAW development functions does not work in this version (Canon removed that functionality

temporarily). It will be re-added to the next version.

Version 7.6R2

· Added support for Delphi XE8

Version 7.6

· Added RemoteBULBMode method to set BULB mode for older EOS cameras. The section alsoincludes details how to set BULB mode for newer EOS cameras.

· Resolved a "list index of bounds" bounds error, mostly occurred during long viewfinder sessions.

Version 7.5

· Added support for the EOS 7D Mark II· Added support for Delphi XE7· Improved the probing for remote parameters for EOS-cameras. Probing takes less time.· Removed Windows XP support

Version 7.4

· Added support for the EOS 70D· Added support for the EOS M2 (Only download of pictures from camera memory. Other remote

operations not possible)· Added support for the EOS Kiss X70/EOS 1200D/EOS REBEL T5/EOS Hi· Added support for Delphi XE6

42

100

59

Page 22: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote15

© 2019 Alkenius Systems

· Resolved problem when setting BULB TV mode for EOS cameras. This fix also decreases the timeto probe parameters when executing the RemoteStart method.

· Improved handling of viewfinder images if an EOS camera looses its USB connection with the PCunexpectedly

Version 7.3

· Added support for the EOS 70D· Added support for Delphi XE5

Version 7.2

· Added support for the EOS Kiss X7i/EOS 700D /EOS REBEL T5i, EOS Kiss X7/EOS 100D/EOSREBEL SL1

· Added support for Delphi XE4· Added many new remote operations mode (most only valid for newer EOS cameras) in

RemoteFormatShootingModeType .· Added "live mode multi" in viewfinder autofocus mode (EOS only). See

RemoteGetViewfinderAutofocusMode and RemoteSetViewfinderAutofocusMode for details.· Resolved a bug where two events instead of one event was fired when a picture was taken. This

happened when the remote mode was set to ReleaseModeBothPCAndCamera.· Added parameter DeleteFromCameraAfterTransfer from method RemoteGetMovie .· Added method RemoteGetCFPicture to get pictures that during remote operations have been

taken and stored on the camera CF- or SD-card. This method is only available for EOS cameras.· Updated OnRemoteEvent type RemoteEventCallbackType with new enum

RemoteEventCallbackReleaseImageFromCFCardReady. Used to notify that a new picture has beentaken and is stored on the CF- or SD-card and can be downloaded from the camera to the PC.

· Pictures taken and stored on camera CF or SD card when remote mode is set to ReleaseModeBothPCAndCamera or ReleaseModeOnlyToCamera can be downloaded from thecamera to the PC. The pictures can be downloaded when the OnRemoteEvent event is fired withparameter Event(Num) set to RemoteEventCallbackReleaseImageFromCFCardReady. For detailssee RemoteStart and OnRemoteEvent . This method is only available for EOS cameras.

Version 7.1

· Added support for Windows 8· Added support for the EOS 6D / EOS-1D C· Added support to download pictures from camera memory for the EOS M. The EOS M can not

however be remotely operated in any other way.·· Added a item in section Known problems for a Windows 8 workaround to find not recognized

EOS cameras.· Added support for ISO 6400 up to 102400 .·

Version 7.0R2

· Added support for the EOS Kiss X6i/EOS 650D/EOS REBEL T4i.· Added support for Delphi XE3.· Updated DelphiXE2 support to update pack 4.

Version 7.0

· Added support for the EOS 5D MarkIII/EOS 1D X.· The TCamRemote runtime file must be copied into the same directory as the program using

TCamRemote. It is not enough to store the TCamRemote runtime files in any of the directoriesdefined in the PATH environment variable.

· Added movie recording functionality by adding the RemoteStartMovieRecording ,RemoteEndMovieRecording , RemoteGetMovie methods and the OnRemoteGetMovieEvent

. Added RemoteEventCallbackReleaseMovieReady to the Event parameter in theOnRemoteEvent event. Note that it is possible to take pictures as well as movies when thecamera is in movie mode, however the way to download pictures is special. For details see the"Please note the following" section for the RemoteStartMovieRecording method.

· Read the section about the RemoteStartMovieRecording method to get a short procedure

80

100

68 77

62

61

92

80 92

23

100

42

86

60 62

95

92

86

86

Page 23: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 16

© 2019 Alkenius Systems

description how to record and download movies from the camera.· The exposure compensation remote parameter ExposureCompensation is extened from

-2.00..+2.00 to -5.00..+5.00.

Version 6.9

· Resolved performance problems with the EOS-1100D when using the RemoteStart method. Thetime to execute the method for the EOS 1100D is reduced and takes no longer than for any otherEOS camera.

· Changed the return parameter for method GetBodyID to ShortString.

Version 6.8

· Improved EOS viewfinder handling. Read more details for the RemoteStartViewfinder method.EOS cameras do use an optimized threading model, which improves the download of pictures andthe OnViewfinderEvent is always thread safe to use.

· EOSViewfinderRefreshInterval is default set to 50 ms instead of 100 ms, since EOS viewfinderpicture handling has improved.

· Resolved problems with the EOS-500D when using the RemotePressShutter method.· Added two more choices of shutter operation when using the RemotePressShutter method for

the EOS cameras. The choices are to press the shutter button halfways or completely but withoutany focus operation done. This enables a picture to be taken without any time consuming focusoperations required.

· Improved handling of viewfinder pictures from EOS, especially preventing error exception whenclosing the viewfinder process.

Version 6.7

· Added support for Delphi XE2· Resolved problems with the EOS-500D when starting the viewfinder using the

RemoteStartViewfinder method.

Version 6.6

· The event OnRemoteTakePictureEvent is used instead of OnRemoteGetPictureEvent when aremotely taken picture is downloaded from the camera to the computer using PowerShot cameras.

· In the TCamRemote ActiveX interface all strings (Delphi type) is changed to ShortString for bettercompatibility. Text from Delphi documentation "A ShortString is 0 to 255 single-byte characters long.While the length of a ShortString can change dynamically, its memory is a statically allocated 256bytes; the first byte stores the length of the string, and the remaining 255 bytes are available forcharacters"

· Added the PictureDirectory parameter to the RemoteStartViewfinder method. The downloadedviewfinder pictures are stored into that directory.

· Added a note to avoid copying the redist-files to the Windows System32 directory in 64-bits OS.

Version 6.5

· Added support for the EOS Kiss X5/EOS REBEL T3i /EOS 600D.· Added support for the EOS Kiss X50/EOS REBEL T3 /EOS 1100D.· Added PictureStyleAuto to PictureStyleNumberType .

Version 6.4

· Added EOSLockAF parameter to the RemoteActivateViewfinderAuto method. This makes itpossible to lock/unlock the focus for the EOS cameras during viewfinder operations.

Version 6.3

· Added support for the EOS 60D.· If AFMode is set to manual for EOS cameras it is not thereafter possible to set any other AFMode.

See details in RemoteSetRemoteParams .· Clarification of EOS viewfinder pictures sizes differs between EOS models, see OnViewfinderEvent

.· Added the Metadata parameter (only in the VCL version) when getting a viewfinder pictures for

newer EOS cameras, see OnViewfinderEvent . This makes it possible to get Histogram or focusinformation from the camera.

100

80

52

87

96

42

72

72

87

96 94

87

42

100

59

73

96

96

Page 24: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote17

© 2019 Alkenius Systems

· Added RemoteGetViewfinderHistogram .· The RemoteSetViewfinderOutput changed for EOS cameras. Only LCD and off modes are

supported. The camera UI is unlocked if LCD is used for viewfinder.· Added RemotePressShutter method.· Renamed the RemoteSetViewfinderAutoFocus method to RemoteSetViewfinderAutoFocusMode

.· Added RemoteGetViewfinderAutoFocusMode .· Added RemoteGetViewfinderAutofocusInfo .· Added RemoteGetViewfinderAutofocusInfoFrame .· Added RemoteSetViewfinderZoom .· Added RemoteSetViewfinderZoomPosition .· Added RemoteSetViewfinderDepthOfFieldPreview .· Added RemoteGetViewfinderDepthOfFieldPreview .· Added PictureStyle in the PictureStyleType to set picture style remote parameter. See

RemoteReleaseParametersType when setting remote patrameters (e.g.RemoteSetRemoteParams or RemoteSetRemoteParams_PictureStyle ). This makes itpossible to e.g. take black and white pictures directly from the camera.

· Updated the RemoteTemplate application. The main addition is a separate EOS viewfinder windowsthat shows the unique EOS viewfinder functionality.

· Corrected problems with setting the owner name in newer EOS cameras. See SetOwnerName .· Added support for Delphi XE.· Corrected the interpretation of the PictureType parameter in the RemoteGetPicture method.

Version 6.2

· Added support for the EOS Kiss X4/EOS REBEL T2i/EOS 550D.· Repaired a few memory leaks.· Clarification that TCamRemote is a 32 bits component. For details see section Support for Windows

7 .

Version 6.1

· Added support for the EOS 7D / EOS-1D Mark IV.· Clarified that no new PowerShot cameras will have remote capability. Canon has removed that

functionality from the camera. The latest PowerShot cameras with remote capability is the G10 andthe SX110 IS.

· Method GetBodyID corrected in the ActiveX version of TCamRemote.

Version 6.0 (release 3)

· Added support for Delphi 2010.

Version 6.0 (release 2)

· Added support for Windows 7. All previous versions of TCamRemote that supported Microsoft Vistaalso supports Windows 7.

Version 6.0

· Added support for EOS Kiss X3/EOS REBEL T1i /EOS 500D.· Added a new product. The TCamRemote ActiveX source code version.· Added new EOS viewfinder methods, RemoteSetViewfinderAutofocus (to set auto focus),

RemoteSetViewfinderDriveLens (to set drive mode) and RemoteSetViewfinderWhitebalance(to set white balance).

· Problems when setting time in EOS cameras solved. The problem was that TCamRemote set thetime one hour wrong at daylight saving.

Version 5.9

· Problems with exceptions thrown from the viewfinder threads in TCamRemote resolved. Theseexceptions will not be thrown anymore. The most typical situation this occurs is when anEOS-camera is removed from the USB-connection without gracefully close the connection fromTCamRemote.

· Added a possibility to select thread model (TCamRemote or Canon) for the viewfinder event. Fordetails see the RemoteStartViewfinder method and the OnViewfinderEvent event.

68

78

72

77

68

66

67

79

79

77

68

100

73 75

89

62

7

52

77

78 79

87 96

Page 25: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 18

© 2019 Alkenius Systems

Version 5.8

· Problems with the 50D and 5DMkII cameras found in TCamRemote 5.7 resolved.

Version 5.7 (release 3)

· Problems with the 5.7 version found related with the 50D and 5DMkII cameras. These camera getsbroken if used with TCamRemote version 5.7. Do NOT use TCamRemote 5.7 with those cameras.This problem will be resolved in TCamRemote version 5.8.

Version 5.7 (release 2)

· Added a RemoteTemplateVB.NET-VS2008 template for Visual Basic 2008 in the TCamRemoteActiveX version.

Version 5.7

· Added support for PowerShot SX110 and PowerShot G10.· Added support for EOS 50D / EOS 5D Mark II.· Corrected the RAW-development function.

Version 5.6 (release 2)

· Added support for Delphi 2009.

Version 5.6

· The RemoteEnd and RemoteStopViewfinder and method closes the connection with thecamera, but could in some cases (specially if the USB-cable was removed from the camera) throwexceptions that there was an error at disconnect. The method has been changed to never throw anyexception related to camera events.

· Correction in the GetBodyID method. The method does not work with any PowerShot camera. Itonly works for EOS-cameras.

· Added a new template (MultiCamServer/MultiCamClient), that demonatrstes how mutiple camerascan be handled at once. See details in the Handle several cameras section.

Version 5.5

· Added support for the EOS DIGITAL REBEL XS/ 1000D/ KISS F. Updated redist files (TCamRemote runtime files ). Update project using TCamRemote with these new .dll files.

· Added a new method of viewfinder files using memory stream in the ActiveX version. The filetransfer method remains. Added parameter CallbackMethod to RemoteStartViewfinder to setwhich method to use. Also added ViewfinderDataAddress and ViewfinderSize to the OnViewfinderEvent for transfer of viewfinder picture using memory stream.

· The Disconnect method closes the connection with the camera, but could in some cases(specially if the USB-cable was removed from the camera) throw exceptions that there was an errorat disconnect. The method has been changed to never throw any exception related to cameraevents.

Version 5.4

· Added support for EOS 1Ds Mark III and EOS Kiss Digital X2/450D/REBEL Xsi.· PowerShot cameras (which Canon states supports Microsoft Vista e.g. S3 IS, S5 IS, G7, G9, A640,

SX100 IS) are supported in Microsoft Vista by TCamRemote, if the application using TCamRemoteis run in WinXP compatibility mode, see section Support for Microsoft Vista .

Version 5.3

· Changed the handling of events triggered by TCamRemote. The events are now triggeredsynchronized with the thread that creates it. The events can be triggered in 50Hz as a maximum.This makes it possible to update e.g. GUI components within the thread. Previously the events weretriggered by the Canon drivers, that are executed in another thread than the application thread,forcing the user to queue messages from the Canon thread to the main thread. This improvement inevent handling gains performance when handling live viewfinder pictures, since these are notnecessary to queue or to use semaphores.

Version 5.2

· Added support for PowerShot G9 and PowerShot SX100 IS.

24

60 88

52

37

42

87

96

51

7

Page 26: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote19

© 2019 Alkenius Systems

Version 5.1 (release 2)

· Added support for EOS-40D, without changing anything within TCamRemote 5.1. The only update isthis manual.

Version 5.1

· Added support for Delphi 2007· Added support for PowerShot S5 IS.· Added support for the new EOS-1D Mark III camera. New eos-dll redist files.· Added electronic viewfinder (EVF) functionality to EOS-cameras. Currently only the EOS-1D Mark III

camera supports that function.· Added a check for consistency in the runtime dll-files , supplied from Canon.· Fixed problems with handling of viewfinder pictures in the ActiveX version. The user is not

responsible to delete any intermediate viewfinder jpg-pictures anymore. TCamRemote will do thisautomatically in the RemoteStopViewfinder method.

· Changed the behaviour of event OnViewfinderEvent in the ActiveX version. The filename is notguaranteed to be unique, instead the filename are recycled. The user is not responsible to delete theintermediate viewfinder jpg-files anymore.

· Added EOSViewfinderRefreshInterval property.· Added Version property.

Version 5.0

· Fixed a problems related to handle several connected PowerShot cameras. The connection to thefirst PowerShot camera did work, but the connection to a second PowerShot camera of newermodel failed.

· Added a policy regarding upgrade of TCamRemote, see section Evaluation, support and upgrade ofTCamRemote .

· Added support for Microsoft Vista for EOS-camera, see section Support for Microsoft Vista .· Removed support for old EOS.cameras (the EOS-OLD-DLL).

Version 4.10

· Fixed a problem related to creation and freeing of memory within the TCamRemote component. TheTCamRemote component can now be dynamically created after freeing another TCamRemotecomponent without errors.

· Added information that it is possible to handle several cameras of the same mode, using multipleinstances of a program.

Version 4.9

· Added a RemoteTemplateVB template for Visual Basic 6 in the TCamRemote ActiveX version.· Changed the Event parameter to EventNum in the OnEvent and OnRemoteEvent events in

the TCamRemote ActiveX version, since Event is a reserved word in Visual Basic.

Version 4.8

· Added the RemoteGetCameraCacheParameters in the TCamRemote ActiveX version.RemoteGetCameraCacheParameters is used when reading remote parameters from the cameraand must be used before using RemoteGetRemoteParams. Before this change each call toRemoteGetRemoteParams resulted in reading of all remote parameters from the camera for eachparameter requested, which is a slow operation if many remote parameters are read. InsteadRemoteGetCameraCacheParameters reads and stores the camera remote parameters and theRemoteGetRemoteParams method uses that saved data preventing unnecessary read of cameraparameter from the camera.

· Added RemoteSetRemoteParams_AvTvImageMode in the TCamRemote ActiveX version toimprove performance when setting Av and Tv remote parameter values to the camera.

Version 4.7

· Resolved problem to set AV/TV values in newer PowerShot cameras (e.g. S3 IS, A620, A640, S80and G7) in the TCamRemote ActiveX version.

Version 4.6

42

88

96

42

43

4

7

24

91 92

Page 27: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 20

© 2019 Alkenius Systems

· Resolved problem "TCamRemote ActiveX causes raised exception in *.ocx when starting a run inVisual Basic". See Mantis 78.

· Added support for the PowerShot G7 and A640 cameras.· Added information in the manual about that the events for TCamRemote are executed in another

thread than the main application thread. This is of imoprtans when handling non-thread safe objectswithing these events.

· Resolved problem "The RemoteTemplate crashes when using the EOS 400D". See Mantis 79.

Version 4.5

· The TCamRemote ActiveX version created.· The GetFirmwareVersion method removed, since it caused several unknown raised exceptions.· The sharpness remote parameter is correctly set by TCamRemote. The high and low values were

previuosly mixed by mistake. See Mantis 76.

Version 4.4

· Added support for the EOS 400D camera. New eos-dll redist files are included. See Mantis 71. · Added RemoteGetNumberOfAvailableShots method. See Mantis 58. · Added DriveMode, AFMode, ColorSpace, WhiteBalanceShift remote parameters, mainly supported

by EOS-DLL and newer EOS-cameras. See Mantis 59.· Resolved problem to set AV/TV values in newer PowerShot cameras (e.g. S3 IS, A620 and S80).

See Mantis 57.· Added the CacheRemoteParamDir parameter in the RemoteStart method, making it possible to

cache supported remote parameters. These cached remote parameters can then be used instead ofprobing the camera at each start-up, decreasing the time when starting remote mode to nearlynothing compared with up to 10 seconds. See Mantis 61.

· Added information in this manual about that PowerShot cameras always starts in 'Auto' mode. Thecamera mode set by the knobs on the camera does not have any affect, instead camera mode mustalways be set by software.

· Added support for the DriveMode (10 and 2 second self timer) remote parameters for newerPowerShot cameras (e.g. S3 IS, A620 and S80). See Mantis 63.

· Added support for the AF Focusing Mode remote parameter for newer PowerShot cameras (e.g. S3IS, A620 and S80). See Mantis 64.

· Added support for the AF Assist Light remote parameter for newer PowerShot cameras (e.g. S3 IS,A620 and S80). See Mantis 65.

· Added support for reading body id for newer PowerShot cameras (e.g. S3 IS, A620 and S80). SeeMantis 66.

· Temporary files and intermediate files are now stored in users temporary directory instead ofprogram directory, which could be write protected. See Mantis 60.

· Resolved problem "Not possible to disconnect/connect with EOS 30D". See Mantis 69.· Memory leakage tests performed. A few small issues were resolved. See Mantis 49.· Source code quality checked for e.g. name clashes of Delphi identifiers (e.g. Time, Name). See

Mantis 70.· Resolved problem "TCamRemote precompiled version will not compile if TRegWare component is

installed". See Mantis 52.· Resolved problem "TCamRemote sometimes raises an exception when reading firmware version

from EOS-cameras". See Mantis 72.· Resolved problem "Error when setting time (at daylight time) in the camera". See Mantis 35.· Added the RemoteLoadCameraRemoteParams and RemoteSaveCameraRemoteParams

methods enabling storing and retrieving of camera remote parameters to file. See Mantis 74.

Version 4.3

· Solved problem with support in EOS-DLL for the 20D and 350D cameras, which causedTCamRemote to freeze when starting remote operations. See Mantis 54.

· Resolved problem "Exception is raised in the EOS-DLL Connect method In Delphi 6 and Delphi2006, but not Delphi 7". See Mantis 56.

· Added PictureStyle remote parameter, supported by newer EOS cameras (e.g. 5D and 30D). SeeMantis 37.

· Added support for taking RAW+JPEG pictures, instead of only RAW. Added CompQualityPic2RAWand ImageSizePic2RAW remote parameters. See Mantis 36.

62

80

70 73

Page 28: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote21

© 2019 Alkenius Systems

· Added GetFirmwareVersion method. See Mantis 55.

Version 4.2

· Updated all template application to guarantee that the CloseCameraEnumeration method iscalled if a call to CloseCameraEnumeration has been done. If CloseCameraEnumeration notis called the application will terminate with a crash. See Mantis 51.

Version 4.1

· Resolved problem "Not possible to get any events when a picture has been taken with a Powershotcamera". See Mantis 48.

Version 4.0

· Added new EOS-DLL interface and changed the old interface to EOS-OLD-DLL. The new EOS-DLLinterface adds support for several new EOS digital cameras (e.g. EOS 30D). See Mantis 30.

· Added support for the PowerShot S3-IS camera. See Mantis 46.· The EOS-DLL (but not EOS-OLD-DLL) interface supports new RAW development function.

FileFormatJPEG is added to FileFormatType making it possible to develop RAW-pictures toJPEG. Added ICCProfileFileName and JPEGQuality parameter to the DevelopRAWPicturemethod, making it possible to assign an ICC-profile for the developed picture and to setthe JPEGquality when developing JPEG-pictures. See Mantis 45.

· GetBodyID method added. See Mantis 43.· Added PictureType parameter in the RemoteGetPicture method.· NotifyRemoteEventValidType changed in OnRemoteEvent .· Added events in the Event parameter in the OnEvent callback method (added elements in

EventEnumType ).· Changed the RemoteTakePicture method from function to procedure.· Changes in the returned list of pictures in the OpenCameraCollection method, regarding RAW

pictures taken with RAW+JPEG.

Version 3.2

· Resolved problems when compiling TCamRemote source code with either EOSDLL or PSDLL (notboth at once). See Mantis 25.

· Increased the trial period to 60 days and removed the time tampering check. See Mantis 28.· Time trial functions are enabled/disabled using the new REGISTRATION_NEEDED compiler

switch. See Mantis 26.· ISO remote parameter is possible to set in 1/3 step. See Mantis 27.· Added camera card format functions using method FormatCameraCard . See Mantis 29.· Added RemoteAFLock method to set or unset camera AF lock during remote operations. See

Mantis 24.

Version 3.1

· Changed the trial function. The developer are granted a 30 days trial period from the time whereTCamRemote is used for the first time. This applies also to a user of a program which includes atrial version of TCamRemote. It is possible to enter registration data in the RegCode and RegNameVCL parameters and register TCamRemote.

· Fixed a potential problem when enumerating pictures using method OpenCameraCollection .· RAWJpegExists added to ImageDataType.· Added functions to get the embedded JPEG file stored in a RAW-picture using method GetPicture

.· Added functions to develop an embedded JPEG file or a thumbnail stored from a RAW-picture using

method DevelopRAWPicture .

Version 3.0

· Corrected problem with remote strobe handling, specially when handling Ixus cameras.· Corrected problem when remotely taking pictures that only are stored on EOS camera memory.· Improved setting of remote parameters for EOS cameras. TCamRemote tries to set each remote

parameter in up to five seconds, if the camera is busy doing something else.· Improved probing speed.· A string list of connected cameras is returned when enumerating connecting cameras using the

45

45 45

51

51

52

62

92

91

99

89

54

53

59

54

52

51

Page 29: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 22

© 2019 Alkenius Systems

OpenCameraEnumeration method.· The first camera has the number 0 when calling the Connect method.· Added feedback of battery status when calling the Connect method.· Added SetTimeInCamera method to make it possible to set date and time to a connected

camera.· Added parameter GetThumbnails to the OpenCameraCollection .· Fixed a potential problem with threads in the RemoteTemplate application, when receiving

viewfinder pictures from the camera. The VCLs must be updated within the main thread.· Added RAW-development methods (OpenRAWObject , CloseRAWObject ,

GetRAWDevelopmentParameters , SetRAWDevelopmentParameters , DevelopRAWPicture and OnRawDevelopEvent ) and events making it possible to convert RAW-pictures from

EOS-cameras to 8-bits or 16-bits TIFF and adjust some development parameters (e.g. whitebalancesetting).

· Shutter and aperture values are possible to set in 1/3 step interval instead of 1 step interval, seeRemoteFormatAVType and RemoteFormatTVType in CamDefines.pas.

· Added SetOwnerName method.· Added bulb shutter speed.· Added support for remote handling of S80 and A620. It is however not possible to get pictures from

the camera memory for these cameras.

Version 2.0

· Support for Delphi 2006 added.· Support to handle multiple cameras at once, if the cameras are of different models (e.g. a

PowerShot S40 a PowerShot S70 and a EOS 10D) added.· Additional EOS cameras supported (EOS 5D and EOS-1D Mark II N).· Corrected problems related to set/get ISO values to/from the camera.· Parameter WhiteBalanceKelvin added to the RemoteReleaseParametersType structure. The

parameters is used to set the Kelvin degrees, when shooting with manual whitebalance settings.

Version 1.4

· New event OnRemoteProbeParamEvent .· Event OnRemoteEvent changed to handle EOS cameras better.

RemoteEventCallbackReleaseImageReady added in RemoteEventCallbackType and parameterEventData added.

· The parameter SyncMode is removed from the RemoteTakePicture method, since that mode notis supported by all EOS cameras (newer than EOS 20D). All cameras do however support theasynchronized file transfer mode.

· Problems to support newer EOS cameras including EOS 20D solved.· Template application updated to support taking picture with the shutter while downloading a file

from the camera at the same time for EOS cameras.

Version 1.3.

· New PowerShot and EOS cameras supported.· Parameter ProbeRemoteParameters added to the RemoteStart method.· The following types have changed (more remote parameters added, but some items in the types

may have switched order). RemoteFormatQualityType, RemoteFormatSizeType,RemoteFormatShootingModeType, RemoteFormatWBType, RemoteFormatAFDistType. Thetemplate application has been updated to use those new remote parameters.

Version 1.2

· Changes in the documentation.

Version 1.1

· The VCL evaluation version is compiled using the latest update packs for Delphi 5, 6 and 7.· The VCL evaluation version for Delphi 2005 does not display any nag screen while the IDE is

running.

Version 1.0

· First version of TCamRemote.

56

46

46

90

54

57 45

53 90

51 92

89

100

95

92

89

80

Page 30: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote23

© 2019 Alkenius Systems

2.6 Installation ActiveX

Setup TCamRemote ActiveX

ActiveX Component (stored in the OCX directory): CamRemoteActiveXXControl1.ocx

The ocx-file must be registered using regsvr32.exe. It is very important to copy all files to the targetcomputer, before registering these files. Most setup toolkits have an option to automate this task. The ocx-file must increase their reference counts inHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs. Most setuptoolkits have options to perform this step automatically. Please note that administrative rights is required to execute regsvr32 in a cmd prompt in Windows 7,Windows 8 and Windows 10.

Runtime files (stored in the redist directory):Press this link for more information.

Remove the TCamRemote icon from the form during run-time:Set Visible property to false during runtime of an application to hide the TCamRemote ActiveX designicon on window forms.

2.7 Updating TCamRemote

Updating from TCamRemote 4.X to 5.X or from 5.0 to 5.1Please be aware that the TCamRemote runtime files files for EOS-cameras, which resides in theEOS-DLL redist directory, has been updated in the 5.0 and 5.1 version of TCamRemote. Whenupdating from any TCamRemote 4.X to 5.X or from 5.0 to 5.1, please remove all old redist files fromthe application directory and copy new files from the redist directory(s) into the application directory.Typical error messages when this not has been performed is: "EDSDK.DLL could not be loaded." or anerror message saying that a dll-file is of incorrect version. Add check for dll-version.

If you upgrade, you must also get new registration details from the owner of TCamRemote, since theregistration numbers are updated continuously.

2.8 Known problems

The ActiveX version includes PS-DLL and PS2-DLL interface for PowerShot support and EOS-DLLinterface for EOS support. The known problems stated below is written for the Delphi VCL version, butis also valid in most cases for the ActiveX version. The data type may differ though.

· If EOS cameras not are found in Windows 8 or Windows 10 there might be a problem with mediadrives. In Device Manager, do you see any other devices other than your camera under "PortableDevices"? If there are for example 4 removable media drives "SD, CF, etc.) that corresponded toan All-in-one Internal USB2.0 connector Card Reader. Each slot is shown as a drive letter. Disableall four drives by right clicking each one and choosing "Disable" Once that was complete plug thecamera back in and start TCamRemote. The camera should now fully recognized. Still the mediaslots can be used even with each drive being disabled. For more details see http://www.canonrumors.com/forum/index.php?topic=10820.25;wap2.

· If a "list index out of bounds" exception is raised from TCamRemote when handling long shootingof viewfinder, change to Canon threading model in the RemoteStartViewfinder method.

· In the EOS-DLL interface it is not possible to get thumbnails from remotely taken pictures. EventData.TypeOfPicture parameter will only be set to TypeOfPicturePicture (parameter Event setto RemoteEventCallbackReleaseImageReady) when the TCamRemote calls the OnRemoteEventcallback method. See Mantis 44.

· In the EOS-DLL interface it is only possible to get thumbnails and EXIF data from JPEG files orJPEG files embedded in RAW files stored on the camera card. For RAW-files EXIF andthumbnails will be set to nil. The thumbnail for JPEG pictures includes correct EXIF information,but the preview JPEG picture is incorrect and includes only a grey picture. See Mantis 42.

· The thumbnail picture is corrupt for pictures taken remote for the PowerShot S3 IS camera. It is

42

42

87

92

Page 31: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 24

© 2019 Alkenius Systems

unknown if the problem also resides in the PowerShot S5 IS. See Mantis 73.· The x10 viewfinder zoom does not work. The 5x viewfinder zoom does work.· If AFMode is set to manual for EOS cameras it is not thereafter possible to set any other AFMode.

Restart the camera in another AFMode before connecting it to the computer, if the camera islocked in manual mode.

· Set Visible property to false during runtime of an application to hide the TCamRemote ActiveXdesign icon on window forms.

· Do not copy the redist-files to the Windows system32 directory if you are running a 64-bits OS.The application using TCamRemote will freeze for some unknown reason. Use the applicationdirectory instead.

· TCamRemote only supports handling of one camera type at once (EOS, PowerShot generation 1,PowerShot generation 2). Still it is possible to connect multiple cameras of the same type at thesame time.

· The RAW development function for EOS are not supported as from TCamRemote 8.7. Thesefunction where removed from the Canon libraries by Canon.

EOS camera stock in "MF mode"If the EOS camera AFMode is set to "manual mode" and it thereafter not can be changed to and of theAF modes (the EOS camera is stuck in MF mode) there are two methods to resolve the problem.

Method 1:1. Remove the USB cable from the camera2. Remove the battery from the camera3. Set the lens to AF mode4. Insert the battery and start the camera5. Verify that the camera is still in MF mode in the camera menus.6. Go to the AF mode and select one of these mode e.g. "ONE SHOT"7. Verify that the camera now is in AF mode in "ONE SHOT" mode and is not locked in the MF mode

Method 2:1. Stop the camera and the program. Have the USB cable attached between the PC and camera.2. Set the lens to AF mode3. Start the camera and start the program using TCamRemote on the PC.4. Verify that the camera is still in MF mode in the camera menus.5. Start a connection with the camera from the program.6. Set the an AF mode (e.g. "ONE SHOT") remotely.7. Verify that the camera now is in AF mode in "ONE SHOT" mode and is not locked in the MF mode

Method 2 can use the RemoteTemplate application (supplied as a template with TCamRemote) - Start remote template application and connect the camera. - Press the "Start remote process" button. The camera connects with RemoteTemplate. - Switch to Parameters tab. Press the "Get camera settings". Then set AF mode to "One-shot AF" inParameters and then press "Set camera settings".

2.9 Template applications

RemoteTemplateVB in Visual Basic 6 and RemoteTemplateVB.NET-VS2008 for Visual Basic2008:The Visual Basic 6 RemoteTemplateVB and the Visual Basic 2008 RemoteTemplateVB.NET-VS2008projects are a small applications to demonstrate:- How to enumerate cameras- How to connect/disconnect to/from cameras- How to start/stop remote operations- How to set a few remote parameters- How to handle a few camera events- How to take pictures and receive them to the computer- How to handle the viewfinder

It does not demonstrate how probing of remote parameters are handled, and how to verify whichcamera parameters that can be set. Please read the comments in the source code for more

42

Page 32: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote25

© 2019 Alkenius Systems

information.

RemoteTemplate in Delphi:The RemoteTemplate Delphi application demonstrates how the TCamRemote component is used toset and get remote parameters, handles remote viewfinder and take pictures remotely.

When the checkbox "Use only supported parameters is checked, only supported remote parametersprobed when calling the RemoteStart method is showed in the Parameters tab. When not checkedall remote parameters are showed in the Parameters tab.

80

Page 33: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 26

© 2019 Alkenius Systems

Page 34: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote27

© 2019 Alkenius Systems

Page 35: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 28

© 2019 Alkenius Systems

Page 36: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote29

© 2019 Alkenius Systems

PictureTemplate:The PictureTemplate application lists pictures stored on the camera when the Connect button ispressed. Selected picture can be transferred to the computer pressing the Transfer button and deletedpressing the Delete button.

Page 37: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 30

© 2019 Alkenius Systems

MultiCamServer/MultiCamClient:The MultiCamServer/MultiCamClient applications demonstrates how to use TCamRemote to connectand handle several cameras at once.

Page 38: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote31

© 2019 Alkenius Systems

Page 39: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 32

© 2019 Alkenius Systems

Page 40: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote33

© 2019 Alkenius Systems

RawDevelopTemplate:

Page 41: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 34

© 2019 Alkenius Systems

Picture Template (FireMonkey version):

RemoteTemplate (FireMonkey version):

Page 42: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote35

© 2019 Alkenius Systems

Page 43: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 36

© 2019 Alkenius Systems

2.10 RAW development

It is possible to develop RAW pictures (both CRW and CR2 are supported) to either 8 or 16 bits TIFFpictures, but only for RAW pictures taken by EOS cameras.The TCamRemote component can also develop RAW-pictures to JPEG pictures and use ICC-profilesduring development.

Currently only one development parameter (whitebalance) are able to be set. In the future moreparameters will be added. The development parameters is used to override the parameters set by thecamera when the picture was taken.

Page 44: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote37

© 2019 Alkenius Systems

The following methods are used for RAW development:· OpenRAWObject· CloseRAWObject· GetRAWDevelopmentParameters· SetRAWDevelopmentParameters· DevelopRAWPicture · OnRawDevelopEvent

Test the RawDevelop template to get a hint of what is possible.

2.11 Handle several cameras

It is possible to handle multiple cameras at once using TCamRemote. One at a time or multiplecameras at once.

Handle several cameras at once:To achieve this the program that accesses the camera must be run using several instances. A typicalscenario of four cameras could be as follows. An client application is created namedHandleCameraProg. HandleCameraProg can connect to a camera and handle it remotely. A serverprogram is also created named ServeCameras, that can communicate with all instances ofHandleCameraProg. Four instances of HandleCameraProgr is started (by starting the program fourtimes) and each one connects to a camera:

HandleCameraProg instance 1 connects to camera 1.HandleCameraProg instance 2 connects to camera 2.HandleCameraProg instance 3 connects to camera 3.HandleCameraProg instance 4 connects to camera 4.

The ServeCameras program is started and identifies all HandleCameraProg instances. TheServeCameras program can then be used to send commands to all HandleCameraProg instances(.e.g. connect to the camera, set camera parameters, take a picture and the download the picture tothe PC).

This technique is demonstrated in the MultiCamControl server and client template application .

The template includes a server and a client. Below is a copy of the ReadMe.txt for the applications:

MultiCamControl server-----------------------------------MultiCamControl server, hereafter called server, is used to control allMulticamControl clients that connects to it. The server can handleany numbers of clients, but only the data (pictures and viewfinder data)for the first 4 connected clients will update the pictures form andthe viewfinder form.Since the clients uses TCP/IP to communicate the clients can resideon any computer, and not just the computer running the server.

When a client connects the Camera combobox gets an additional rowwith the camera model and the owner name of the camera. The owner nameis the only attribute that can separate mutiple cameras of the samemodel. When the user selects a camera in the camera combobox, theParameters tab is updated with supported remote paramaters, but to getthe remote paramaters the "Get camera settings" button must be pressed.All operation performed in the parameters tab is done on the selectedcamera. Also the set name operation.If the "Take picture" button is pressed of "Start Viewfinder" theseoperations are performed on all connected cameras.

Development Platform-----------------------------------The server was developed using Delphi 2007 and 2009 and the Indy TCP servers

57

45

53

90

51

92

24

24

Page 45: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 38

© 2019 Alkenius Systems

included in version 10.1 of the Indy components for Delphi.The client should be possible to compile using Delphi 6, 7, 2005 and 2006if the correct version of the Indy components is installed.-----------------------------------------------------------------------------------------------------------------------

MultiCamControl client-----------------------------------MultiCamControl client, hereafter called client, operates in two modes.

Execute MultiCamClient.exe without any start-up parameters:Functions: Searches for cameras mode and forks new clients to handle found cameras.The client starts up and searches for PowerShot and EOS cameras. If any suchcamera is found a fork (the client is started again) of the client is performedfor each camera, which means that each camera will have its own instanceof the client to communicate with.

Execute MultiCamClient.exe with two start-up parameters.Parameter 1: Either "EOS" or "PowerShot"Parameter 2: The number of the camera to connect to. The first has number 0.Functions: Handle the camera, connects to it and then connects to the server.The client will at start-up connect to the camera, start the remote processand then connect to the server. Camera identification is then sent to theserver. The client is then waiting for commands from the server, or ifthe user presses the shutter button is a picture taken and the picture sentto the server.

The client uses the MultiCamClient.ini, to set up the server host nameand port number.

Since the clients uses TCP/IP to communicate the clients can resideon any computer, and not just the computer running the server.

Development Platform-----------------------------------The client was developed using Delphi 2007 and 2009 and the Indy TCP clientsincluded in version 10.1 of the Indy components for Delphi.The client should be possible to compile using Delphi 6, 7, 2005 and 2006if the correct version of the Indy components is installed.-----------------------------------------------------------------------------------------------------------------------

2.12 Viewfinder description

Most PowerShot and EOS cameras can remotely display an electronic viewfinder picture duringremote operations. This section describes some key facts when using the viewfinder.

General description:The viewfinder functionality is based on that the camera sends .jpg picture continously. When theviewfinder operations is ongoing TCamRemote will for each viewfinder picture trigger the OnViewfinderEvent . With that event it is possible to download the viewfinder picture from thecamera and save it on e.g. the hard drive. The frame rate is quite limited and for PowerShot expect tobe about 20 Hz and for EOS about 15 Hz. However the pictures from PowerShot generation 1cameras are 320x240 and the PowerShot generation 2 and EOS much bigger and dependent oncamera model. For more details see OnViewfinderEvent .

Viewfinder for PowerShot generation 1 cameras:The PowerShot generation 1 cameras can handle viewfinder. The viewfinder is started using the RemoteStartViewfinder method, but first check if viewfinder mode is supported that can bereceived as parameters from RemoteStart method.The methods that PowerShot generation 1 cameras can use is limited to:

RemoteSetViewfinderOutputRemoteActivateViewfinderAuto

96

96

87

80

78

59

Page 46: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote39

© 2019 Alkenius Systems

Viewfinder for PowerShot generation 2 cameras:The PowerShot generation 2 cameras can handle viewfinder. The viewfinder is started using the RemoteStartViewfinder method, but first check if viewfinder mode is supported that can bereceived as parameters from RemoteStart method.The methods that PowerShot generation 2 can use is limited to:

RemoteGetViewfinderAutofocusInfoRemoteGetViewfinderAutofocusInfoFrame TBD check this???RemoteGetViewfinderAutoFocusModeRemoteGetViewfinderDepthOfFieldPreviewRemotePressShutterRemoteSetViewfinderAutofocusModeRemoteSetViewfinderDriveLensRemoteSetViewfinderDepthOfFieldPreview

Viewfinder for EOS cameras:The EOS cameras can handle viewfinder. The viewfinder is started using the RemoteStartViewfinder

method, but first check if viewfinder mode is supported that can be received as parameters fromRemoteStart method.The methods that EOS cameras can use is limited to:

RemoteActivateViewfinderAutoRemoteGetViewfinderAutofocusInfoRemoteGetViewfinderAutofocusInfoFrameRemoteGetViewfinderAutoFocusModeRemoteGetViewfinderDepthOfFieldPreviewRemoteGetViewfinderHistogramRemotePressShutterRemoteSetViewfinderAutofocusModeRemoteSetViewfinderDriveLensRemoteSetViewfinderDepthOfFieldPreviewRemoteSetViewfinderOutputRemoteSetViewfinderWhitebalanceRemoteSetViewfinderZoomRemoteSetViewfinderZoomPosition

Focus using EOS cameras:Focus during viewfinder operations can be done using two methods. Method 1: Lock focus. Call the RemoteActivateViewfinderAuto method with the EOSLockAFparameter set to true. The camera will enforce a focus and will then lock the focus. It is possible totake pictures with the focus locked and no refocus will be performed when taking pictures. Call RemoteActivateViewfinderAuto again with EOSLockAF set to false to unlock the focus.Method 2: Simulate that the shutter button is pressed halfways using the RemotePressShuttermethod. The camera will focus. When the shutter then either is completely pressed or off the focus isunlocked.

2.13 PowerShot G7X MkII

This section describes specific notes/instruction unique for the PowerShot G7X MkII camera

Prepare the camera for remote operation - update camera firmware:The firmware the camera has default do not support remote operations. Canon has developed aspecific firmware for this purpose. To enable remote operations the firmware located in CameraFiles\PowerShot_G7X_MkII\Firmware_for_SDK\PSG7XMK2SDK_1010.FI2must be written into the camera.Note that Canon nor the owner of TCamRemote takes no responsibility for the firmware updateprocess.When a camera has this firmware is it only possible to use the camera for remote operations withUSB. The camera might seem "dead" at first sight (e.g. trying to start the camera and take a picturewith it without a connection to a computer) but it will pop up in Windows when it is connected to a

87

80

66

67

68

68

72

77

78

77

87

80

59

66

67

68

68

68

72

77

78

77

78

79

79

79

59

59

72

Page 47: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Overview 40

© 2019 Alkenius Systems

computer with USB.The original Canon PowerShot firmware can be restored using the PSG7XMK2_FirmwareWriter tooldescribed below.To update the firmware follow the instruction written in PSG7XMK2_Firmware_Update_Procedure_EN.pdf supplied in the same folder as the firmware.

To restore the original camera firmware:Use the CameraFiles\PowerShot_G7X_MkII\FirmwareWriter_for_restore\PSG7XMK2_FirmwareWriter.exeto restore the camera.Note that Canon nor the owner of TCamRemote takes no responsibility for the firmware updateprocess.

Pictures taken remotely is written to camera memory card:This camera does not support that remote taken pictures is stored in the camera RAM. All picturestaken remotely is instead written into the camera memory. Pictures stored on the camera SD-card canbe downloaded during remote operations, by listening to the OnRemoteEvent and then use theRemoteGetCFPicture method.

Flash:The flash can be configured during remote operations. Extract the flash before remote operation andthen set RemoteParamStrobeSetting in the RemoteSetRemoteParams method to set flash on oroff.

RAW - CR2 format:When taking RAW pictures remotely the CR2 format is used. Also note when taking a picture withRAW + JPG two OnRemoteEvent occurs. The first is the event for the download of the CR2 andthe second for the JPG file.

RAW development is not supported:RAW development (supported by the EOS-SDK) is not supported by the PS2-DLL.

92

61

73

92

Page 48: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote

Part

III

Page 49: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 42

© 2019 Alkenius Systems

3 TCamRemote component

3.1 TCamRemote

TCamRemote enables applications to remotely handle a Canon PowerShot (generation 1 or 2) or EOSdigital camera.

Description:Use TCamRemote to connect to a PowerShot or EOS digital camera. With TCamRemote it is possibleto

· handle the remote viewfinder,· set and get remote parameters (e.g. ISO),· take pictures remotely and receive the picture to the computer,· list, get and delete pictures stored in the camera,· develop RAW pictures to TIFF and JPEG.

3.2 TCamRemote runtime files

The TCamRemote uses DLLs to interface the PowerShot and EOS cameras and to develop RAWpictures. The DLLs are stored in the redist directory defined by the LibraryFolder property.TCamRemote must reach the required DLLs to operate correctly, which requires that the DLLs eitherare copied to the directory defined by the LibraryFolder property..

Please note the following:Do not copy the redist-files to the Windows system32 directory or any directory included in the PATHenvironment variable. The application using TCamRemote will freeze for some unknown reason.

3.3 TCamRemote error handling

TCamRemote uses exceptions when errors occurs (e.g. when a request for connection to a camerafails). TCamRemote uses the ECamException class defined below:

UnitCamDefines

Syntax:ECamException = class(Exception);

The exception may include an error code and a textual interpretation of the error.

3.4 TCamRemote properties

3.4.1 List of properties in TCamRemote

EOSViewfinderRefreshIntervalLibraryFolderPS2ViewfinderRefreshIntervalRegCodeRegNameVersion

3.4.2 TCamRemote.EOSViewfinderRefreshInterval

Defines the interval in milliseconds between requests of viewfinder pictures from an EOS-camera. Thevalue is used when calling the RemoteStartViewfinder method. When set to 0 (which means thatno interval is set) the user can call the RemoteGetViewfinderImage method to manually request aviewfinder picture.

43

43

42

43

43

43

43

43

87

69

Page 50: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote43

© 2019 Alkenius Systems

Syntax:property EOSViewfinderRefreshInterval:integer

3.4.3 TCamRemote.LibraryFolder

The LibraryFolder defines the folder into which the TCamRemote runtime files resides . If this property is empty TCamRemote will search for runtime files in the application directoriey andsystem directories.Syntax:property LibraryFolder:string

3.4.4 TCamRemote.PS2ViewfinderRefreshInterval

Defines the interval in milliseconds between requests of viewfinder pictures from an PowerShotgeneration 2 camera. The value is used when calling the RemoteStartViewfinder method. Whenset to 0 (which means that no interval is set) the user can call the RemoteGetViewfinderImagemethod to manually request a viewfinder picture.

Syntax:property PS2ViewfinderRefreshInterval:integer

3.4.5 TCamRemote.RegCode

When purchasing the TCamRemote component, registration details are sent to the purchaser. Thedata are entered into the RegName (RegNameOCX in the ActiveX version) and RegCode(RegCodeOCX in the ActiveX version) properties which defines the owner name and the serialnumber. When the registration data is entered correctly the TCamRemote will unlock the evaluationcopy.

Syntax:property RegCode:string

3.4.6 TCamRemote.RegName

When purchasing the TCamRemote component, registration details are sent to the purchaser. Thedata are entered into the RegName (RegNameOCX in the ActiveX version) and RegCode(RegCodeOCX in the ActiveX version) properties which defines the owner name and the serialnumber. When the registration data is entered correctly the TCamRemote will unlock the evaluationcopy.

Syntax:property RegName:string

3.4.7 TCamRemote.Version

The version property is read-only and defines the version of the TCamRemote component (e.g. 5.1).

Syntax:property Version:single

3.5 TCamRemote methods

3.5.1 List of methods in TCamRemote

CloseCameraCollectionCloseCameraEnumerationCloseRAWObjectConnectConnect_CameraModelConnect_CameraModelNameConnect_OwnerNameConnect_Battery_BatterySourceConnect_Battery_BatteryStatusDeletePicture

42

87

69

45

45

45

46

49

49

49

50

50

50

Page 51: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 44

© 2019 Alkenius Systems

DevelopRAWPictureDisconnectGetBodyIDGetPictureGetRAWDevelopmentParametersFormatCameraCardOpenCameraCollectionOpenCameraCollection_GetNrOfPicturesOpenCameraCollection_NameOfImageOpenCameraCollection_GetThumbnailOpenCameraEnumerationOpenCameraEnumeration_GetPowerShotNrOpenCameraEnumeration_GetEOSNrOpenCameraEnumeration_GetModelOpenRAWObjectOpenRAWObject_GetRemoteParamSupportedRemoteActivateViewfinderAutoRemoteAFLockRemoteBULBModeRemoteEndRemoteEndMovieRecordingRemoteGetCameraCacheParametersRemoteGetCFPictureRemoteGetNumberOfAvailableShotRemoteGetMovieRemoteGetPictureRemoteGetPowerZoomRemoteGetRemoteParamsRemoteGetRemoteParams_PictureStyleRemoteGetRemoteParams_WhitebalanceShiftRemoteGetViewfinderAutofocusInfoRemoteGetViewfinderAutofocusInfoFrameRemoteGetViewfinderAutoFocusModeRemoteGetViewfinderDepthOfFieldPreviewRemoteGetViewfinderHistogramRemoteGetZoomPos_CurrentZoomPosRemoteGetZoomPos_MaxOpticalZoomPosRemoteGetZoomPos_MaxZoomPosRemoteLoadCameraRemoteParamsRemotePowerZoomTeleRemotePowerZoomWideRemotePowerZoomStopRemotePressShutterRemoteSaveCameraRemoteParamsRemoteSetRemoteParamsRemoteSetRemoteParams_AvTvImageModeRemoteSetRemoteParams_ImageQualityRemoteSetRemoteParams_PictureStyleRemoteSetRemoteParams_WhitebalanceShiftRemoteSetViewfinderAutofocusModeRemoteSetViewfinderDriveLensRemoteSetViewfinderDepthOfFieldPreviewRemoteSetViewfinderOutputRemoteSetViewfinderWhitebalanceRemoteSetViewfinderZoomRemoteSetViewfinderZoomPositionRemoteSetZoomPosRemoteStartRemoteStart_DoSupportZoomRemoteStart_DoSupportPowerZoomRemoteStart_DoSupportShootingPara

51

51

52

52

53

53

54

55

55

55

56

56

57

57

57

58

59

59

59

60

60

61

61

62

62

62

63

64

65

66

66

67

68

68

68

69

70

70

70

71

72

71

72

73

73

74

75

75

76

77

78

77

78

79

79

79

80

80

82

82

83

Page 52: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote45

© 2019 Alkenius Systems

RemoteStart_DoSupportViewfinderRemoteStart_ReqViewfinderOffWhenShootingRemoteStart_DoSupportAfLockUnlockRemoteStart_GetRemoteParamSupportedRemoteStartMovieRecordingRemoteStartViewfinderRemoteStopViewfinderRemoteSupportedRemoteTakePictureSetOwnerNameSetRAWDevelopmentParametersSetTimeInCamera

3.5.2 TCamRemote.CloseCameraCollection

Closes the volume for pictures on the camera and frees the data structure returned from the OpenCameraCollection method.

Syntax:procedure CloseCameraCollection;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.A successful call to the OpenCameraCollection method, to list pictures on the camera.

Description:The CloseCameraCollection method closes the volume on the camera, which is used to handlepictures in the camera.

If any errors occurs an ECamException exception will be raised.

3.5.2.1 CloseCameraCollection example

//The user has pressed the disconnect buttonprocedure TFormMain.ButtonDisconnectClick(Sender: TObject);begin //Close the picture collection CamRemote.CloseCameraCollection; CamRemote.Disconnect;end;

3.5.3 TCamRemote.CloseCameraEnumeration

Closes communication to enumerated connected cameras.

Syntax:procedure CloseCameraEnumeration;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

Description:The CloseCameraEnumeration method closes the communication to connected cameras and freesresources used by the TCamRemote components.

If any errors occurs an ECamException exception will be raised.

3.5.4 TCamRemote.CloseRAWObject

Closes the RAW object.

Syntax:procedure CloseRAWObject;

83

84

84

84

86

87

88

88

89

89

90

90

54

56

46

54

42

56

42

Page 53: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 46

© 2019 Alkenius Systems

Prerequisite:The RAW object has been created using the OpenRAWObject method.

Description:The CloseRAWObject method closes RAW object and frees the resources used by the TCamRemotecomponent for RAW development.

If any errors occurs an ECamException exception will be raised.

3.5.5 TCamRemote.Connect

Connects to a PowerShot or EOS camera.

Syntax:procedure Connect(CameraType : CamModType ; CameraNumber : integer);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

Description:The Connect method tries to establish a connection to a PowerShot or EOS camera. The connectionto the camera will remain until the Disconnect method is called or the camera is disconnected fromthe computer (the USB cable is ejected or battery level very critical).After a successful connection

· the OnEvent event is called, when a camera event has occurred.·

Use the Connect_XXX methods to get information about the connected camera.

Parameter:- CameraType: Sets the camera type (PowerShot or EOS) to connect to.- CameraNumber: The number of the camera to connect to. The first camera connected has thenumber 0. The OpenCameraEnumeration_XXX methods can be used to get information about theconnected camera before connecting to one.

Please note the following:

· It is possible to connect to several PowerShot and EOS cameras at once (using threads and severalTCamRemote objects or multiple instances of a program). For more information see chapter how tohandle several cameras at once .

See also:Connect_CameraModel , Connect_CameraModelName , Connect_OwnerName ,Connect_Battery_BatterySource , Connect_Battery_BatteryStatus

If any errors occurs an ECamException exception will be raised.

57

42

99

56

51

91

37

49 49 49

50 50

42

Page 54: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote47

© 2019 Alkenius Systems

3.5.5.1 Connect example

//Procedure to connect to a cameraprocedure TFormRemote.ConnectToCamera;var i : integer; camera_found : boolean;begin //See if already conected if (not mConnToCamera) then begin try Log('CamRemote.OpenCameraEnumeration'); CamRemoteActiveX.OpenCameraEnumeration; camera_found := false; if ((CamRemoteActiveX.OpenCameraEnumeration_GetPowerShotNr = 0) and (CamRemoteActiveX.OpenCameraEnumeration_GetEOSNr = 0) and (CamRemoteActiveX.OpenCameraEnumeration_GetPowerShotGen2Nr = 0)) then begin raise ECamException.Create('No camera is connected to the computer'); end; FormSelectCamera.ModalResult := mrOK; FormSelectCamera.ComboBoxCameras.Items.Clear; //Are there any PowerShot cameras connected? if (CamRemoteActiveX.OpenCameraEnumeration_GetPowerShotNr > 0) then begin camera_found := true; if (CamRemoteActiveX.OpenCameraEnumeration_GetPowerShotNr > 1) then begin //Select which camera to connect to for i := 0 to (CamRemoteActiveX.OpenCameraEnumeration_GetPowerShotNr - 1) do begin FormSelectCamera.ComboBoxCameras.Items.Add(CamRemoteActiveX.OpenCameraEnumeration_GetModel(Ord(CamModPowerShot), i)); end; FormSelectCamera.ComboBoxCameras.ItemIndex := 0; if (FormSelectCamera.ShowModal = mrOK) then begin Log('CamRemote.Connect. Para1=CamModPowerShot' + ' Para2=' + IntToStr(FormSelectCamera.ComboBoxCameras.ItemIndex)); CamRemoteActiveX.Connect(Ord(CamModPowerShot), FormSelectCamera.ComboBoxCameras.ItemIndex); end; end else begin //Only one PowerShot camera connected. Select that camera Log('CamRemote.Connect. Para1=CamModPowerShot Para2=0'); CamRemoteActiveX.Connect(Ord(CamModPowerShot), 0); end; end; //Are there any EOS cameras connected? if ((CamRemoteActiveX.OpenCameraEnumeration_GetEOSNr > 0) and (not camera_found)) then begin //Connect to EOS camera if (CamRemoteActiveX.OpenCameraEnumeration_GetEOSNr > 1) then begin //Select which camera to connect to for i := 0 to (CamRemoteActiveX.OpenCameraEnumeration_GetEOSNr - 1) do begin FormSelectCamera.ComboBoxCameras.Items.Add(CamRemoteActiveX.OpenCameraEnumeration_GetModel(Ord(CamModEOS), i)); end; FormSelectCamera.ComboBoxCameras.ItemIndex := 0; if (FormSelectCamera.ShowModal = mrOK) then begin Log('CamRemote.Connect. Para1=CamModEOS' + ' Para2=' + IntToStr(FormSelectCamera.ComboBoxCameras.ItemIndex)); CamRemoteActiveX.Connect(Ord(CamModEOS), FormSelectCamera.ComboBoxCameras.ItemIndex); end; end else begin //Only one EOS camera connected. Select that camera Log('CamRemote.Connect. Para1=CamModEOS, Para2=0'); CamRemoteActiveX.Connect(Ord(CamModEOS), 0); end; end; //Are there any PowerShot Gen 2 cameras connected? if ((CamRemoteActiveX.OpenCameraEnumeration_GetPowerShotGen2Nr > 0) and (not camera_found)) then begin //Connect to PowerShot Gen 2 camera if (CamRemoteActiveX.OpenCameraEnumeration_GetPowerShotGen2Nr > 1) then

Page 55: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 48

© 2019 Alkenius Systems

begin Log('Multiple PowerShot Gen2 cameras found. Ask user to select one.'); //Select which camera to connect to for i := 0 to (CamRemoteActiveX.OpenCameraEnumeration_GetPowerShotGen2Nr - 1) do begin FormSelectCamera.ComboBoxCameras.Items.Add(CamRemoteActiveX.OpenCameraEnumeration_GetModel(Ord(CamModPowerShotGen2), i)); end; FormSelectCamera.ComboBoxCameras.ItemIndex := 0; if (FormSelectCamera.ShowModal = mrOK) then begin Log('CamRemote.Connect. Para1=CamModPowerShotGen2' + ' Para2=' + IntToStr(FormSelectCamera.ComboBoxCameras.ItemIndex)); CamRemoteActiveX.Connect(Ord(CamModPowerShotGen2), FormSelectCamera.ComboBoxCameras.ItemIndex); end; end else begin //Only one PowerShot Gen 2 camera connected. Select that camera Log('CamRemote.Connect. Para1=CamModPowerShotGen2, Para2=0'); CamRemoteActiveX.Connect(Ord(CamModPowerShotGen2), 0); end; end; if (FormSelectCamera.ModalResult <> mrOK) then begin Exit; end; mCameraInfo.CameraModel := CamModType(CamRemoteActiveX.Connect_CameraModel); mCameraInfo.CameraModelName := CamRemoteActiveX.Connect_CameraModelName; mCameraInfo.OwnerName := CamRemoteActiveX.Connect_OwnerName; mCameraInfo.FirmwareVersion := CamRemoteActiveX.Connect_FirmwareVersion; mCameraInfo.Battery.BatterySource := BatterySourceType(CamRemoteActiveX.Connect_Battery_BatterySource); mCameraInfo.Battery.BatteryStatus := BatteryStatusType(CamRemoteActiveX.Connect_Battery_BatteryStatus); Log('CameraInfo.CameraModel = ' + IntToStr(Ord(mCameraInfo.CameraModel))); Log('CameraInfo.CameraModelName = ' + mCameraInfo.CameraModelName); Log('CameraInfo.OwnerName = ' + mCameraInfo.OwnerName); //Update battery status LabelBatterySource.Caption := '-'; case mCameraInfo.Battery.BatterySource of BatterySourceAC : LabelBatterySource.Caption := 'AC'; BatterySourceLitium : LabelBatterySource.Caption := 'Litium'; BatterySourceNiMH : LabelBatterySource.Caption := 'NiMH'; BatterySourceNiCD : LabelBatterySource.Caption := 'NiCD'; BatterySourceAlMN : LabelBatterySource.Caption := 'AlMN'; end; ProgressBarBattery.Position := 1; case mCameraInfo.Battery.BatteryStatus of BatteryStatusNormal : ProgressBarBattery.Position := 5; BatteryStatusWeak : ProgressBarBattery.Position := 3; BatteryStatusSafetyLow : ProgressBarBattery.Position := 2; end; //Update BodyID Log('CamRemote.GetBodyID'); LabelBodyIDValue.Caption := CamRemoteActiveX.GetBodyID; //Updates firmware if (mCameraInfo.FirmwareVersion <> '') then begin LabelFirmwareVersion.Caption := mCameraInfo.FirmwareVersion; end; //Update owner name Log('Updates owner name'); EditOwnerName.Text := mCameraInfo.OwnerName;

StatusBar.SimpleText := 'Camera is connected'; mConnToCamera := true; Log('Camera model=' + mCameraInfo.CameraModelName); Log('Camera name=' + mCameraInfo.OwnerName); Log('Camera connected'); except on E:exception do begin Log('ConnectToCamera. Exception=' + E.Message); StatusBar.SimpleText := 'Connection to camera failed'; mConnToCamera := false;

Page 56: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote49

© 2019 Alkenius Systems

raise; end; end; end;end;

3.5.6 TCamRemote.Connect_CameraModel

Returns the connected camera type (e.g. PowerShot or EOS).

Syntax:function Connect_CameraModel : CamModType ;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

Description:-

See also:Connect , Connect_CameraModelName , Connect_OwnerName ,Connect_Battery_BatterySource , Connect_Battery_BatteryStatus

If any errors occurs an ECamException exception will be raised.

3.5.7 TCamRemote.Connect_CameraModelName

Returns the connected camera model name (e.g. "PowerShot S70").

Syntax:function Connect_CameraModelName : ShortString;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

Description:-

See also:Connect , Connect_CameraModel , Connect_OwnerName , Connect_Battery_BatterySource

, Connect_Battery_BatteryStatus

If any errors occurs an ECamException exception will be raised.

3.5.8 TCamRemote.Connect_OwnerName

Returns the connected camera owner name.

Syntax:function Connect_OwnerName: ShortString;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

Description:Returns the connected camera owner name. The owner name can be set in the camera by using the SetOwnerName method.

See also:Connect , Connect_CameraModel , Connect_CameraModelName , Connect_Battery_BatterySource , Connect_Battery_BatteryStatus

If any errors occurs an ECamException exception will be raised.

99

56

46 49 49

50 50

42

56

46 49 49

50 50

42

56

89

46 49 49

50 50

42

Page 57: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 50

© 2019 Alkenius Systems

3.5.9 TCamRemote.Connect_Battery_BatterySource

Returns the connected camera battery type (e.g. NiMH and Lithium).

Syntax:function Connect_Battery_BatterySource : BatterySourceType ;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

Description:-

See also:Connect , Connect_CameraModel , Connect_CameraModelName , Connect_OwnerName ,Connect_Battery_BatteryStatus

If any errors occurs an ECamException exception will be raised.

3.5.10 TCamRemote.Connect_Battery_BatteryStatus

Returns the connected camera battery status (e.g. if the power in the battery is normal or weak).

Syntax:function Connect_Battery_BatteryStatus : BatteryStatusType ;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

Description:-

See also:Connect , Connect_CameraModel , Connect_CameraModelName , Connect_OwnerName ,Connect_Battery_BatterySource

If any errors occurs an ECamException exception will be raised.

3.5.11 TCamRemote.DeletePicture

Deletes a picture in the camera.

Syntax:procedure DeletePicture(NrInList : integer);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.A successful call to the OpenCameraCollection method, to list pictures on the camera.

Description:The DeletePicture method deletes a picture in the camera.

Parameter:- NrInList: The array element in ImageList that is to be deleted in the camera.

If any errors occurs an ECamException exception will be raised.

3.5.11.1 DeletePicture example

procedure TFormMain.ButtonDeleteClick(Sender: TObject);begin if (ListBox.ItemIndex <> -1) then begin

99

56

46 49 49 49

50

42

99

56

46 49 49 49

50

42

56

46

54

42

Page 58: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote51

© 2019 Alkenius Systems

CamRemoteActiveX.DeletePicture(ListBox.ItemIndex); //Update the list of pictures, since mImageList has been modified UpdateListBox; end else begin MessageDlg('No picture selected to delete', mtInformation, [mbOK], 0) end;end;

procedure TFormMain.UpdateListBox;var i : integer;begin //Update the list of pictures on the form ListBox.Items.Clear; for i := 0 to CamRemoteActiveX.OpenCameraCollection_GetNrOfPictures - 1 do begin ListBox.Items.Add(CamRemoteActiveX.OpenCameraCollection_NameOfImage(i)) end;end;

3.5.12 TCamRemote.DevelopRAWPicture

Develops a RAW object to a TIFF or JPEG file.

Syntax:procedure DevelopRAWPicture(OutFileName : ShortString; FileFormat : FileFormatType; BitsPerPixel : BitsPerPixelType; ICCProfileFileName : ShortString; JPEGQuality : integer);

type FileFormatType = (FileFormatTIFF, FileFormatThumbnail, FileFormatJPEGInRaw, FileFormatJPEG);

type BitsPerPixelType = (BitsPerPixel24Bits, BitsPerPixel48Bits);

Prerequisite:The RAW object has successfully been created using the OpenRAWObject method.

Description:The DevelopRAWPicture method creates either

· a TIFF file in 8 or 16 bits colours.· a JPEG picture.

The filename of the file is set by the OutFileName parameter.The OnRawDevelopEvent is not used during development of the destination file.An ICC-profile may be assigned to be used when developing the RAW-file to the destination file.EXIF-information is stored in the developed file, including information about the optional ICC-profile.

Parameter:- OutFileName: The name of the TIFF file to create.- FileFormat: The requested file to develop. Either a TIFF, a thumbnail or the JPEG embedded in theRAW-picture.- BitsPerPixel: The number of bits per colour per pixel. Only valid when FileFormat is set toFileFormatTIFF.- ICCProfileFileName: The filename of the ICC-profile that shall be used when creating the developedfile. If no ICC-profile is wanted, set the parameter to ''. If no ICC-profile is set, the sRGB profile will beused.- JPEGQuality: Sets the JPEG quality for the developed pictures. Valid values are 1 (lowest quality) to10 (highest quality). Is only valid if the FileFormat parameter is set to FileFormatJPEG.

If any errors occurs an ECamException exception will be raised.

3.5.13 TCamRemote.Disconnect

Disconnects from the connected camera.

57

92

42

Page 59: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 52

© 2019 Alkenius Systems

Syntax:procedure Disconnect;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.

Description:The Disconnect method disconnects the camera from the TCamRemote object. When disconnectedno more events from the camera will occur, therefore the OnEvent event will not be calledanymore.

3.5.14 TCamRemote.GetBodyID

Returns the body id (camera serial number) stored in the camera.

Syntax:function GetBodyID : ShortString;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.

Description:Returns the body id (camera serial number) stored in the camera. If no body id can be read, 0 isreturned from this method.

Please note the following:

· This method does only work for EOS-cameras. BodyID can not be read from PowerShot cameras.

If any errors occurs an ECamException exception will be raised.

3.5.15 TCamRemote.GetPicture

Copies a picture from the camera to a file on the computer.

Syntax:procedure GetPicture(NrInList : integer; GetJPEGInRaw : boolean; FileName : ShortString);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.A successful call to the OpenCameraCollection method, to list pictures on the camera.

Description:The GetPicture method copies the picture selected by the NrInList parameter to the file specified in theFileName parameter.The OnGetPictureEvent is used during transfer.

Parameter:- NrInList: The array element in ImageList (received from method OpenCameraCollection ) that isto be copied to the computer.- GetJPEGInRaw: If set to enable GetPicture will download the embedded JPEG-picture from aRAW-picture stored in the camera. If not set the JPEG or RAW-picture itself will be downloaded fromthe camera. This parameter is not currently used.- FileName: The filename for the copied file on the computer.

If any errors occurs an ECamException exception will be raised.

56

46

91

56

46

42

56

46

54

91

54

42

Page 60: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote53

© 2019 Alkenius Systems

3.5.15.1 GetPicture example

procedure TFormMain.ButtonTransferClick(Sender: TObject);begin if (ListBox.ItemIndex <> -1) then begin //Get JPEG in RAW picture. if (CamRemoteActiveX.OpenCameraCollection_RAWJpegExists(ListBox.ItemIndex)) then begin CamRemoteActiveX.GetPicture(ListBox.ItemIndex, true, ChangeFileExt(EditPCDir.Text + '\' +ListBox.Items[ListBox.ItemIndex], '.jpg')); end; CamRemoteActiveX.GetPicture(ListBox.ItemIndex, false, EditPCDir.Text + '\' + ListBox.Items[ListBox.ItemIndex]); end; ProgressBar.Position := 0;end;

//GetPictureEvent callback used during filetransfer to computerprocedure TFormMain.CamRemoteGetPictureEvent(PercentageDone: Integer);begin ProgressBar.Position := PercentageDone;end;

3.5.16 TCamRemote.GetRAWDevelopmentParameters

Gets the current RAW development parameters for the RAW object.

Syntax:function GetRAWDevelopmentParameters(RAWParamKind : TRAWParamType ) : integer;

Prerequisite:The RAW object has successfully been created using the OpenRAWObject method.

Description:This method gets the value for the RAW development parameter set in the RAWParamkindparameter. The returned value shall be interpreted as follows:RAWParamKind: Interpret asRAWParamWhiteBalanceSetting RemoteFormatWBTypeRAWParamWhiteBalanceKelvin Kelvin degrees.

Parameter:- RAWParamKind: The RAW development parameter to get value for.

If any errors occurs an ECamException exception will be raised.

3.5.17 TCamRemote.FormatCameraCard

Formats the camera memory card (e.g. CF- or SD-card).

Syntax:procedure FormatCameraCard;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.

Description:The camera card (CF- or SD-card) will be formatted. After the card is formatted it is empty and isimmediately ready to be used, even if the camera is in remote mode. It is not necessary to disconnectand the reconnect to the camera to store new pictures on the card.

If any errors occurs an ECamException exception will be raised.

106

57

100

42

56

46

42

Page 61: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 54

© 2019 Alkenius Systems

3.5.18 TCamRemote.OpenCameraCollection

Opens a picture volume on the camera and enumerates the pictures stored on the camera memory.

Syntax:procedure OpenCameraCollection(TempDir : ShortString; GetThumbnails : boolean);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.

Description:OpenCameraCollection opens a volume on the camera and searches for pictures stored on thecamera.

Please note the following:

· The EOS cameras are able to take a picture including both a RAW pictures with embedded JPEGpictures, e.g. "RAW + JPEG quality medium size large". The RAW and JPEG picture are separateimage items in the picture volume, with the same name but different file extension (e.g. CR2 forthe RAW and .JPG for the embedded JPEG picture).

Parameter:- TempDir: A temporary directory where TCamRemote can create temporary thumbnail files, whenpictures are searched in the camera.- GetThumbnails: If set thumbnails data will be included in the returned list of objects. Gettingthumbnails requires much time and may be time consuming.

See also:OpenCameraCollection_GetNrOfPictures , OpenCameraCollection_NameOfImage ,OpenCameraCollection_GetThumbnail

If any errors occurs an ECamException exception will be raised.

3.5.18.1 OpenCameraCollection example

//List all pictures on the camera CamRemoteActiveX.OpenCameraCollection(ExtractFileDir(ParamStr(0)), CheckBoxThumbnails.Checked); UpdateListBox;

procedure TFormMain.UpdateListBox;var i : integer;begin //Update the list of pictures on the form ListBox.Items.Clear; for i := 0 to CamRemoteActiveX.OpenCameraCollection_GetNrOfPictures - 1 do begin ListBox.Items.Add(CamRemoteActiveX.OpenCameraCollection_NameOfImage(i)) end;end;

//Procedure called when user clicks on a picture filename on the ListBox updated above.procedure TFormMain.ListBoxClick(Sender: TObject);var thumb_file_name : string;begin //Print EXIF data for RAW-pictures to a RichEdit VCL. RichEdit.Lines.Clear; if ((ListBox.ItemIndex <> -1) and (CheckBoxThumbnails.Checked)) then begin thumb_file_name := GetEnvironmentVariable('Temp') + '\Thumb.jpg'; CamRemoteActiveX.OpenCameraCollection_GetThumbnail(ListBox.ItemIndex, thumb_file_name); //Update thumbnail on the form ImageThumbnail.Picture.LoadFromFile(thumb_file_name); end;end;

56

46

55 55

55

42

Page 62: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote55

© 2019 Alkenius Systems

3.5.19 TCamRemote.OpenCameraCollection_GetNrOfPictures

Returns the number of pictures stored in the picture volume.

Syntax:function OpenCameraCollection_GetNrOfPictures : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.A successful call to the OpenCameraCollection method, to list pictures on the camera.

Description:The number of pictures stored on the picture volume, opened by the OpenCameraCollectionmethod, is returned.

See also:OpenCameraCollection , OpenCameraCollection_NameOfImage ,OpenCameraCollection_GetThumbnail

If any errors occurs an ECamException exception will be raised.

3.5.20 TCamRemote.OpenCameraCollection_NameOfImage

Returns the filename of a picture stored in the picture volume.

Syntax:function OpenCameraCollection_NameOfImage(PictureNumber : integer) : ShortString;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.A successful call to the OpenCameraCollection method, to list pictures on the camera.

Description:The name of the picture with index set in the PictureNumber parameters is returned. The picture isstored in a picture volume opened by the OpenCameraCollection method. The number of storedpictures is received using the OpenCameraCollection_GetNrOfPictures method.

Parameter:- PictureNumber: The index of the picture in the volume to get information from. The first index i 0.

See also:OpenCameraCollection , OpenCameraCollection_GetNrOfPictures ,OpenCameraCollection_GetThumbnail

If any errors occurs an ECamException exception will be raised.

3.5.21 TCamRemote.OpenCameraCollection_GetThumbnail

Gets a thumbnail for a picture stored in the picture volume.

Syntax:procedure OpenCameraCollection_GetThumbnail(PictureNumber : integer; FileName : ShortString);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.A successful call to the OpenCameraCollection method, to list pictures on the camera.

Description:This method gets a thumbnail for a picture which index is set by the PictureNumber parameter. The

56

46

54

54

54 55

55

42

56

46

54

54

55

54 55

55

42

56

46

54

Page 63: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 56

© 2019 Alkenius Systems

requested file name for the thumbnail is set in the FileName parameter. The picture is stored in apicture volume opened by the OpenCameraCollection method. The number of stored pictures isreceived using the OpenCameraCollection_GetNrOfPictures method.

Please note the following:

· The GetThumbnails parameter in the OpenCameraCollection method must be set to true priorcalling this method.

Parameter:- PictureNumber: The index of the picture in the volume to get a thumbnail from. The first index i 0. - Filename: The requested filename for the thumbnail.

See also:OpenCameraCollection , OpenCameraCollection_GetNrOfPictures ,OpenCameraCollection_NameOfImage

If any errors occurs an ECamException exception will be raised.

3.5.22 TCamRemote.OpenCameraEnumeration

Enumerates connected cameras.

Syntax:procedure OpenCameraEnumeration;

Prerequisite:The runtime files needs to be copied to the directory from which the application is executing.The camera(s) needs to be connected to the computer and the connection must be active.

Description:The OpenCameraEnumeration method scans the computer ports for connected cameras.This method also initializes the TCamRemote component, and must therefore be called prior using anyother method in the TCamRemote component.Use the OpenCameraCollection_XXX methods to get the results from the scan of connected cameras.

Please note the following:

· If several TCamRemote objects are used, it is only required to call the OpenCameraEnumerationmethod from one of the TCamRemote objects to initialize the environment for all TCamRemotecomponents.

See also:OpenCameraEnumeration_GetPowerShotNr , OpenCameraEnumeration_GetEOSNr ,OpenCameraEnumeration_GetModel

If any errors occurs an ECamException exception will be raised.

3.5.23 TCamRemote.OpenCameraEnumeration_GetPowerShotNr

Returns the number of PowerShot cameras connected to the PC.

Syntax:function OpenCameraEnumeration_GetPowerShotNr : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

Description:-

See also:OpenCameraEnumeration , OpenCameraEnumeration_GetEOSNr ,OpenCameraEnumeration_GetModel

54

55

54

54 55

55

42

42

56 57

57

42

56

56 57

57

Page 64: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote57

© 2019 Alkenius Systems

If any errors occurs an ECamException exception will be raised.

3.5.24 TCamRemote.OpenCameraEnumeration_GetEOSNr

Returns the number of EOS cameras connected to the PC.

Syntax:function OpenCameraEnumeration_GetEOSNr : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

Description:-

See also:OpenCameraEnumeration , OpenCameraEnumeration_GetPowerShotNr ,OpenCameraEnumeration_GetModel

If any errors occurs an ECamException exception will be raised.

3.5.25 TCamRemote.OpenCameraEnumeration_GetModel

Returns the camera model name of either a connected PowerShot or EOS camera.

Syntax:function OpenCameraEnumeration_GetModel(CameraType : CamModType; Nr : integer) : ShortString;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

Description:This method returns the camera model name (e.g. "EOS 5D") of the camera defined by theCameraType and Nr parameters.

Parameter:- CameraType: EOS or PowerShot camera model is wanted.- Nr: .The number of the camera to get the model name from. The first camera has the number 0. Thenumber of cameras connected is received by the OpenCameraCollection_GetPowerShotNr andOpenCameraCollection_GetEOSNr

See also:OpenCameraEnumeration , OpenCameraEnumeration_GetPowerShotNr ,OpenCameraEnumeration_GetEOSNr

If any errors occurs an ECamException exception will be raised.

3.5.26 TCamRemote.OpenRAWObject

Creates a RAW object of a RAW file.

Syntax:procedure OpenRAWObject(FileName : ShortString);

Prerequisite:The runtime files needs to be copied to the directory from which the application is executing.The FileName must be a valid RAW file.

Description:The OpenRAWObject method creates a RAW object from the file defined in the FileName parameter.The RAW file is probed for valid RAW development parameters. Use the OpenRAWObject_GetRemoteParamSupported to get the probed RAW development parameters.

42

56

56 56

57

42

56

56

57

56 56

57

42

42

58

Page 65: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 58

© 2019 Alkenius Systems

Parameter:- FileName: The filename of a valid RAW file.

See also:OpenRAWObject_GetRemoteParamSupported

If any errors occurs an ECamException exception will be raised.

3.5.27 TCamRemote.OpenRAWObject_GetRemoteParamSupported

Gets the RAW development parameters that are supported for the RAW object.

Syntax:function OpenRAWObject_GetRemoteParamSupported(RAWParamKind : TRAWParamType) : ShortString;

Prerequisite:The RAW object has successfully been created using the OpenRAWObject method.

Description:This method gets the RAW development parameters that are supported for the RAW object. TheseRAW development parameters are probed in the OpenRAWObject method. One parameters at atime can be received, set by the RAWParamKind parameter. The returned value is a string whichlength is equal the data type listed below (e.g. RemoteFormatWBType forRAWParamWhiteBalanceSetting). Each character in the string is either a '0' or '1'. '0' is interpreted as"not supported" and '1' as "supported". RAWParamKind: Interpret as data typeRAWParamWhiteBalanceSetting RemoteFormatWBTypeRAWParamWhiteBalanceKelvin -

One example. If OpenRAWObject_GetRemoteParamSupported(RAWParamWhiteBalanceSetting) returns'01110000000000000' it shall be interpreted as

0 - RemoteFormatWBNotUsed1 - RemoteFormatWBAuto1 - RemoteFormatWBDaylight1 - RemoteFormatWBCloudy0 - RemoteFormatWBTungsten0 - RemoteFormatWBFluorscent0 - RemoteFormatWBFlash0 - RemoteFormatWBFluorescentLight0 - RemoteFormatWBCustom0 - RemoteFormatWBCustom10 - RemoteFormatWBCustom20 - RemoteFormatWBBW0 - RemoteFormatWBShade0 - RemoteFormatWBKelvin0 - RemoteFormatWBPCSet10 - RemoteFormatWBPCSet20 - RemoteFormatWBPCSet3

The conclusion is that Auto, Daylight and Cloudy RAW development whitebalance parameter aresupported.

Parameter:- RAWParamKind: The RAW development parameter to get support data for.

See also:OpenRAWObject

If any errors occurs an ECamException exception will be raised.

58

42

57

57

100

100

57

42

Page 66: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote59

© 2019 Alkenius Systems

3.5.28 TCamRemote.RemoteActivateViewfinderAuto

Forces the camera to re-execute AE (Auto exposure) and AF (Autofocus) for remote viewfinder.

Syntax:procedure RemoteActivateViewfinderAuto(LockAF : boolean);

Prerequisite:The connected camera(s) have been enumrated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder method.

Description:When light or target condition changes this method is used to force the camera to recalculate remoteviewfinder AE and AF.

Parameter:- LockAF: If set to true the camera will force a focus in viewfinder mode. When forced the focus islocked until this method is called with this parameters set to false.

If any errors occurs an ECamException exception will be raised.

3.5.29 TCamRemote.RemoteAFLock

Sets or unsets the AF lock during remote operations

Syntax:procedure RemoteAFLock(AFLock : boolean);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:The camera AF lock can be set or unset. When set the camera will set the AF and thereafter lock theAF, until it is unset. Set AF Lock to reduce the delay between the request to take a picture (using the RemoteTakePicture method) and the time when the picture is taken by the camera.

Please note the following:

· Check the RemoteStart_DoSupportAfLockUnlock for camera support of AFLock.· AF Lock does not work in camera auto mode. Use program, av, tv or manual mode to enable AF

Lock.· The following camera does not support AFLock. PowerShot S100, S300, S110, S30, S40, G1,

G2, Pro90 IS, A10, A20, IXY DIGITAL, IXY DIGITAL 200, IXY DIGITAL 300, DIGITAL IXUS,DIGITAL IXUS v, DIGITAL IXUS 300. Most of the EOS cameras does not support AFLock.

Parameter:- AFLock: The AF lock. true = set, false = unset

If any errors occurs an ECamException exception will be raised.

3.5.30 TCamRemote.RemoteBULBMode

Sets BULB mode for older EOS cameras.For newer EOS camera see note below.

Syntax:procedure RemoteBULBMode(ActivateBULB : boolean);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.

56

46

80

87

42

56

46

80

89

84

42

56

Page 67: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 60

© 2019 Alkenius Systems

A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:Sets BULB mode for the following older EOS cameras · EOS-1D Mark III· EOS 40D· EOS-1Ds Mark III· EOS DIGITAL REBEL Xsi/450D/ Kiss X2· EOS DIGITAL REBEL XS/ 1000D/ KISS F

Please note the following:

· To set BULB mode for newer EOS cameras (e.g. the 50D or the 5D MkII).set BULB by setting theTV remote parameter to BULB using RemoteSetRemoteParams and then use theRemotePressShutter to start/end the BULB shooting.

Parameter:- ActivateBULB: BULB mode to set

If any errors occurs an ECamException exception will be raised.

3.5.31 TCamRemote.RemoteEnd

Ends remote mode.

Syntax:procedure RemoteEnd;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must successfully have been set into remote mode using the RemoteStart method.

Description:The remote mode will be closed. The camera lens will be withdrawn, if applicable. The connection tothe camera (started by calling the Connect method) will still remain. The OnRemoteEvent eventwill not be called anymore.

3.5.32 TCamRemote.RemoteEndMovieRecording

End the movie recording.

Syntax:procedure RemoteEndMovieRecording;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The camera movie recording is active, after calling the RemoteStartMovieRecording method.

Description:The movie recording is stopped. The camera will after the movie recording is stopped still be in remotemode and connected.

Please note the following:

· Read the section about the RemoteStartMovieRecording method to get a short proceduredescription how to record and download movies from the camera.

46

80

73

72

42

56

46

80

46 92

56

46

80

86

86

Page 68: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote61

© 2019 Alkenius Systems

3.5.33 TCamRemote.RemoteGetCameraCacheParameters

Reads the remote parameters from the camera and stores the data within the TCamRemotecomponent. The data can be accessed using the RemoteGetRemoteParams* methods.

Syntax:procedure RemoteGetCameraCacheParameters;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportShootingPara , before calling this method.

Description:This method reads the remote parameters from the camera and saves them in an internal datastructure. This is the only method that does read the parameters from the camera. TheRemoteGetRemoteParams* methods then uses this internal data structure to get their data. Note thatreading camera parameters to update the internal data structure in TCamRemote is a slow operation.A good solution is to use this method once, then read all parameters using theRemoteGetRemoteParams* methods, until a new update of the internal data structure is required.

See also:RemoteGetRemoteParams , RemoteGetRemoteParams_PictureStyle ,RemoteGetRemoteParams_WhitebalanceShift

If any errors occurs an ECamException exception will be raised.

3.5.34 TCamRemote.RemoteGetCFPicture

Gets a picture that has been captured on the camera memory card (e.g. CF- or SD-card).

Syntax:procedure RemoteGetCFPicture(FileName : ShortString; DeleteFromCameraAfterTransfer : boolean);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method, with the parameterReleaseMode set to either ReleaseModeBothPCAndCamera or ReleaseModeOnlyToCamera.The picture has been taken using the RemoteTakePicture or RemotePressShutter methods,alternatively that the camera has taken a picture using the shutter button on the camera.The OnRemoteEvent has been called from TCamRemote. The Event parameter has been set toRemoteEventCallbackReleaseImageFromCFCardReady.

Description:RemoteGetCFPicture copies the picture from the camera CF or SD card memory to a file with afilename set by the FileName parameter. The picture can be deleted from the camera after thedownload has been successful.The OnRemoteGetPictureEvent is used during transfer.

Please note the following:

· This method is only available for EOS cameras.

Parameter:- FileName: The filename for the picture to receive.- DeleteFromCameraAfterTransfer: If set to true the picture is to be deleted from the cameramemory card after successful transfer.

If any errors occurs an ECamException exception will be raised.

56

46

80

83

64 65

66

42

56

46

80

89 72

92

94

42

Page 69: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 62

© 2019 Alkenius Systems

3.5.35 TCamRemote.RemoteGetNumberOfAvailableShots

Gets the number of expected pictures that can be stored on the camera. For Remote type 2 protocolstandard cameras the number of free kbytes is returned instead.

Syntax:function RemoteGetNumberOfAvailableShots : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:The method returns the calculated number of pictures that can be stored in camera memory card.

Please note the following:

· Remote type 2 protocol standard cameras returns the number of free kbytes on the camerainstead of the number of remaining pictures.

If any errors occurs an ECamException exception will be raised.

3.5.36 TCamRemote.RemoteGetMovie

Gets a remotely taken movie that has been captured on the camera memory card (e.g. CF- orSD-card).

Syntax:procedure RemoteGetMovie(FileName : ShortString; DeleteFromCameraAfterTransfer : boolean);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The movie has been recorded using the RemoteStartMovieRecording method and then stoppedthe recording using the RemoteEndmovieRecording method, alternatively that the camera hasbeen recorded using the movie record buttons on the camera.The OnRemoteEvent has been called from TCamRemote. The Event parameter has been set toRemoteEventCallbackReleaseMovieReady.

Description:RemoteGetMovie copies the movie data to a file with a filename set by the FileName parameter. Themovie can be deleted from the camera after the download has been successful.The OnRemoteGetMovieEvent is used during transfer.

Please note the following:

· Read the section about the RemoteStartMovieRecording method to get a short proceduredescription how to record and download movies from the camera..

· This method is only available for EOS cameras.

Parameter:- FileName: The filename for the movie to receive.- DeleteFromCameraAfterTransfer: If set to true the movie is to be deleted from the camera memorycard after successful transfer.

If any errors occurs an ECamException exception will be raised.

3.5.37 TCamRemote.RemoteGetPicture

Gets a remotely taken picture.

11

56

46

80

11

42

56

46

80

86

60

92

95

86

42

Page 70: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote63

© 2019 Alkenius Systems

Syntax:procedure RemoteGetPicture(FileName : ShortString;; PictureType : PictureTypeType);

type PictureTypeType = (PictureTypeThumbnail, //Thumbnail of the picture PictureTypeFull); //The full frame picture

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.A picture has remotely been taken, using a call to the RemoteTakePicture method.

Description for PowerShot:RemoteGetPicture copies the picture data to a file with a filename set by the FileName parameter. If athumbnail as well as a picture are requested (set by the parameter ReleaseDataKind in the RemoteStart method), the thumbnail is received only when calling RemoteGetPicture. The fullpicture is then received when calling the RemoteGetPicture a second time. The PictureTypeparameter is not used.The OnRemoteGetPictureEvent is used during transfer.

Description for EOS:RemoteGetPicture copies the picture data to a file with a filename set by the FileName parameter. If athumbnail as well as a picture are requested (set by the parameter ReleaseDataKind in the RemoteStart method), the pictures can be received separately calling RemoteGetPicture using thePictureType parameter to define which to get.The OnRemoteGetPictureEvent is used during transfer.

Please note the following:

· It is not possible to receive any picture data if the ReleaseDataKind parameter in the RemoteStart method is set to ReleaseModeOnlyToCamera.

Parameter:- FileName: The filename for the picture to receive.- PictureType: Sets whether the thumbnail of the picture or the actual picture is transferred. Only usedby EOS cameras.

If any errors occurs an ECamException exception will be raised.

3.5.38 TCamRemote.RemoteGetPowerZoom

Gets the current PowerZoom settings.

Syntax:function RemoteGetPowerZoom(PowerZoomParamKind : TRemotePowerZoomType) : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportPowerZoom , before calling this method.

Description:This method gets power zoom settings The returned value shall be interpreted as follows:PowerZoomParamKind: Interpret as data typeRemotePowerZoomMinRemotePowerZoomMaxRemotePowerZoomCurrentRemotePowerZoomSpeed

56

46

80

89

80

94

80

94

80

42

56

46

80

82

Page 71: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 64

© 2019 Alkenius Systems

RemotePowerZoomControllable 1: enable to control zoom position of Power ZoomAdapter 0:disable to control zoom position of Power ZoomAdapter

RemotePowerZoomPZSwitch 1: switch position is PZ (Power Zoom) 0: switchposition is MZ (Manual Zoom)

RemotePowerZoomCondition 1: drive lens by Power Zoom Adapter 0: not drive lensRemotePowerZoomExtremePosition 0: wide, 1: tele, 2: otherRemotePowerZoomAttached 1: Power Zoom Adapter is attached correctly 0: othersRemotePowerZoomBatteryLife 1: battery life is enough 0: battery life isn’t enough /

less, or not attached batteryRemotePowerZoomLensZoomLock 1: lens zoom ring isn’t fixed/locked. 0: lens zoom ring

is fixed/lockedRemotePowerZoomSpeedSwitch 1: switch condition is SLOW 0: switch condtion is

FAST Note: this switch condition isn’t affected tozoom speed control by SDK.

RemotePowerZoomIncreasingTemperature 1: increase Power Zoom Adapterbody internaltemperatureis increasing 0: others

RemotePowerZoomHighTemperature 1: internal temperature of Power Zoom Adapter ishihg. Atthis moment, zoom drive control is stopped. 0:others

RemotePowerZoomCurrentSpeed Current speed of zoom drive. “0” position meansstopped (no movement)

Please note the following:

· PowerZoom is only supported for PowerZoom Adapter PZ-E1.

Parameter:- PowerZoomParamKind: The power zoom remote parameter to get value for.

If any errors occurs an ECamException exception will be raised.

3.5.39 TCamRemote.RemoteGetRemoteParams

Gets the current used remote parameters from the camera. Call RemoteGetCameraCacheParameters before using this method, to update TCamRemote data with camera remote parameters.

Syntax:function RemoteGetRemoteParams(RemoteParamKind : TRemoteParamType ) : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportShootingPara , before calling this method.The remote parameters from the camera shall be read by using the RemoteGetCameraCacheParameters method.

Description:This method gets the value for the remote parameter set in the RemoteParamKind parameter. Theparameters is taken from the internal data structure updated using the RemoteGetCameraCacheParameters method. This method itself does not request any datadirectly from the camera. The returned value shall be interpreted as follows:RemoteParamKind: Interpret as datatypeRemoteParamCompQuality RemoteFormatQualityTypeRemoteParamCompQualityPic2RAW RemoteFormatQualityTypeRemoteParamImageSize RemoteFormatSizeTypeRemoteParamImageSizePic2RAW RemoteFormatSizeTypeRemoteParamStrobeSetting RemoteFormatFlashTypeRemoteParamStrobeCompSetting RemoteFormatFlashCompType

42

61

106

56

46

80

83

61

61

100

100

100

100

100

100

Page 72: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote65

© 2019 Alkenius Systems

RemoteParamDriveMode RemoteFormatDriveModeTypeRemoteParamImageMode RemoteFormatShootingModeTypeRemoteParamMLWeiMode RemoteFormatMLWeiTypeRemoteParamAFMode RemoteFormatAFModeTypeRemoteParamAFDistance RemoteFormatAFDistTypeRemoteParamAFFocusingPoint RemoteFormatAFFocusingPointTypeRemoteParamAFAssistLight RemoteFormatAFLightTypeRemoteParamWhiteBalanceSetting RemoteFormatWBTypeRemoteParamWhiteBalanceKelvin Kelvin degreesRemoteParamWhiteBalanceShift See the RemoteGetRemoteParams_WhitebalanceShift

methodRemoteParamPictureStyle See the RemoteGetRemoteParams_PictureStyle methodRemoteParamContrast RemoteFormatLevelTypeRemoteParamColorGain RemoteFormatLevelTypeRemoteParamSharpness RemoteFormatLevelTypeRemoteParamColorSpace RemoteFormatColorSpaceTypeRemoteParamISO RemoteFormatISOTypeRemoteParamAv RemoteFormatAVTypeRemoteParamTv RemoteFormatTVTypeRemoteParamExposureCompensation RemoteFormatExposureCompTypeRemoteParamPhotoEffect RemoteFormatPhotoEffectTypeRemoteParamBeep RemoteFormatBeepType

Parameter:- RemoteParamKind: The remote parameter to get value for.

If any errors occurs an ECamException exception will be raised.

3.5.39.1 RemoteGetRemoteParams example

3.5.40 TCamRemote.RemoteGetRemoteParams_PictureStyle

Gets the current used picture style remote parameters from the camera. Call RemoteGetCameraCacheParameters before using this method, to update TCamRemote data withcamera remote parameters.

Syntax:function RemoteGetRemoteParams_PictureStyle(RemoteParamPictureStyleKind :TRemoteParamPictureStyleType ) : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportShootingPara , before calling this method.The remote parameters from the camera shall be read by using the RemoteGetCameraCacheParameters method.

Description:This method gets the value for the picture style remote parameter set in theRemoteParamPictureStyleKind parameter. The parameters is taken from the internal data structureupdated using the RemoteGetCameraCacheParameters method. This method itself does notrequest any data directly from the camera. The returned value shall be interpreted as follows:RemoteParamKind: Interpret as data typeRemoteParamPictureStyleEnabled 1 = enabled, 0 = disabledRemoteParamPictureStyleContrast integer, min = -4, max = 4RemoteParamPictureStyleSharpness integer, min = 0, max = 7RemoteParamPictureStyleSaturation integer, min = -4, max = 4RemoteParamPictureStyleSaturationUsed 1 = used, 0 = not usedRemoteParamPictureStyleColorTone integer, min = -4, max = 4

100

100

100

100

100

100

100

100

66

65

100

100

100

100

100

100

100

100

100

100

42

61

106

56

46

80

83

61

61

Page 73: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 66

© 2019 Alkenius Systems

RemoteParamPictureStyleColorToneUsed 1 = used, 0 = not usedRemoteParamPictureStyleMonochromeFilter MonochromeFilterTypeRemoteParamPictureStyleMonochromeFilterUsed 1 = used, 0 = not usedRemoteParamPictureStyleMonochromeTone MonochromeToneTypeRemoteParamPictureStyleMonochromeToneUsed 1 = used, 0 = not used

Either use "Saturation + ColorTone" or "MonochromeFilter + MonochromeTone"for black and white picture styles. Please set the "Prop"Used flags correct, e.g.SaturationUsed, ColorToneUsed := trueMonochromeFilterUsed, MonochromeToneUsed := false

Parameter:- RemoteParamPictureStyleKind: The picture style remote parameter to get value for.

If any errors occurs an ECamException exception will be raised.

3.5.41 TCamRemote.RemoteGetRemoteParams_WhitebalanceShift

Gets the current used whitebalance shift remote parameters from the camera.Call RemoteGetCameraCacheParameters before using this method, to update TCamRemote data withcamera remote parameters.

Syntax:function RemoteGetRemoteParams_WhitebalanceShift(RemoteParamWhitebalanceShiftKind :TRemoteParamWhitebalanceShiftType ) : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportShootingPara , before calling this method.The remote parameters from the camera shall be read by using the RemoteGetCameraCacheParameters method.

Description:This method gets the value for the whitebalance shift parameter set in theRemoteParamWhitebalanceShiftKind parameter. The parameters is taken from the internal datastructure updated using the RemoteGetCameraCacheParameters method. This method itself doesnot request any data directly from the camera. The returned value shall be interpreted as follows:RemoteParamKind: Interpret as data typeRemoteParamWhitebalanceShiftWBShiftEnabled 1 = enabled, 0 = disabledRemoteParamWhitebalanceShiftAmberBlue integer, min = -9, max = 9. -9 = only

blue, 9 = only amberRemoteParamWhitebalanceShiftGreenMagenta integer, min = -9, max = 9. -9 = only

magenta, 9 = only green

Parameter:- RemoteParamWhitebalanceShiftKind: The whitebalance shift remote parameter to get value for.

If any errors occurs an ECamException exception will be raised.

3.5.42 TCamRemote.RemoteGetViewfinderAutofocusInfo

Gets auto focus info in viewfinder mode.

Syntax:function RemoteGetViewfinderAutofocusInfo(AFFocusInfo : TRemoteAFFocusInfoType) : integer;

TRemoteAFFocusInfoType = (RemoteAFFocusInfoPictureSizeWidth, RemoteAFFocusInfoPictureSizeHeight, RemoteAFFocusInfoNrOfFrames);

100

100

42

61

106

56

46

80

83

61

61

42

Page 74: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote67

© 2019 Alkenius Systems

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:Gets the auto focus info used by the camera in viewfinder mode. The auto focus frames can bereceived using the RemoteGetViewfinderAutofocusInfoFrame method.

Description of TRemoteAFFocusInfoType:RemoteAFFocusInfoPictureSizeWidth PictureSize.Width. The width in pixels of the picture

(reference size).RemoteAFFocusInfoPictureSizeHeight PictureSize.Height. The width in pixels of the picture

(reference size).RemoteAFFocusInfoNrOfFrames NrOfFrames. The number of currently use AF frames. The

auto focus frames can be received using the RemoteGetViewfinderAutofocusInfoFrame method.

Please note the following:This command is only supported by EOS cameras 50D or EOS 5D Mark II or later cameras, and onlyin viewfinder mode.

If any errors occurs an ECamException exception will be raised.

3.5.43 TCamRemote.RemoteGetViewfinderAutofocusInfoFrame

Gets auto focus frames info in viewfinder mode.

Syntax:function RemoteGetViewfinderAutofocusInfoFrame(FrameNr : integer; AFFocusFrame : TRemoteAFFocusFrameType ) : integer;

TRemoteAFFocusFrameType = (RemoteAFFocusFrameValid, RemoteAFFocusFrameSelected, RemoteAFFocusFrameJustFocus, RemoteAFFocusFrameRectPointX, RemoteAFFocusFrameRectPointY, RemoteAFFocusFrameRectRectWidth, RemoteAFFocusFrameRectRectHeight);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:Gets the auto focus frames info used by the camera in viewfinder mode. Use the RemoteGetViewfinderAutofocusInfo method to get auto focus info.

Description of TRemoteAFFocusFrameType:RemoteAFFocusFrameValid Is 1 if theFrameNr AF frame is valid.RemoteAFFocusFrameSelected Is 1 if the FrameNr AF frame is selected.RemoteAFFocusFrameJustFocus Is 1 if the FrameNr AF frame is focused.RemoteAFFocusFrameRectPointX Upper-left and lower-right coordinates of the AF frame.RemoteAFFocusFrameRectPointY Upper-left and lower-right coordinates of the AF frame.RemoteAFFocusFrameRectRectWidth Upper-left and lower-right coordinates of the AF frame.RemoteAFFocusFrameRectRectHeight Upper-left and lower-right coordinates of the AF frame.

Please note the following:This command is only supported by EOS cameras 50D or EOS 5D Mark II or later cameras, and onlyin viewfinder mode.

56

46

80

87

67

67

42

56

46

80

87

66

Page 75: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 68

© 2019 Alkenius Systems

See also:RemoteGetViewfinderAutofocusInfo

If any errors occurs an ECamException exception will be raised.

3.5.44 TCamRemote.RemoteGetViewfinderAutofocusMode

Gets auto focus mode in viewfinder mode.

Syntax:function RemoteGetViewfinderAutofocusMode : RemoteViewFinderAFModeType;

type RemoteViewFinderAFModeType = (RemoteViewFinderAFModeNotUsed, RemoteViewFinderAFModeQuick, RemoteViewFinderAFModeLive, RemoteViewFinderAFModeLiveFace, RemoteViewFinderAFModeLiveMulti);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:Gets the auto focus mode used by the camera in viewfinder mode.

Please note the following:This command is only supported by EOS cameras 50D or EOS 5D Mark II or later cameras, and onlyin viewfinder mode.

If any errors occurs an ECamException exception will be raised.

3.5.45 TCamRemote.RemoteGetViewfinderDepthOfFieldPreview

Gets the viewfinder depth of field preview.

Syntax:function RemoteGetViewfinderDepthOfFieldPreview : boolean;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:Gets the depth of field preview status during remote viewfinder operation mode.

See also:RemoteSetViewfinderDepthOfFieldPreview

If any errors occurs an ECamException exception will be raised.

3.5.46 TCamRemote.RemoteGetViewfinderHistogram

Gets histogram data for the viewfinder picture.

Syntax:function RemoteGetViewfinderHistogram(HistogramColor : HistogramColorType; Value : integer) : integer;

type HistogramColorType = (HistogramColorBright, HistogramColorRed, HistogramColorGreen,

66

42

56

46

80

87

42

56

46

80

87

77

42

Page 76: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote69

© 2019 Alkenius Systems

HistogramColorYellow);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:Gets the histogram (in 256 levels) for live view image data (received using the OnViewfinderEventevent) . Cumulative values in the histogram differ from the total number of pixels in the image data.

Parameter:- Histogram: Selection which histogram to get value for.- Value: The value (0-255) in the histogram.

See also:OnViewfinderEvent

If any errors occurs an ECamException exception will be raised.

3.5.47 TCamRemote.RemoteGetViewfinderImage

Requests a viewfinder picture from an EOS-camera.

Syntax:function RemoteGetViewfinderImage : boolean;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .The EOSViewfinderRefreshInterval property shall be set to 0.

Description:When this method is executed, TCamRemote will request a viewfinder picture from the EOS-camera.It requires that the RemoteStartViewfinder method was called with the EOSViewfinderRefreshInterval

property set to 0 (no interval used). The OnViewfinderEvent will be triggered, when the picturehas been received. TCamRemote will only request one picture from the camera.The method returns false if the request was accepted and a new pictures is requested. The methodwill return true if the camera handled is a PowerShot camera or that a previous request not has beenfinalized.

If any errors occurs an ECamException exception will be raised.

3.5.48 TCamRemote.RemoteGetZoomPos_CurrentZoomPos

Gets camera zoom position.

Syntax:function RemoteGetZoomPos_CurrentZoomPos : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportZoom , before calling this method.

Description:-

Please note the following:

56

46

80

87

96

96

42

56

46

80

87

42

42 96

42

56

46

80

82

Page 77: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 70

© 2019 Alkenius Systems

· EOS cameras does not support zoom. Instead zoom is changed manually on the camera lens.

See also:RemoteGetZoomPos_MaxOpticalZoomPos , RemoteGetZoomPos_MaxZoomPos

If any errors occurs an ECamException exception will be raised.

3.5.49 TCamRemote.RemoteGetZoomPos_MaxOpticalZoomPos

Gets camera maximum optical zoom position.

Syntax:function RemoteGetZoomPos_MaxOpticalZoomPos : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportZoom , before calling this method.

Description:-

Please note the following:

· EOS cameras does not support zoom. Instead zoom is changed manually on the camera lens.

See also:RemoteGetZoomPos_CurrentZoomPos , RemoteGetZoomPos_MaxZoomPos

If any errors occurs an ECamException exception will be raised.

3.5.50 TCamRemote.RemoteGetZoomPos_MaxZoomPos

Gets camera maximum zoom position (including digital magnification).

Syntax:function RemoteGetZoomPos_MaxZoomPos : integer;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportZoom , before calling this method.

Description:-

Please note the following:

· EOS cameras does not support zoom. Instead zoom is changed manually on the camera lens.

See also:RemoteGetZoomPos_CurrentZoomPos , RemoteGetZoomPos_MaxOpticalZoomPos

If any errors occurs an ECamException exception will be raised.

3.5.51 TCamRemote.RemoteLoadCameraRemoteParams

Loads remote parameters from a file and sets these remote parameters in the camera.

Syntax:procedure RemoteLoadCameraRemoteParams(FileName : ShortString);

70 70

42

56

46

80

82

69 70

42

56

46

80

82

69 70

42

Page 78: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote71

© 2019 Alkenius Systems

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:-

Parameter:- FileName: The filename of the file used to save/load remote parameters.

If any errors occurs an ECamException exception will be raised.

3.5.52 TCamRemote.RemotePowerZoomStop

Stops the PowerZoom zoom operation.

Syntax:procedure RemotePowerZoomStop;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check DoSupportPowerZoom in RemoteFuncType returned by the Connect method, before callingthis method.

Description:-

Please note the following:

· PowerZoom is only supported for PowerZoom Adapter PZ-E1.

Parameter:-

If any errors occurs an ECamException exception will be raised.

3.5.53 TCamRemote.RemotePowerZoomTele

Starts the PowerZoom adapter to zoom in.

Syntax:procedure RemotePowerZoomTele(ZoomFast: boolean; ZoomSpeed : Integer);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check DoSupportPowerZoom in RemoteFuncType returned by the Connect method, before callingthis method.

Description:-

Please note the following:

· PowerZoom is only supported for PowerZoom Adapter PZ-E1.

Parameter:- ZoomFast: If true the PowerZoom will zoom fast- ZoomSpeed: Zoom speed level

56

46

80

42

56

46

80

46

42

56

46

80

46

Page 79: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 72

© 2019 Alkenius Systems

If any errors occurs an ECamException exception will be raised.

3.5.54 TCamRemote.RemotePowerZoomWide

Starts the PowerZoom adapter to zoom out.

Syntax:procedure RemotePowerZoomWide(ZoomFast: boolean; ZoomSpeed : Integer);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check DoSupportPowerZoom in RemoteFuncType returned by the Connect method, before callingthis method.

Description:-

Please note the following:

· PowerZoom is only supported for PowerZoom Adapter PZ-E1.

Parameter:- ZoomFast: If true the PowerZoom will zoom fast- ZoomSpeed: Zoom speed level

If any errors occurs an ECamException exception will be raised.

3.5.55 TCamRemote.RemotePressShutter

Handles the shutter button; i.e. press the shutter halfway, complete or just release it

Syntax:procedure RemotePressShutter(ShutterButton : RemoteShutterButtonType);

type RemoteShutterButtonType = (RemoteShutterButtonOff, RemoteShutterButtonHalfPressed, RemoteShutterButtonCompletelyPressed, RemoteShutterButtonHalfPressedNonAF, RemoteShutterButtonCompletelyPressedNonAF);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:This method operates the shutter button. The shutter button will remain in the position as set whenusing this method. Only a new call to this method can change the shutter. Below is a description ofRemoteShutterButtonType:

RemoteShutterButtonOff The shutter button is not pressed at allRemoteShutterButtonHalfPressed The shutter button is pressed halfways. The

camera will make an automatic focus.RemoteShutterButtonCompletelyPressed The shutter button is completely pressed. The

camera will first automatically focus, then it willtake a picture.

RemoteShutterButtonHalfPressedNonAF The shutter button is pressed halfways withoutany focus operation.

RemoteShutterButtonCompletelyPressedNonAF The shutter button is completely pressed. Apicture will be taken but the camera will notfocus.

42

56

46

80

46

42

56

46

80

Page 80: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote73

© 2019 Alkenius Systems

The shutter button can be operated when using the live viewfinder as well as in normal remote mode.

Please note the following:This command is supported by the EOS 50D or EOS 5D Mark II or later EOS cameras.

Parameter:- ShutterButton: The shutter button

If any errors occurs an ECamException exception will be raised.

3.5.56 TCamRemote.RemoteSaveCameraRemoteParams

Reads remote parameters from the camera and save these to a file.

Syntax:procedure RemoteLoadCameraRemoteParams(FileName : ShortString);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:-

Parameter:- FileName: The filename of the file used to save/load remote parameters.

If any errors occurs an ECamException exception will be raised.

3.5.57 TCamRemote.RemoteSetRemoteParams

Sets remote parameters to the camera.

Syntax:procedure RemoteSetRemoteParams(RemoteParamKind : TRemoteParamType ; Value : integer);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportShootingPara , before calling this method.

Description:Supported remote parameters from the camera can be received using the RemoteStart_GetRemoteParamSupported method. These parameters have been verified forcamera acceptance and are the only recommended. However it is allowed to set any remoteparameters to the camera, but do not expect that the camera accepts them. Use the RemoteGetRemoteParams method to verify which parameters that are accepted or not.

It is only possible to set one remote parameter at a time. Use the RemoteParamKind to set whichparameter to set and value parameter as the ordinal of the enums listed below:RemoteParamKind: Interpret as datatypeRemoteParamCompQuality See the RemoteSetRemoteParams_ImageQuality methodRemoteParamCompQualityPic2RAW See the RemoteSetRemoteParams_ImageQuality methodRemoteParamImageSize See the RemoteSetRemoteParams_ImageQuality methodRemoteParamImageSizePic2RAW See the RemoteSetRemoteParams_ImageQuality methodRemoteParamStrobeSetting RemoteFormatFlashTypeRemoteParamStrobeCompSetting RemoteFormatFlashCompTypeRemoteParamDriveMode RemoteFormatDriveModeTypeRemoteParamImageMode RemoteFormatShootingModeType

42

56

46

80

42

106

56

46

80

83

84

64

75

75

75

75

100

100

100

100

Page 81: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 74

© 2019 Alkenius Systems

RemoteParamMLWeiMode RemoteFormatMLWeiTypeRemoteParamAFMode RemoteFormatAFModeTypeRemoteParamAFDistance RemoteFormatAFDistTypeRemoteParamAFFocusingPoint RemoteFormatAFFocusingPointTypeRemoteParamAFAssistLight RemoteFormatAFLightTypeRemoteParamWhiteBalanceSetting RemoteFormatWBTypeRemoteParamWhiteBalanceKelvin Kelvin degreesRemoteParamWhiteBalanceShift See the RemoteSetRemoteParams_WhitebalanceShift

methodRemoteParamPictureStyle See the RemoteSetRemoteParams_PictureStyle methodRemoteParamContrast RemoteFormatLevelTypeRemoteParamColorGain RemoteFormatLevelTypeRemoteParamSharpness RemoteFormatLevelTypeRemoteParamColorSpace RemoteFormatColorSpaceTypeRemoteParamISO RemoteFormatISOTypeRemoteParamAv See the RemoteSetRemoteParams_AvTvImageMode

methodRemoteParamTv See the RemoteSetRemoteParams_AvTvImageMode

methodRemoteParamExposureCompensation RemoteFormatExposureCompTypeRemoteParamPhotoEffect RemoteFormatPhotoEffectTypeRemoteParamBeep RemoteFormatBeepType

Please note the following:

· It is not recommended that the viewfinder is on when setting remote parameters using theRemoteSetRemoteParams method. The parameters will be set but it will take time, since theviewfinder may be restarted for each new parameter set. Therefore turn off the viewfinder beforesetting remote parameters, then turn it on again after the parameters have been set.

· Newer PowerShot cameras do have problems handling not supported remote parameters. Thecamera may shut down, if not supported parameters are used.

· If the EOS camera is stuck in "manual focus mode", see the section known problems sectionfor a procedure how to set the camera back to auto focus mode.

Parameter:- RemoteParamKind: The remote parameter to the camera.- Value: The remote parameter (ordinal) value.

See also:RemoteSetRemoteParams_ImageQuality , RemoteSetRemoteParams_PictureStyle ,RemoteSetRemoteParams_WhitebalanceShift , RemoteSetRemoteParams_AvTvImageMode

If any errors occurs an ECamException exception will be raised.

3.5.57.1 RemoteSetRemoteParams example

3.5.58 TCamRemote.RemoteSetRemoteParams_AvTvImageMode

Sets AV and TV remote parameters to the camera.

Syntax: procedure RemoteSetRemoteParams_AvTvImageMode(ImageMode : integer; Av : integer; Tv : integer);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportShootingPara , before calling this method.

Description:

100

100

100

100

100

100

76

75

100

100

100

100

100

74

74

100

100

100

23

75 75

76 74

42

56

46

80

83

Page 82: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote75

© 2019 Alkenius Systems

-

Please note the following:See same section in RemoteSetRemoteParamsImageMode can only bet set to the ordinal value of : RemoteFormatShootingModeManual,RemoteFormatShootingModeTv or RemoteFormatShootingModeAv

Parameter:- ImageMode: The image mode wanted (AV, TV or manual mode) when setting AV/TV values.Interpret as the ordinal value of RemoteFormatShootingModeType .- Av: The Av value wanted. Interpret as the ordinal value of RemoteFormatAVType .- Tv: The Av value wanted. Interpret as the ordinal value of RemoteFormatTVType .

See also:RemoteSetRemoteParams , RemoteSetRemoteParams_ImageQuality ,RemoteSetRemoteParams_PictureStyle , RemoteSetRemoteParams_WhitebalanceShift

If any errors occurs an ECamException exception will be raised.

3.5.59 TCamRemote.RemoteSetRemoteParams_ImageQuality

Sets image quality remote parameters to the camera.

Syntax:procedure RemoteSetRemoteParams_ImageQuality(ImageSize : integer; ImageQuality : integer; ImageSizePic2RAW : integer; ImageQualityPic2RAW : integer);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportShootingPara , before calling this method.

Description:-

Please note the following:See same section in RemoteSetRemoteParams

Parameter:- ImageSize: The image size of the main picture. Interpret as the ordinal value ofRemoteFormatSizeType .- ImageQuality: The image quality of the main picture. Set to RemoteFormatQualityRAW if RAW orRAW+JPEG is wanted. Interpret as the ordinal value of RemoteFormatQualityType .- ImageSizePic2RAW: The image size of the JPEG picture when taking a RAW+JPEG picture.Interpret as the ordinal value of RemoteFormatSizeType .- ImageQualityPic2RAW: The image quality of the JPEG picture when taking a RAW+JPEG picture.Interpret as the ordinal value of RemoteFormatQualityType .

See also:RemoteSetRemoteParams , RemoteSetRemoteParams_PictureStyle ,RemoteSetRemoteParams_WhitebalanceShift , RemoteSetRemoteParams_AvTvImageMode

If any errors occurs an ECamException exception will be raised.

3.5.60 TCamRemote.RemoteSetRemoteParams_PictureStyle

Sets picture style remote parameter to the camera.

Syntax:procedure RemoteSetRemoteParams_PictureStyle(PictureStyleEnabled : boolean;

73

100

100

100

73 75

75 76

42

56

46

80

83

73

100

100

100

100

73 75

76 74

42

Page 83: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 76

© 2019 Alkenius Systems

PictureStyle : PictureStyleNumberType ; Contrast : IntN4_4Type ; Sharpness : Int0_7Type ; Saturation : IntN4_4Type ; SaturationUsed : boolean; ColorTone : IntN4_4Type ; ColorToneUsed : boolean; MonochromeFilter : MonochromeFilterType ; MonochromeFilterUsed : boolean; MonochromeTone : MonochromeToneType ; MonochromeToneUsed : boolean);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportShootingPara , before calling this method.

Description:Sets picture style remote parameters to the camera.Either use "Saturation + ColorTone" or "MonochromeFilter + MonochromeTone"for black and white picture styles. Please set the "Prop"Used flags correct, e.g.SaturationUsed, ColorToneUsed := trueMonochromeFilterUsed, MonochromeToneUsed := false

Please note the following:See same section in RemoteSetRemoteParams

Parameter:- See Syntax:

See also:RemoteSetRemoteParams , RemoteSetRemoteParams_ImageQuality ,RemoteSetRemoteParams_WhitebalanceShift , RemoteSetRemoteParams_AvTvImageMode

If any errors occurs an ECamException exception will be raised.

3.5.61 TCamRemote.RemoteSetRemoteParams_WhitebalanceShift

Sets whitebalance shift remote parameter to the camera.

Syntax:procedure RemoteSetRemoteParams_WhitebalanceShift(WBShiftEnabled : boolean; AmberBlue : IntN9_9Type; GreenMagenta : IntN9_9Type);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check RemoteStart_DoSupportShootingPara , before calling this method.

Description:-

Please note the following:See same section in RemoteSetRemoteParams

Parameter:- WBShiftEnabled: Set to true enables whitebalance shift remote parameter.- AmberBlue: -9 = only blue, 9 = only amber- GreenMagenta: -9 = only magenta, 9 = only green

See also:

100

100

100

100

100

100

100

56

46

80

83

73

73 75

76 74

42

56

46

80

83

73

Page 84: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote77

© 2019 Alkenius Systems

RemoteSetRemoteParams , RemoteSetRemoteParams_ImageQuality ,RemoteSetRemoteParams_PictureStyle , RemoteSetRemoteParams_AvTvImageMode

If any errors occurs an ECamException exception will be raised.

3.5.62 TCamRemote.RemoteSetViewfinderAutofocusMode

Controls auto focus mode in viewfinder mode.

Syntax:procedure RemoteSetViewfinderAutofocusMode(AFMode : RemoteViewFinderAFModeType);

type RemoteViewFinderAFModeType = (RemoteViewFinderAFModeNotUsed, RemoteViewFinderAFModeQuick, RemoteViewFinderAFModeLive, RemoteViewFinderAFModeLiveFace, RemoteViewFinderAFModeLiveMulti, RemoteViewFinderAFModeSmoothZone);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:The remote viewfinder auto focus can be changed by calling this method.

Please note the following:This command is only supported by EOS cameras 50D or EOS 5D Mark II or later cameras, and onlyin viewfinder mode.Only supported viewfinder modes for the camera model is accepted. Exception will be throwed if a notsupported mode is requested. Supported viewfinder modes is probed at startup and is found as theparameter VFAFMode.

Parameter:- AFMode: The auto focus mode

If any errors occurs an ECamException exception will be raised.

3.5.63 TCamRemote.RemoteSetViewfinderDepthOfFieldPreview

Sets/unsets viewfinder depth of field preview.

Syntax:procedure RemoteSetViewfinderDepthOfFieldPreview(Activate : boolean);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:Turns the depth of field on/off during remote viewfinder operation mode (to stop the lens down to thecurrently selected aperture to assess the depth of field).If RemoteSetViewfinderOutput is set to RemoteViewFinderOutputLCD and depth of field is being used,the camera will be put in UI Lock status.

Parameter:- Activate: The status of depth of field preview.

See also:

73 75

75 74

42

56

46

80

87

42

56

46

80

87

Page 85: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 78

© 2019 Alkenius Systems

RemoteGetViewfinderDepthOfFieldPreview

If any errors occurs an ECamException exception will be raised.

3.5.64 TCamRemote.RemoteSetViewfinderDriveLens

Drives the viewfinder lens and adjusts viewfinder focus

Syntax:procedure RemoteSetViewfinderDriveLens(DriveLens : RemoteViewFinderDriveLensType);

type RemoteViewFinderDriveLensType = (RemoteViewFinderDriveLensNotUsed, RemoteViewFinderDriveLensNear1, RemoteViewFinderDriveLensNear2, RemoteViewFinderDriveLensNear3, RemoteViewFinderDriveLensFar1, RemoteViewFinderDriveLensFar2, RemoteViewFinderDriveLensFar3);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:The remote viewfinder drive lens and focus can be changed by calling this method.

Please note the following:This command is only supported by EOS cameras 1D Mark III and later cameras, and only inviewfinder mode.

Parameter:- DriveLens: The drive lens mode

If any errors occurs an ECamException exception will be raised.

3.5.65 TCamRemote.RemoteSetViewfinderOutput

Changes the remote viewfinder output destination, in addition to the viewfinder pictures sent to the PC.

Syntax:procedure RemoteSetViewfinderOutput (ViewfinderOutput: RemoteViewFinderOutputType);

type RemoteViewFinderOutputType = (RemoteViewFinderOutputLCD, RemoteViewFinderOutputVideo, RemoteViewFinderOutputOff);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Please note the following (only valid for EOS cameras):

· The camera UI is unlocked if the LCD display is activated.· The "video" option is not supported, only "LCD" and "Off".

Description:The remote viewfinder destination can be changed by calling this method. This method does not affectthe viewfinder pictures sent to the PC.

Parameter:- ViewfinderOutput: The destination for pictures taken by the remote viewfinder.

68

42

56

46

80

87

42

56

46

80

87

Page 86: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote79

© 2019 Alkenius Systems

If any errors occurs an ECamException exception will be raised.

3.5.66 TCamRemote.RemoteSetViewfinderWhitebalance

Adjusts the white balance of the viewfinder image at the specified position

Syntax:procedure RemoteSetViewfinderWhitebalance(XCoord : integer; YCoord : integer);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:The viewfinder picture white balance can be changed by calling this method.

Please note the following:This command is only supported by EOS cameras 1D Mark III and later cameras, and only inviewfinder mode.

Parameter:- XCoord: The x-coordinate (width) in pixel to use as white balance reference. - YCoord: The x-coordinate (height) in pixel to use as white balance reference.

If any errors occurs an ECamException exception will be raised.

3.5.67 TCamRemote.RemoteSetViewfinderZoom

Sets viewfinder zoom

Syntax:procedure RemoteSetViewfinderZoom(Zoom : RemoteViewFinderZoomType);

type RemoteViewFinderZoomType = (RemoteViewFinderZoomFit, RemoteViewFinderZoomx5, RemoteViewFinderZoomx10);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:The remote viewfinder zoom is changed by calling this method. The zoom can be used for betteradjustment of focus. When a picture is taken the picture the content will be the same as when thezoom is extracted (set to RemoteViewFinderZoomFit) .The zoom is reset when a picture has been taken.

Parameter:- Zoom: The viewfinder zoom.

If any errors occurs an ECamException exception will be raised.

3.5.68 TCamRemote.RemoteSetViewfinderZoomPosition

Sets the focus and zoom border position for live view.

Syntax:procedure RemoteSetViewfinderZoomPosition(X : integer; Y : integer);

42

56

46

80

87

42

56

46

80

87

42

Page 87: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 80

© 2019 Alkenius Systems

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Description:Sets the focus and zoom border position for live view. The coordinates are the upper left coordinatesof the focus and zoom border. These values expressed in a coordinate system of theMetadata.CoordSystem in the event OnViewfinderEvent .The size of the focus and zoom border is one fifth the size of when 5x zoom or the entire screen isused, and one tenth the size of Metadata.CoordSystem (in the event OnViewfinderEvent )when 10xzoom is used.

Parameter:- X: The X position for the upper left coordinate for the focus and zoom border.- Y: The Y position for the upper left coordinate for the focus and zoom border.

If any errors occurs an ECamException exception will be raised.

3.5.69 TCamRemote.RemoteSetZoomPos

Sets camera zoom position.

Syntax:procedure RemoteSetZoomPos(ZoomPos: integer);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check DoSupportZoom in RemoteFuncType returned by the Connect method, before calling thismethod.

Description:-

Please note the following:

· EOS cameras does not support zoom. Instead zoom is changed manually on the camera lens.

Parameter:- ZoomPos: The requested zoom position. ZoomPos must be lower thanRemoteGetZoomPos_MaxZoomPos

If any errors occurs an ECamException exception will be raised.

3.5.69.1 RemoteSetZoomPos example

3.5.70 TCamRemote.RemoteStart

Starts the camera remote mode and returns remote capability parameters for the connected camera.

Syntax:procedure RemoteStart(ReleaseMode : ReleaseModeType; ReleaseDataKind : ReleaseDataKindType; ProbeRemoteParameters : boolean; CacheRemoteParamDir : ShortString);

type ReleaseModeType = (ReleaseModeOnlyToPC, ReleaseModeBothPCAndCamera, ReleaseModeOnlyToCamera);

ReleaseDataKindType = (ReleaseDataKindTakeOnlyThumbnail,

56

46

80

87

96

96

42

56

46

80

46

70

42

Page 88: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote81

© 2019 Alkenius Systems

ReleaseDataKindTakeOnlyPicture, ReleaseDataKingTakeBothThumbAndPic);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.Call the RemoteSupported method to check if remote mode is supported by the camera.The connected camera must be able to extend its lens, if it is withdrawn when the camera is shuttingdown.

Description:The camera is put into remote mode, which may cause the lens to be ejected, if it is withdrawn. Thecamera will also be probed for supported remote parameters (if remote parameters are supported bythe camera), which can take some time.The camera remote capability parameters including supportedremote parameters can be received using the RemoteStart_XXX methods. The OnRemoteEventevent will be called, when a remote camera event has occurred.The time needed for TCamRemote to probe the camera, at each startup, may be shortened if atemporary cache dir is set to the CacheRemoteParamDir parameter. When the cache function is used,TCamRemote will first look into the CacheRemoteParamDir directory and see if there are any storedsupported parameters for the connected camera (camera mode is also considered). If found thesupported remote parameters are read from the file and is immediately assigned the RemoteParamSupported in the record returned from this method, and no further probing is needed. If nocache file for the connected camera is found, the camera is probed and the supported parametersfound are stored in a cache file for later use.Pictures taken by the camera can be stored in the camera memory, and not written into the CF- orSD-card on the camera (set the RemoteMode parameter to either ReleaseModeOnlyToPC orReleaseModeBothPCAndCamera). Pictures taken can also be written into the camera CF- or SD-cardon the camera (set the RemoteMode parameter to either ReleaseModeOnlyToCamera orReleaseModeBothPCAndCamera).

Please note the following:

· The cache function by using the CacheRemoteParamDir does not work for PowerShot Generation2 cameras, since the mode settings not can be read from the camera. For those cameras do notuse the cache functionality by setting CacheRemoteParamDir to "" (empty string).

· For PowerShot cameras pictures stored on the camera CF- or SD-card can not be downloadedduring remote operations. However if remote operations is ended pictures stored in the cameraCF- or SD-card using the OpenCameraCollection and GetPicture methods.

· For EOS cameras pictures stored on the camera CF- or SD-card can be downloaded duringremote operations, by listening to the OnRemoteEvent and then use the RemoteGetCFPicture

method. The advantage to only store taken pictures on the CF- or SD-card is that the cameracan take burst of pictures and write them down to the memory card, which is a much fasteroperation than to store the pictures in the camera memory (not write them to the camera card)and download them. The reason for that is that the pictures in the camera memory must bedownloaded continuously since the memory only can hold a few pictures. The camera CF- orSD-card can hold many pictures and can be downloaded at any time when the camera is moreidle and less used.

· The supported remote parameters may differ quite a bit depending on the mode knob on thecamera. No shutter or aperture remote parameters can be set if the mode knob on the camera isset to "Auto". They can however be set if the knob is set to "Manual".

· Many remote parameters are not supported by the EOS cameras. These parameters must be setmanually on the camera before pictures are taken.

· PowerShot cameras do always default use 'Program' camera mode when connected, even if theknobs on the PowerShot camera is set to something else. It is possible to set the camera mode(or image mode) to other values (e.g. manual, TV or AV) using the RemoteSetRemoteParamsmethod. EOS cameras must set the camera mode using the camera knobs before starting remotehandling of the camera.

· Newer PowerShot cameras do have problems handling not supported remote parameters. Thecamera may shut down, if not supported parameters are used.

·

Parameter:

56

46

57

92

54 52

92

61

73

Page 89: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 82

© 2019 Alkenius Systems

- ReleaseMode: Sets pictures destination (on the PC and/or camera CF- or SD-card)used when calling RemoteTakePictures or when the shutter button is operated.- ReleaseDataKind: Sets if thumbnail and/or picture shall be taken when callingRemoteTakePicture .- ProbeRemoteParameters: Sets if remote parameters is to be probed or not. Remote mode willstart more quickly if remote parameters not are probed, however it is recommended to probe remoteparameters.- CacheRemoteParamDir: Sets the directory where cached remote parameters are stored. If setto '' the cache parameters function is not used.

See also:RemoteStart_GetRemoteParamSupported , RemoteStart_DoSupportZoom ,RemoteStart_DoSupportShootingPara , RemoteStart_DoSupportViewfinder ,RemoteStart_ReqViewfinderOffWhenShooting , RemoteStart_DoSupportAfLockUnlock

If any errors occurs an ECamException exception will be raised.

3.5.70.1 RemoteStart example

//Check if remote mode is supported if (not CamRemoteActiveX.RemoteSupported) then begin ECamException.Create('The connected camera does not support remote mode'); end; StatusBar.SimpleText := 'Starts remote process and probes remote parameters'; //Starts the remote mode Log('Opens remote mode'); CamRemoteActiveX.RemoteStart(Ord(mReleaseMode), Ord(REMOTE_MODE), CheckBoxProbeRemoteParameters.Checked, GetEnvironmentVariable('Temp') + '\' + REMOTE_SUBKEY); mCameraCapability.DoSupportZoom :=CamRemoteActiveX.RemoteStart_DoSupportZoom; mCameraCapability.DoSupportShootingPara :=CamRemoteActiveX.RemoteStart_DoSupportShootingPara; mCameraCapability.DoSupportViewfinder :=CamRemoteActiveX.RemoteStart_DoSupportViewfinder; mCameraCapability.ReqViewfinderOffWhenShooting :=CamRemoteActiveX.RemoteStart_ReqViewfinderOffWhenShooting; mCameraCapability.DoSupportAfLockUnlock :=CamRemoteActiveX.RemoteStart_DoSupportAfLockUnlock;

3.5.71 TCamRemote.RemoteStart_DoSupportZoom

Returns if the connected camera support remote zooming.

Syntax:function RemoteStart_DoSupportZoom : boolean;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:-

See also:RemoteStart , RemoteStart_GetRemoteParamSupported ,RemoteStart_DoSupportShootingPara , RemoteStart_DoSupportViewfinder ,RemoteStart_ReqViewfinderOffWhenShooting , RemoteStart_DoSupportAfLockUnlock

If any errors occurs an ECamException exception will be raised.

3.5.72 TCamRemote.RemoteStart_DoSupportPowerZoom

Returns if the connected camera support power zooming.

89

89

84 82

83 83

84 84

42

56

46

80

80 84

83 83

84 84

42

Page 90: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote83

© 2019 Alkenius Systems

Syntax:function RemoteStart_DoSupportPowerZoom : boolean;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:-

Please note the following:

· PowerZoom is only supported for PowerZoom Adapter PZ-E1.

See also:RemoteStart , RemoteStart_GetRemoteParamSupported ,RemoteStart_DoSupportShootingPara , RemoteStart_DoSupportViewfinder ,RemoteStart_ReqViewfinderOffWhenShooting , RemoteStart_DoSupportAfLockUnlock

If any errors occurs an ECamException exception will be raised.

3.5.73 TCamRemote.RemoteStart_DoSupportShootingPara

Returns if the connected camera support setting remote parameters.

Syntax:function RemoteStart_DoSupportShootingPara : boolean;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:-

See also:RemoteStart , RemoteStart_GetRemoteParamSupported , RemoteStart_DoSupportZoom ,RemoteStart_DoSupportViewfinder , RemoteStart_ReqViewfinderOffWhenShooting ,RemoteStart_DoSupportAfLockUnlock

If any errors occurs an ECamException exception will be raised.

3.5.74 TCamRemote.RemoteStart_DoSupportViewfinder

Returns if the connected camera support remote handling of the viewfinder.

Syntax:function RemoteStart_DoSupportViewfinder : boolean;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:-

See also:RemoteStart , RemoteStart_GetRemoteParamSupported , RemoteStart_DoSupportZoom ,RemoteStart_DoSupportShootingPara , RemoteStart_ReqViewfinderOffWhenShooting ,RemoteStart_DoSupportAfLockUnlock

56

46

80

80 84

83 83

84 84

42

56

46

80

80 84 82

83 84

84

42

56

46

80

80 84 82

83 84

84

Page 91: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 84

© 2019 Alkenius Systems

If any errors occurs an ECamException exception will be raised.

3.5.75 TCamRemote.RemoteStart_ReqViewfinderOffWhenShooting

Returns if the connected camera remote viewfinder must be disabled before taking a picture remotely.

Syntax:function RemoteStart_ReqViewfinderOffWhenShooting : boolean;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:-

See also:RemoteStart , RemoteStart_GetRemoteParamSupported , RemoteStart_DoSupportZoom ,RemoteStart_DoSupportShootingPara , RemoteStart_DoSupportViewfinder ,RemoteStart_DoSupportAfLockUnlock

If any errors occurs an ECamException exception will be raised.

3.5.76 TCamRemote.RemoteStart_DoSupportAfLockUnlock

Returns if the connected camera supports the AF-lock remote parameter function.

Syntax:function RemoteStart_DoSupportAfLockUnlock : boolean;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:-

See also:RemoteStart , RemoteStart_GetRemoteParamSupported , RemoteStart_DoSupportZoom ,RemoteStart_DoSupportShootingPara , RemoteStart_DoSupportViewfinder ,RemoteStart_ReqViewfinderOffWhenShooting

If any errors occurs an ECamException exception will be raised.

3.5.77 TCamRemote.RemoteStart_GetRemoteParamSupported

Gets the supported remote parameters that are supported by the connected camera.

Syntax:function RemoteStart_GetRemoteParamSupported(RemoteParamKind : TRemoteParamType) : ShortString;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:This method gets the supported remote parameters that are supported by the connected camera.These supported remote parameters are probed in the RemoteStart method, if theProbeRemoteParameters is set to true. One parameters at a time can be received, set by the

42

56

46

80

80 84 82

83 83

84

42

56

46

80

80 84 82

83 83

84

42

56

46

80

80

Page 92: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote85

© 2019 Alkenius Systems

RemoteParamKind parameter. The returned value is a string which length is equal the data type listedbelow (e.g. RemoteFormatWBType for RemoteParamWhiteBalanceSetting). Each character in thestring is either a '0' or '1'. '0' is interpreted as "not supported" and '1' as "supported". RemoteParamKind: Interpret as datatypeRemoteParamCompQuality RemoteFormatQualityTypeRemoteParamCompQualityPic2RAW RemoteFormatQualityTypeRemoteParamImageSize RemoteFormatSizeTypeRemoteParamImageSizePic2RAW RemoteFormatSizeTypeRemoteParamStrobeSetting RemoteFormatFlashTypeRemoteParamStrobeCompSetting RemoteFormatFlashCompTypeRemoteParamDriveMode RemoteFormatDriveModeTypeRemoteParamImageMode RemoteFormatShootingModeTypeRemoteParamMLWeiMode RemoteFormatMLWeiTypeRemoteParamAFMode RemoteFormatAFModeTypeRemoteParamVFAFMode RemoteFormatAFFocusingPointType

RemoteParamAFDistance RemoteFormatAFDistTypeRemoteParamAFFocusingPoint RemoteFormatAFFocusingPointType

RemoteParamAFAssistLight RemoteFormatAFLightTypeRemoteParamWhiteBalanceSetting RemoteFormatWBTypeRemoteParamWhiteBalanceKelvin -RemoteParamWhiteBalanceShift Is either '0' (not supported) or '1'

(supported)RemoteParamPictureStyle Is either '0' (not supported) or '1'

(supported)RemoteParamContrast RemoteFormatLevelTypeRemoteParamColorGain RemoteFormatLevelTypeRemoteParamSharpness RemoteFormatLevelTypeRemoteParamColorSpace RemoteFormatColorSpaceTypeRemoteParamISO RemoteFormatISOTypeRemoteParamAv RemoteFormatAVTypeRemoteParamTv RemoteFormatTVTypeRemoteParamExposureCompensation RemoteFormatExposureCompTypeRemoteParamPhotoEffect RemoteFormatPhotoEffectTypeRemoteParamBeep RemoteFormatBeepType

One example. If RemoteStart_GetRemoteParamSupported(RemoteParamWhiteBalanceSetting) returns'01110000000000000' it shall be interpreted as

0 - RemoteFormatWBNotUsed1 - RemoteFormatWBAuto1 - RemoteFormatWBDaylight1 - RemoteFormatWBCloudy0 - RemoteFormatWBTungsten0 - RemoteFormatWBFluorscent0 - RemoteFormatWBFlash0 - RemoteFormatWBFluorescentLight0 - RemoteFormatWBCustom0 - RemoteFormatWBCustom10 - RemoteFormatWBCustom20 - RemoteFormatWBBW0 - RemoteFormatWBShade0 - RemoteFormatWBKelvin0 - RemoteFormatWBPCSet10 - RemoteFormatWBPCSet20 - RemoteFormatWBPCSet3

The conclusion is that Auto, Daylight and Cloudy whitebalance remote parameter are supported.

Please note the following:

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

100

Page 93: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 86

© 2019 Alkenius Systems

· Do not call this method if the camera not supports operation of remote parameters. Use the RemoteStart_DoSupportShootingPara method to check the camera for support.

Parameter:- RemoteParamKind: The remote parameter to get support data for.

See also:RemoteStart , RemoteStart_DoSupportZoom , RemoteStart_DoSupportShootingPara ,RemoteStart_DoSupportViewfinder , RemoteStart_ReqViewfinderOffWhenShooting ,RemoteStart_DoSupportAfLockUnlock

If any errors occurs an ECamException exception will be raised.

3.5.78 TCamRemote.RemoteStartMovieRecording

Starts recording of a movie.

Syntax:procedure RemoteStartMovieRecording;

Prerequisite:The camera in movie recording mode (see "Please note the following below").The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method and the destination forremote data set to the camera memory (parameter ReleaseMode set toReleaseModeOnlyToCamera).It might be required to press a button on the camera to start movie recording mode (see "Please notethe following below").

Description:The camera starts the recording of movie. the movie will temporarily be written to the camera memory.The movie recording can be ended by calling the RemoteEndMovieRecording .The camera will collect the movie when the recording ends. The movie can be downloaded from thecamera after the OnRemoteEvent event has been called with the Event parameter set toRemoteEventCallbackReleaseMovieRead. Use the RemoteGetMovie method to start thedownload.During download the OnRemoteGetMovieEvent event is called from TCamRemote to reportprogress.When the movie has been downloaded to the computer, the movie is deleted from the cameramemory.

Please note the following:

· The functionality is supported by most EOS cameras, specially new models.· It is possible to take a remote picture instead of starting movie recording when the camera is in

movie mode. However TCamRemote will then call OnRemoteEvent with the Event parameter setto RemoteEventCallbackReleaseMovieRead when the picture can be downloaded even if the datato be downloaded is a picture. The download (using the same method as when downloading amovie) will result in a picture file instead of a movie.

· Unlike in the case of still image shooting, we cannot transfer a movie file stored on camera'smemory directly to PC. The movie file will be recorded to the inserted memory card in the camera.So memory card must be inserted to the camera to shoot a movie. Also set the ReleaseModeparameter to ReleaseModeOnlyToCamera when calling the RemoteStart method.

· Camera which has Movie shooting switch or Movie shooting mode in the mode dial, set the switchor dial to the movie shooting mode. Then the electronic viewfinder will automatically start and thecamera will be ready to shoot movie.

· Camera which doesn't have Movie shooting switch or Movie shooting mode in the mode dial,enable movie recording in the electronic viewfinder settings. Then if you start remote viewfinderlike in the case of still image shooting the viewfinder will start in movie shooting mode.

· It might be required to click a button on the camera to activate movie shooting before calling theRemoteStartMovieRecording method. Typically the camera displays the message "Press <->button to activate movie shooting". Press the requested button to enable movie recording mode in

83

80 82 83

83 84

84

42

56

46

80

60

92

62

95

80

Page 94: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote87

© 2019 Alkenius Systems

the camera.

If any errors occurs an ECamException exception will be raised.

3.5.79 TCamRemote.RemoteStartViewfinder

Starts the remote viewfinder.

Syntax:procedure RemoteStartViewfinder(CallbackMethod : TViewfinderCallbackType; ViewfinderUseCanonThread : boolean; PictureDirectory : ShortString);

TViewfinderCallbackType = (ViewfinderCallbackFilename, ViewfinderCallbackStream);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.Check DoSupportViewfinder in RemoteFuncType returned by the Connect method, before callingthis method.

Description:The camera starts the electronic remote viewfinder. A PowerShot camera will take 320x240 pictures rapidly and call the OnViewfinderEvent when apicture is available.An EOS-camera will request viewfinder 1024x680 pictures in interval defined in EOSViewfinderRefreshInterval property. If a request is successful an OnViewfinderEvent istriggered. If the viewfinder picture not is ready from the camera the request is canceled and a new willbe issued EOSViewfinderRefreshInterval milliseconds later. Note that ifEOSViewfinderRefreshInterval is 0 it means that the viewfinder request is done manually by callingthe RemoteGetViewfinderImage method.

Please note the following:

· It is not recommended that the viewfinder is on when setting remote parameters using the RemoteSetRemoteParams method. The parameters will be set but it will take time, since theviewfinder may be restarted for each new parameter set. Therefore turn off the viewfinder beforesetting remote parameters, then turn it on again after the parameters have been set.

Parameter:- ViewfinderUseCanonThread: Defines the threading model for the viewfinder (only valid forPowerShot cameras, for EOS cameras this parameter is not used).

· If set to true then will Canon threading model be used· If set to false then will TCamRemote threading model be used

In short the Canon and TCamRemote threading model can be used for PowerShot cameras (not usedby EOS cameras). During viewfinder operations viewfinder pictures are handled automatically and an OnViewfinderEvent is triggered each time a new viewfinder pictures is available.

For EOS cameras the threading model is set so that OnViewfinderEvent event is triggered in theapplication main thread, making it safe to use to update any components (e.g. a picture on a Windowsform) without any problems.

Details when using the Canon or TCamRemote threading model (only used by PowerShot cameras):When Canon threading model is used, it means that the OnViewfinderEvent event is triggered fromthe thread handling the camera (the Canon thread). Note that this thread is not the same as theapplication main thread, meaning that the event triggered not can update any visual components.Instead save the viewfinder picture in a queue and then use an timer to monitor if any new viewfinderpicture is available and update any visual components using code when the timer is triggered (whichexecutes in the main thread). When TCamRemote threading model is used it means that the TCamRemote thread handles theviewfinder picture. This makes the OnViewfinderEvent event thread safe making it possible to

42

56

46

80

46

96

42 96

42

42

69

73

96

96

96

96

Page 95: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 88

© 2019 Alkenius Systems

update any visual components directly from the event code.The TCamRemote threading model is recommended, since it enhances performance over Canonthreading model, but may encounter errors if long shooting (typically more than 10 minutes) with theviewfinder occurs. This has not been seen in the Delphi VCL version of TCamRemote. However theActiveX version together with Visual Basic 6 has seen a "list index out of bounds" problems. If the "listindex out of bounds" message is encountered switch to the Canon threading model. Using the Canonthreading model may lower the performance of the program.

- CallbackMethod: Defines the method used for transferring using the viewfinder pictures from thecamera in the OnViewfinderEvent . Either get the pictures as small .jpg files (ViewfinderCallbackFilename) or as a memory stream (ViewfinderCallbackStream). See theOnViewfinderEvent for details.- PictureDirectory: Defines the directory to which downloaded viewfinder pictures are stored, see theOnViewfinderEvent

If any errors occurs an ECamException exception will be raised.

3.5.79.1 RemoteStartViewfinder example

//Check if remote viewfinder is supported if (not CamRemote.RemoteStart_DoSupportViewfinder) then begin ECamException.Create('The connected camera does not support remote viewfinder'); end; //Updates a status bar StatusBar.SimpleText := 'Starts the remote viewfinder'; //Starts remote viewfinder CamRemote.RemoteStartViewfinder(ViewfinderCallbackStream, true);

3.5.80 TCamRemote.RemoteStopViewfinder

Stops the remote viewfinder.

Syntax:procedure RemoteStopViewfinder;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The camera remote viewfinder must be active, after calling the RemoteStartViewfinder method.

Description:The remote viewfinder is stopped and no more pictures will be taken in remote mode. The camera willafter the remote viewfinder is stopped still be in remote mode and connected.

Please note the following:

· TCamRemote will automatically delete intermediate viewfinder jpg-files when calling this method.

3.5.81 TCamRemote.RemoteSupported

Returns true if the camera supports remote mode.

Syntax:function RemoteSupported: boolean;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.

Description:Use this function before starting the remote mode, by calling the RemoteStart method.

If any errors occurs an ECamException exception will be raised.

96

96

96

42

56

46

80

87

56

46

80

42

Page 96: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote89

© 2019 Alkenius Systems

3.5.82 TCamRemote.RemoteTakePicture

Takes a picture and returns the number of pictures that is ready to be read, using the RemoteGetPicture method.

Syntax:procedure RemoteTakePicture;

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description:Triggers the camera to take a picture remotely. A thumbnail and/or picture will be created in thecamera and transferred to the PC depending on the parameters set when calling the RemoteStartmethod. RemoteTakePicture will return immediately when the request has been sent to the camera.

Please note the following:

· It is possible to take a picture when using remote viewfinder, only if theRemoteStart_ReqViewfinderOffWhenShooting method returns false.

· The RemoteTakePicture method will return as soon as a request to the camera to take the pictureis sent. The OnRemoteEvent event will be called twice when taking a picture. First with RemoteEventCallbackReleaseStart (with exception for newer EOS cameras including the EOS20D) when the picture is taken and RemoteEventCallbackReleaseComplete (for older EOScameras and PowerShot cameras) or RemoteEventCallbackReleaseImageReady (only fornewer EOS cameras including the EOS 20D) when the picture data is available to be read.

· When taking RAW pictures remotely with EOS and PowerShot generation 2 the CR2 format isused. Also note when taking a picture with RAW + JPG two OnRemoteEvent occurs. The firstis the event for the download of the CR2 and the second for the JPG file.

If any errors occurs an ECamException exception will be raised.

3.5.82.1 RemoteTakePicture example

procedure TFormRemote.TakeThePicture;begin //Starts remote mode mCameraCapability := CamRemote.RemoteStart(ReleaseModeOnlyToPC, ReleaseDataKingTakeBothThumbAndPic, true); //Take a picture. CamRemote.RemoteTakePicture;end;

3.5.83 TCamRemote.SetOwnerName

Sets the owner name in the camera.

Syntax:procedure SetOwnerName(OwnerName : ShortString);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.

Description:Sets the owner name in the camera.

Parameter:- OwnerName: The owner name to be set.

If any errors occurs an ECamException exception will be raised.

62

56

46

80

80

84

92

99

99

99

92

42

56

46

42

Page 97: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 90

© 2019 Alkenius Systems

3.5.84 TCamRemote.SetRAWDevelopmentParameters

Sets RAW development parameters for the RAW object.

Syntax:procedure SetRAWDevelopmentParameters(RAWParamKind : TRAWParamType; Value : integer);

Prerequisite:The RAW object has successfully been created using the OpenRAWObject method.

Description:It is only possible to set one RAW development parameter at a time. Use the RAWParamKind to setwhich parameter to set and value parameter as the ordinal of the enums listed below:RAWParamKind: Interpret as datatypeRAWParamWhiteBalanceSetting RemoteFormatWBTypeRAWParamWhiteBalanceKelvin Kelvin degress. Only valid if the RAWParamKind parameter

is set to RemoteFormatWBKelvin in the camera.degrees

Parameter:- RAWParamKind: The RAW development parameter to set.- Value: The RAW development parameter (ordinal) value..

If any errors occurs an ECamException exception will be raised.

3.5.85 TCamRemote.SetTimeInCamera

Sets time in the camera.

Syntax:procedure SetTimeInCamera(YearCam : integer; MonthCam : integer; DayCam : integer; HourCam : integer; MinutesCam : integer; SecondCam : integer; MillisecondCam : integer);

Prerequisite:The connected camera(s) have been enumerated using the OpenCameraEnumeration method.A successful connection must have been established with the Connect method.

Description:Sets the camera time to the time in the time parameters.

Parameter:- The parameters are quite easy to understand and defines the time to set.

Please note the following:

· The functionality is not supported by EOS cameras

If any errors occurs an ECamException exception will be raised.

3.6 TCamRemote events

3.6.1 List of events in TCamRemote

OnEventOnGetPictureEventOnRawDevelopEventOnRemoteEventOnRemoteGetMovieEventOnRemoteGetPictureEvent

57

100

42

56

46

42

91

91

92

92

95

94

Page 98: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote91

© 2019 Alkenius Systems

OnRemoteProbeParamEventOnRemoteTakePictureEventOnViewfinderEvent

3.6.2 TCamRemote.OnEvent

Occurs for camera events (e.g. that the USB connection is lost).

Syntax:property OnEvent:TNotifyOCXCameraEvent

TNotifyOCXCameraEvent=procedure(Severity : EventSeverityType ; EventNum : EventEnumType ) of object;

Prerequisite:A successful connection must have been established with the Connect method.

Description:-

3.6.2.1 OnEvent example

//Camera event handlerprocedure TFormRemote.CamRemoteActiveXEvent(ASender: TObject; Severity, EventNum: TOleEnum);var camera_text : string; text_message : string; message_out : MessageQueueElementType;begin FormRemote.Log('Callback Severity=' + inttostr(Ord(Severity)) + 'Event =' + inttostr(Ord(EventNum))); //Do not handle information message, not of interest if (Severity = Ord(EventSeverityInfo)) then exit; camera_text := 'Camera event-'; case Severity of Ord(EventSeverityWarning) : text_message := 'Camera warning event'; Ord(EventSeverityClosing) : text_message := 'Camera shutdown event'; end; case EventNum of Ord(EventBatteryLevelNormal) : camera_text := camera_text + 'Battery levelnormal'; Ord(EventBatteryLevelWeak) : camera_text := camera_text + 'Battery level weak'; Ord(EventBatteryLevelSafetyLow) : camera_text := camera_text + 'Battery levelsafety low'; Ord(EventBatteryLevelLB) : camera_text := camera_text + 'Battery level LB'; Ord(EventDialChanged) : camera_text := camera_text + 'Dial changed'; Ord(EventCFGateOpened) : camera_text := camera_text + 'CF gate opened'; Ord(EventBatteryCoverOpened) : camera_text := camera_text + 'Battery coveropened'; Ord(EventConnectionDisappeared) : camera_text := camera_text + 'Camera connectiondisappeared'; Ord(EventUnrecoverableError) : camera_text := camera_text + 'Unrecoverableerror'; Ord(EventUnkonwnCommandReceived) : camera_text := camera_text + 'Unknown commandreceived'; Ord(EventRemoteParameterChanged) : camera_text := camera_text + 'Remote parameterchanged'; Ord(EventRemoteCaptureError) : camera_text := camera_text + 'Capture error'; Ord(EventRemoteShutdownReasonNotKnown) : camera_text := camera_text + 'Shutdown reason notknown'; end; //Log the camera event FormRemote.Log(camera_text);end;

3.6.3 TCamRemote.OnGetPictureEvent

Occurs when copying data for a picture stored on the camera to the computer.

Syntax:

95

96

96

99

99

46

Page 99: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 92

© 2019 Alkenius Systems

property OnGetPictureEvent: TNotifyGetPictureEvent;

TNotifyGetPictureEvent=procedure(PercentageDone:integer) of object;

Prerequisite:A successful connection must have been established with the Connect method.A successful call to the OpenCameraCollection method, to list pictures on the camera.The picture is received using the GetPicture method.

Please note the following:

· For each picture transferred from camera to computer this event is called in two cycles (a cycle isa transfer from 0 to 100% of a picture) and not only one.

Description:This event is a callback of progress during file transfer when using the GetPicture method.

3.6.3.1 OnGetPictureEvent example

procedure TFormRemote.CamRemoteGetPictureEvent( PercentageDone: Integer);begin FormMain.StatusBar.SimpleText := 'Copies picture from camera to computer'; FormMain.ProgressBar.Position := PercentageDone;end;

3.6.4 TCamRemote.OnRawDevelopEvent

Occurs when the TIFF or JPEG file is developed from the RAW object.

Syntax:property OnRawDevelopEvent:TNotifyRawDevelopEvent

TNotifyRawDevelopEvent=procedure(PercentageDone:integer) of object;

Prerequisite:The RAW object has successfully been created using the OpenRAWObject method.The TIFF/JPEG file is developed from the RAW object using the DevelopRAWPicture method.

Description:This event is a callback of progress during TIFF/JPEG file creation from the RAW object when usingthe DevelopRAWPicture method.

3.6.4.1 OnRawDevelopEvent example

procedure TFormMain.CamRemoteRawDevelopEvent(PercentageDone: Integer);begin ProgressBar.Position := PercentageDone;end;

3.6.5 TCamRemote.OnRemoteEvent

Occurs for camera remote events (e.g. that remote viewfinder is turned off).

Syntax:property OnRemoteEvent: TNotifyOCXRemoteEvent;

TNotifyOCXRemoteEvent=procedure(EventNum : RemoteEventCallbackType; EventValid : NotifyRemoteEventValidType; //Not currentlyused NumOfEvents : integer; TypeOfPicture : TypeOfPictureType) of object;

type RemoteEventCallbackType = (RemoteEventCallbackNotUsed, RemoteEventCallbackReleaseStart, RemoteEventCallbackReleaseComplete, RemoteEventCallbackResetHWError, RemoteEventCallbackChangedByUI, RemoteEventCallbackCamReleaseOn, RemoteEventCallbackViewfinderOn,

46

54

52

52

57

51

51

Page 100: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote93

© 2019 Alkenius Systems

RemoteEventCallbackViewfinderOff, RemoteEventCallbackReleaseImageReady, RemoteEventCallbackReleaseMovieReady,

RemoteEventCallbackReleaseImageFromCFCardReady);

NotifyRemoteEventValidType = (NoNotifyRemoteEventValid, NotifyRemoteEventValid1, NotifyRemoteEventValid2); TypeOfPictureType = (TypeOfPictureNo, TypeOfPictureThumbnail, TypeOfPicturePicture);

Prerequisite:A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.

Description of RemoteEventCallbackType:The interpretation of RemoteEventCallbackType is:RemoteEventCallbackNotUsed -RemoteEventCallbackReleaseStart The request for taking a picture remotely is

accepted by the camera.RemoteEventCallbackReleaseComplete Picture taken remotely is available to be read using

the RemoteGetPicture method. Used byPowerShot cameras. The number of pictures toreceive is stored in the NumOfEvents parameterdata.

RemoteEventCallbackResetHWError A hardware error has occurred.RemoteEventCallbackChangedByUI The remote parameters has been changed

manually in the camera. Reread new remoteparameters using the RemoteGetRemoteParams

method.RemoteEventCallbackCamReleaseOn The camera shutter release

button was pressed. Some camera modelsdo not send this event.Note:This event only shows that the camerashutter release button was pressed. It doesnot show that an image was captured. Ifthe RemoteTakePicture method is executedafterthis event is received, it will be possibleto capture images in the way similar touse the camera shutter release button.

RemoteEventCallbackViewfinderOn The remote viewfinder is on.RemoteEventCallbackViewfinderOff The remote viewfinder is off.RemoteEventCallbackReleaseImageReady

Picture or thumbnail taken remotely is available tobe read using the RemoteGetPicture method.Used only by EOS camera newer and including the20D. The TypeOfPicture parameter is used to gettype of picture to get.

RemoteEventCallbackReleaseMovieReady

The movie taken (stored on CF or SD card) isavailable to be read using the RemoteGetMoviemethod.

RemoteEventCallbackReleaseImageFromCFCardReady

The picture taken (stored on CF or SD card) isavailable to be read using the RemoteGetCFPicture

method.

46

80

62

64

89

62

62

61

Page 101: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 94

© 2019 Alkenius Systems

3.6.5.1 OnRemoteEvent example

procedure TFormRemote.CamRemoteActiveXRemoteEvent(ASender: TObject; EventNum, EventValid: TOleEnum; NumOfEvents: Integer; TypeOfPicture: TOleEnum);var time_string : string;begin DateTimeToString(time_string, 'yymmddhhnnss', Now); Log('Remote callback event=' + inttostr(Ord(EventNum)) + ' Time=' + time_string); //Check if the release button was pressed on the camera. //This applies to PowerShot cameras. EOS cameras do not generate //this event when pressing the shutter butten. Instead the EOS camera //takes the picture and generates a RemoteEventCallbackReleaseStart event. case EventNum of Ord(RemoteEventCallbackCamReleaseOn) : begin TimerTakePicture.Enabled := true; end; Ord(RemoteEventCallbackReleaseComplete) : begin //Using queue (by increasing mPictureToReceive) to indicate that //a new picture can be downloaded. The picture could be downloaded //immidiately in this event, but this construction looks better //and safer... case REMOTE_MODE of ReleaseDataKingTakeBothThumbAndPic : begin mThumbnailsToReceive := mThumbnailsToReceive + NumOfEvents; mPicturesToReceive := mPicturesToReceive + NumOfEvents; end; ReleaseDataKindTakeOnlyPicture : begin mPicturesToReceive := mPicturesToReceive + NumOfEvents; end; end; end; Ord(RemoteEventCallbackReleaseImageReady) : begin //Using queue (by increasing mPictureToReceive) to indicate that //a new picture can be downloaded. The picture could be downloaded //immidiately in this event, but this construction looks better //and safer... case TypeOfPicture of Ord(TypeOfPictureThumbnail) : mThumbnailsToReceive := mThumbnailsToReceive + 1; Ord(TypeOfPicturePicture) : mPicturesToReceive := mPicturesToReceive + 1; end; end; Ord(RemoteEventCallbackChangedByUI) : begin if (FormRemote.ReleaseProcessActive) then begin FormRemote.ButtonGetCamSetClick(Application); end; end; end;end;

3.6.6 TCamRemote.OnRemoteGetPictureEvent

Occurs when copying data for a picture to a destination file.

Syntax:property OnRemoteGetPictureEvent: TNotifyRemoteGetPictureEvent;

TNotifyRemoteGetPictureEvent=procedure(PercentageDone:integer) of object;

Prerequisite:A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.A picture must have been taken using the RemoteTakePicture method.The picture is received using the RemoteGetPicture method.

Description:This event is a callback of progress during file transfer when using the RemoteGetPicture method.

46

80

89

62

62

Page 102: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote95

© 2019 Alkenius Systems

3.6.6.1 OnRemoteGetPictureEvent example

procedure TFormRemote.CamRemoteRemoteGetPictureEvent( PercentageDone: Integer);begin FormRemote.StatusBar.SimpleText := 'Receiving the picture to disc'; FormRemote.ProgressBar.Position := PercentageDone;end;

3.6.7 TCamRemote.OnRemoteGetMovieEvent

Occurs when copying data for a movie to a destination file.

Syntax:property OnRemoteGetMovieEvent: TNotifyRemoteGetMovieEvent;

TNotifyRemoteGetMovieEvent=procedure(PercentageDone:integer) of object;

Prerequisite:A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.A movie must have been taken using the RemoteStartMovieRecording /RemoteEndMovieRecording methods.The movie is received using the RemoteGetMovie method.

Description:This event is a callback of progress during file transfer when using the RemoteGetMovie method.

Please note the following:

· Read the section about the RemoteStartMovieRecording method to get a short proceduredescription how to record and download movies from the camera..

3.6.7.1 OnRemoteGetMovieEvent example

procedure TFormRemote.CamRemoteRemoteGetMovieEvent( PercentageDone: Integer);begin FormRemote.StatusBar.SimpleText := 'Receiving the movie to disc'; FormRemote.ProgressBar.Position := PercentageDone;end;

3.6.8 TCamRemote.OnRemoteProbeParamEvent

Occurs when probing remote parameters on a camera.

Syntax:property OnRemoteProbeParamEvent: TNotifyRemoteProbeParamEvent;

TNotifyRemoteProbeParamEvent=procedure(PercentageDone:integer) of object;

Prerequisite:A successful connection must have been established with the Connect method.A successful call to the RemoteStart method, to start camera remote mode and probing thecamera for remote parameters.

Description:This event is a callback of progress during probing of remote parameters in the RemoteStartmethod.

3.6.8.1 OnRemoteProbeParamEvent example

procedure TFormRemote.CamRemoteRemoteProbeParamEvent( PercentageDone: Integer);begin FormRemote.StatusBar.SimpleText := 'Probes remote parameters. ' + IntToStr(PercentageDone) + ' percent done.'; FormRemote.ProgressBar.Position := PercentageDone;end;

46

80

86

60

62

62

86

46

80

80

Page 103: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 96

© 2019 Alkenius Systems

3.6.9 TCamRemote.OnRemoteTakePictureEvent

Occurs when transferring data from the camera to the PC.

Syntax:property OnRemoteTakePictureEvent: TNotifyRemoteTakePictureEvent;

TNotifyRemoteTakePictureEvent=procedure(PercentageDone:integer) of object;

Prerequisite:A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.A picture is taken using the RemoteTakePicture method.

Description:This event is a callback of progress during file transfer from the camera to the PC when using the RemoteTakePicture method.

3.6.9.1 OnRemoteTakePictureEvent example

procedure TFormRemote.CamRemoteRemoteTakePictureEvent( PercentageDone: Integer);begin FormRemote.StatusBar.SimpleText := 'Handles the picture'; FormRemote.ProgressBar.Position := PercentageDone;end;

3.6.10 TCamRemote.OnViewfinderEvent

Occurs when a remote viewfinder jpeg picture (320x240 for PowerShot cameras and different sizes(see note) for EOS-cameras) is available.

Syntax:property OnViewfinderEvent: TNotifyOCXViewfinderEvent;

TNotifyOCXViewfinderEvent=procedure(ViewfinderFileName : shortstring; ViewfinderDataAddress : integer; ViewfinderSize : integer; Metadata_Valid : boolean; Metadata_ZoomPosition_X : integer; Metadata_ZoomPosition_Y : integer; Metadata_ZoomRect_Point_X : integer; Metadata_ZoomRect_Point_Y : integer; Metadata_ZoomRect_Rect_Width : integer; Metadata_ZoomRect_Rect_Height : integer; Metadata_ImagePosition_X : integer; Metadata_ImagePosition_Y : integer; Metadata_CoordSystem_Width : integer; Metadata_CoordSystem_Height : integer Metadata_Zoom : integer) of object;

Prerequisite:A successful connection must have been established with the Connect method.The camera must be in remote mode, set by the RemoteStart method.The remote viewfinder must be active, set by the RemoteStartViewfinder .

Please note the following:The size of the viewfinder pictures depends on the camera model e.g. mid to high end models like theCanon EOS 50D are 1024x680 pixels, Canon EOS 450D/Rebel XSi images are 848x560 pixels andCanon EOS 1000D/Rebel XS images are 768x512 pixels.The viewfinder pictures are downloaded to the directory set by the PictureDirectory parameter in the RemoteStartViewfinder method.

Description:OnViewfinderEvent is called each time a new remote viewfinder picture is available from the camera.A PowerShot camera will take a new remote viewfinder picture, when this event exits.The OnViewfinderEvent is either executed in Canon threading model or TCamRemote threadingmodel, which is set by the RemoteStartViewfinder method. If TCamRemote threading model is usedany visual components can be updated, since the OnViewfinderEvent is executing in the main thread.

46

80

89

89

46

80

87

87

Page 104: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote97

© 2019 Alkenius Systems

If Canon threading model is used, do not update any visual components, since the OnViewfinderEventis triggered from the Canon thread handling the camera. Instead save the viewfinder picture in aqueue and then use an timer to monitor if any new viewfinder picture is available and update any visualcomponents using code when the timer is triggered (which executes in the main thread).The picture can be transferred using two methods. Which method that is used is set by theCallbackMethod in the RemoteStartViewfinder method.

CallbackMethod set to ViewfinderCallbackFilename:The ViewfinderFileName parameter in this event holds the filename of the small viewfinder jpg-file.TheViewfinderDataAddress and ViewfinderSize parameters can be omitted.The user is not responsible to delete the viewfinder file with filename as set by theViewfinderFileName parameter, instead TCamRemote will delete these intermediate files when callingthe RemoteStopViewfinder method. The viewfinder file is not guaranteed to have a unique name,instead TCamRemote will cycle the filename using a sequence of numbers. The result is that thefilename will be recycled in 100 pictures.

CallbackMethod set to ViewfinderCallbackStream:The viewfinder file (a small jpg file) is stored in a memory buffer. The size of the buffer is defined inthe ViewfinderSize parameter and the address to the buffer is stored in the ViewfinderDataAddress.Note that the ViewfinderDataAddress parameter is not a pointer, instead it holds the address to thebuffer. To use the data create a pointer using the address and then copy the data to a local datastream before exiting this event. The ViewfinderFileName parameter can be omitted.

The histogram for the viewfinder picture can be received using the RemoteGetViewfinderHistogram.

Description of the Metadata_XXX parameters :The EOS viewfinder does support for newer models extended data with the viewfinder picture. It isincluded in the Metadata parameter. The interpretation of Metadata (the ViewfinderPositionType) is:Valid Is true only if the Metadata is valid or not. Is required to be true to use any otherdata

members.ZoomPosition The focus and zoom border position for live view.

The coordinates are the upper left coordinates of the focus and zoom border. Thesevalues expressed in a coordinate system of CoordSystem (see below). Note:The size of the focus and zoom border is one fifth the size of CoordSystem when 5xzoom or the entire screen is used, and one tenth the size of CoordSystem when 10xzoom is used.

ZoomRect Gets the focus and zoom border rectangle for live view.The “point” member is the upper left coordinates of the focus and zoom border. Andthe “size” member is the rectangle of focus border size. These values expressed in acoordinate system of CoordSystem (see below)

ImagePosition Gets the cropping position of the enlarged live view image.The coordinates used are the upper left coordinates of the enlarged image. Thesevalues expressed in a coordinate system of CoordSystem (see below).

CoordSystem The coordinate system is used to express each value of the live view image.Zoom Gets the zoom position (normal, 5x or 10x).

3.6.10.1 OnViewfinderEvent example

Example with ViewfinderCallbackStreamprocedure TFormRemote.CamRemoteActiveXViewfinderEvent(ASender: TObject; const ViewfinderFileName: WideString; ViewfinderDataAddress, ViewfinderSize: Integer);var jpg : TJpegImage; jpg_mem_stream : TMemoryStream;begin if (ComboBoxViewfinderThread.ItemIndex <> VIEWFINDER_CANON_THR) then begin jpg := TJpegImage.Create; jpg_mem_stream := TMemoryStream.Create;

87

88

68

Page 105: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 98

© 2019 Alkenius Systems

//Get the 320x240 picture and save it into a Bitmap try jpg_mem_stream.WriteBuffer((Ptr(ViewfinderDataAddress))^, ViewfinderSize); jpg_mem_stream.Position := 0; jpg.LoadFromStream(jpg_mem_stream); FormViewFinder.Image.Picture.Assign(jpg); finally jpg_mem_stream.Free; jpg.Free; end; end else begin if (not mNewViewfinder) then begin jpg := TJpegImage.Create; jpg_mem_stream := TMemoryStream.Create; //Get the picture and save it into a Bitmap try jpg_mem_stream.WriteBuffer((Ptr(ViewfinderDataAddress))^, ViewfinderSize); jpg_mem_stream.Position := 0; jpg.LoadFromStream(jpg_mem_stream); mViewfinderPic.Assign(jpg); finally jpg_mem_stream.Free; jpg.Free; end; mNewViewfinder := true; end; end;end;

Example with ViewfinderCallbackFilenameprocedure TFormRemote.CamRemoteActiveXViewfinderEvent(ASender: TObject; const ViewfinderFileName: WideString; ViewfinderDataAddress, ViewfinderSize: Integer);var jpg : TJpegImage;begin if (ComboBoxViewfinderThread.ItemIndex <> VIEWFINDER_CANON_THR) then begin jpg := TJpegImage.Create; //Get the picture and save it into a Bitmap try jpg.LoadFromFile(ViewfinderFileName); FormViewFinder.Image.Picture.Assign(jpg); finally jpg.Free; end; end else begin if (not mNewViewfinder) then begin jpg := TJpegImage.Create; try jpg.LoadFromFile(ViewfinderFileName); mViewfinderPic.Assign(jpg); finally jpg.Free; end; mNewViewfinder := true; end; end;end;

procedure TFormViewFinder.TimerUpdateViewfinderTimer(Sender: TObject);begin //Check if any new Viewfinder picture is received if (FormRemote.NewViewfinder) then begin //Get the picture and update the image on the dialogue Image.Picture.Assign(FormRemote.ViewfinderPic); FormRemote.NewViewfinder := false; end;end;

Page 106: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote99

© 2019 Alkenius Systems

3.7 TCamRemote types

3.7.1 BatterySourceType

Syntax: BatterySourceType = (BatterySourceUnknown, BatterySourceAC, BatterySourceLitium, BatterySourceNiMH, BatterySourceNiCD, BatterySourceAlMN);

3.7.2 BatteryStatusType

Syntax: BatteryStatusType = (BatteryStatusUnknown, BatteryStatusNormal, BatteryStatusWeak, BatteryStatusSafetyLow);

3.7.3 CamModType

Syntax: CamModType = (CamModNone, CamModPowerShot, CamModEOS, CamModPowerShotGen2);

DescriptionUsed to define if PowerShot (generation 1 or generation 2) or EOS camera is used.

3.7.4 EventCallbackType

Syntax: EventSeverityType = (EventSeverityNotUsed, EventSeverityInfo, EventSeverityWarning, EventSeverityClosing);

EventEnumType = (EventNotUsed, EventBatteryLevelNormal, EventBatteryLevelWeak, EventBatteryLevelSafetyLow, EventBatteryLevelLB, EventDialChanged, EventCFGateOpened, EventBatteryCoverOpened, EventConnectionDisappeared, EventUnrecoverableError, EventUnkonwnCommandReceived, EventRemoteParameterChanged, EventRemoteCaptureError, EventRemoteShutdownReasonNotKnown, EventRemoteNewSupportedParameters);

DescriptionEventSeverityType and EventEnumType are used as a parameter to the OnEvent event. Theinterpretation of EventSeverityType is:EventSeverityInfo The event is of informational type, and is not critical.EventSeverityWarning The event is more severe and can cause problems if no

measures are taken. Example of a severe event islow/weak battery level.

EventSeverityClosing The event is critical and the connection to the camera isimmediately closed.

3.7.5 RemoteEventCallbackType

Syntax: RemoteEventCallbackType = (RemoteEventCallbackNotUsed, RemoteEventCallbackReleaseStart, RemoteEventCallbackReleaseComplete,

91

Page 107: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 100

© 2019 Alkenius Systems

RemoteEventCallbackResetHWError, RemoteEventCallbackChangedByUI, RemoteEventCallbackCamReleaseOn, RemoteEventCallbackViewfinderOn, RemoteEventCallbackViewfinderOff, RemoteEventCallbackReleaseImageReady);

DescriptionRemoteEventCallbackType is used as a parameter to the OnRemoteEvent event. Theinterpretation of RemoteEventCallbackType is:RemoteEventCallbackReleaseStart A take picture remote request is sent to the

camera.RemoteEventCallbackReleaseComplete Pictures that have been remotely taken can be

received using the RemoteGetPicturemethod.

RemoteEventCallbackResetHWError Hardware error.RemoteEventCallbackChangedByUI The user has change remote parameters

manually in the camera. Use the RemoteGetRemoteParams method to updatecurrent used remote parameters.

RemoteEventCallbackCamReleaseOn The user has manually taken a picture bypressing the take picture button on the camera.Receive the taken picture using the RemoteGetPicture method.

RemoteEventCallbackViewfinderOn The remote viewfinder is on.RemoteEventCallbackViewfinderOff The remote viewfinder is off.RemoteEventCallbackReleaseImageReady Same as RemoteEventCallbackReleaseComplete

but only valid for newer EOS cameras ("EOS 20Dand forward").

3.7.6 RemoteReleaseParametersType

Syntax: //Remote Format Quality type RemoteFormatQualityType = (RemoteFormatQualityNotUsed, RemoteFormatQualityEconomy, RemoteFormatQualityNormal, RemoteFormatQualityFine, RemoteFormatQualitySuperfine, RemoteFormatQualityRAW);

//Remote Format Size type RemoteFormatSizeType = (RemoteFormatSizeNotUsed, RemoteFormatSizeLarge, RemoteFormatSizeMedium, RemoteFormatSizeSmall, RemoteFormatSizeMedium1, RemoteFormatSizeMedium2, RemoteFormatSizeMedium3);

//Remote Shooting mode type RemoteFormatShootingModeType = (RemoteFormatShootingModeNotUsed, RemoteFormatShootingModeAuto, RemoteFormatShootingModeManual, RemoteFormatShootingModeFarScene, RemoteFormatShootingModeFastShutter, RemoteFormatShootingModeSlowShutter, RemoteFormatShootingModeNightScene, RemoteFormatShootingModeGrayScene, RemoteFormatShootingModeSepia, RemoteFormatShootingModePortrait, RemoteFormatShootingModeSport, RemoteFormatShootingModeMacro, RemoteFormatShootingModeBW, RemoteFormatShootingModePanFocus, RemoteFormatShootingModeVivid, RemoteFormatShootingModeNeutral, RemoteFormatShootingModeProgram, RemoteFormatShootingModeTV, RemoteFormatShootingModeAV, RemoteFormatShootingModeADep, RemoteFormatShootingModeMDep,

92

62

64

62

Page 108: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote101

© 2019 Alkenius Systems

RemoteFormatShootingModeBulb, RemoteFormatShootingModeManual2, RemoteFormatShootingModeFlashOff, RemoteFormatShootingModeLongShutter, RemoteFormatShootingModeSuperMacro, RemoteFormatShootingModeFoliage, RemoteFormatShootingModeIndoor, RemoteFormatShootingModeFireworks, RemoteFormatShootingModeBeach, RemoteFormatShootingModeUnderwater, RemoteFormatShootingModeSnow, RemoteFormatShootingModeKidsAndPets, RemoteFormatShootingModeNightSnapshot, RemoteFormatShootingModeDigitalMacro, RemoteFormatShootingModeMyColors, RemoteFormatShootingModePhotoInMovie, RemoteFormatShootingModeCreativeAuto, RemoteFormatShootingModeSceneIntelligentAuto, RemoteFormatShootingModeNightPortrait, RemoteFormatShootingModeBacklitScenes, RemoteFormatShootingModeSCN, RemoteFormatShootingModeChildren, RemoteFormatShootingModeFood, RemoteFormatShootingModeCandlelightPortraits);

//Remote drive mode type RemoteFormatDriveModeType = (RemoteFormatDriveModeNotUsed, RemoteFormatDriveModeSingleFrame, RemoteFormatDriveModeContinous, RemoteFormatDriveModeVideo, RemoteFormatDriveModeHighSpeedContinous, RemoteFormatDriveModeLowSpeedContinous, RemoteFormatDriveMode10SecSelfTimer, RemoteFormatDriveMode2SecSelfTimer, RemoteFormatDriveModeSingleSilentShooting, RemoteFormatDriveMode10SecSelfTimerPlusContinousShots, RemoteFormatDriveMode14fpsHighSpeed, RemoteFormatDriveModeSilentSingleShooting, RemoteFormatDriveModeSilentCountinShooting, RemoteFormatDriveModeSilentHSContinuous, RemoteFormatDriveModeSilentLSContinuous); //Remote Exposure Compensation type RemoteFormatExposureCompType = (RemoteFormatExposureCompNotUsed, RemoteFormatExposureComp500Plus, RemoteFormatExposureComp466Plus, RemoteFormatExposureComp433Plus, RemoteFormatExposureComp400Plus, RemoteFormatExposureComp366Plus, RemoteFormatExposureComp333Plus, RemoteFormatExposureComp300Plus, RemoteFormatExposureComp266Plus, RemoteFormatExposureComp233Plus, RemoteFormatExposureComp200Plus, RemoteFormatExposureComp166Plus, RemoteFormatExposureComp133Plus, RemoteFormatExposureComp100Plus, RemoteFormatExposureComp066Plus, RemoteFormatExposureComp033Plus, RemoteFormatExposureComp0, RemoteFormatExposureComp033Minus, RemoteFormatExposureComp066Minus, RemoteFormatExposureComp100Minus, RemoteFormatExposureComp133Minus, RemoteFormatExposureComp166Minus, RemoteFormatExposureComp200Minus, RemoteFormatExposureComp233Minus, RemoteFormatExposureComp266Minus, RemoteFormatExposureComp300Minus, RemoteFormatExposureComp333Minus, RemoteFormatExposureComp366Minus, RemoteFormatExposureComp400Minus, RemoteFormatExposureComp433Minus, RemoteFormatExposureComp466Minus, RemoteFormatExposureComp500Minus); //Remote White Balance type RemoteFormatWBType = (RemoteFormatWBNotUsed, RemoteFormatWBAuto, RemoteFormatWBDaylight, RemoteFormatWBCloudy, RemoteFormatWBTungsten,

Page 109: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 102

© 2019 Alkenius Systems

RemoteFormatWBFluorscent, RemoteFormatWBFlash, RemoteFormatWBFluorescentLight, RemoteFormatWBCustom, RemoteFormatWBCustom1, RemoteFormatWBCustom2, RemoteFormatWBBW, RemoteFormatWBShade, RemoteFormatWBKelvin, RemoteFormatWBPCSet1, RemoteFormatWBPCSet2, RemoteFormatWBPCSet3);

//Remote Autofocus Mode type RemoteFormatAFModeType = (RemoteFormatAFModeNotUsed, RemoteFormatAFModeOneShot, RemoteFormatAFModeAIServo, RemoteFormatAFModeAIFocus, RemoteFormatAFModeManual);

//Viewfinder Autofocus Mode type RemoteViewFinderAFModeType = (RemoteViewFinderAFModeNotUsed, RemoteViewFinderAFModeQuick, RemoteViewFinderAFModeLive, RemoteViewFinderAFModeLiveFace, RemoteViewFinderAFModeLiveMulti, RemoteViewFinderAFModeSmoothZone); //Remote Autofocus Distance type RemoteFormatAFDistType = (RemoteFormatAFDistNotUsed, RemoteFormatAFDistManual, RemoteFormatAFDistAuto, RemoteFormatAFDistUnknown, RemoteFormatAFDistZFCloseUp, RemoteFormatAFDistZFShortestDistance, RemoteFormatAFDistZFShortDistance, RemoteFormatAFDistZFMediumDistance, RemoteFormatAFDistZFFarDistance, RemoteFormatAFDistPanFocus, RemoteFormatAFDistSuperMacro, RemoteFormatAFDistInfinity, RemoteFormatAFDistSuperMacroOCM);

//Remote Autofocus Focusing Point(s) type RemoteFormatAFFocusingPointType = (RemoteFormatAFFocusingPointNotUsed, RemoteFormatAFFocusingPointOnCenterOnlyManual, RemoteFormatAFFocusingPointOnCenterOnlyAuto, RemoteFormatAFFocusingPointMultipleManual, RemoteFormatAFFocusingPointMultipleAuto, RemoteFormatAFFocusingPointMultipleRight, RemoteFormatAFFocusingPointMultipleCenter, RemoteFormatAFFocusingPointMultipleLeft);

//Remote AFLight type RemoteFormatAFLightType = (RemoteFormatAFLightNotUsed, RemoteFormatAFLightOn, RemoteFormatAFLightOff);

//Remote Flash setting type RemoteFormatFlashType = (RemoteFormatFlashNotUsed, RemoteFormatFlashOff, RemoteFormatFlashAuto, RemoteFormatFlashOn, RemoteFormatFlashRedEye, RemoteFormatFlashSlowSync, RemoteFormatFlashAutoRedEye, RemoteFormatFlashOnRedEye);

//Remote Flash Compensation setting type RemoteFormatFlashCompType = (RemoteFormatFlashCompNotUsed, RemoteFormatFlashComp200Plus, RemoteFormatFlashComp166Plus, RemoteFormatFlashComp133Plus, RemoteFormatFlashComp100Plus, RemoteFormatFlashComp066Plus, RemoteFormatFlashComp033Plus, RemoteFormatFlashComp0, RemoteFormatFlashComp033Minus, RemoteFormatFlashComp066Minus, RemoteFormatFlashComp100Minus, RemoteFormatFlashComp133Minus,

Page 110: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote103

© 2019 Alkenius Systems

RemoteFormatFlashComp166Minus, RemoteFormatFlashComp200Minus);

//Remote ML Weighting type RemoteFormatMLWeiType = (RemoteFormatMLWeiNotUsed, RemoteFormatMLWeiCenterWeighted, RemoteFormatMLWeiSpot, RemoteFormatMLWeiAveraging, RemoteFormatMLWeiEvaluative, RemoteFormatMLWeiPartial, RemoteFormatMLWeiCenterwWeightedAveraging);

//Remote Contrast, Color Gain, Sharpness type RemoteFormatLevelType = (RemoteFormatLevelNotUsed, RemoteFormatLevelLow, RemoteFormatLevelDefault, RemoteFormatLevelHigh);

//Remote ColorSpace type RemoteFormatColorSpaceType = (RemoteFormatColorSpaceNotUsed, RemoteFormatColorSpaceSRGB, RemoteFormatColorSpaceAdobeRGB);

//Remote ISO type RemoteFormatISOType = (RemoteFormatISONotUsed, RemoteFormatISOAuto, RemoteFormatISO50, RemoteFormatISO64, RemoteFormatISO80, RemoteFormatISO100, RemoteFormatISO125, RemoteFormatISO160, RemoteFormatISO200, RemoteFormatISO250, RemoteFormatISO320, RemoteFormatISO400, RemoteFormatISO500, RemoteFormatISO640, RemoteFormatISO800, RemoteFormatISO1000, RemoteFormatISO1250, RemoteFormatISO1600, RemoteFormatISO2000, RemoteFormatISO2500, RemoteFormatISO3200, RemoteFormatISO6400, RemoteFormatISO12800, RemoteFormatISO25600, RemoteFormatISO51200, RemoteFormatISO102400, RemoteFormatISO204800, RemoteFormatISO409600);

//Remote TV, in 1/3 steps type RemoteFormatTVType = (RemoteFormatTVNotUsed, RemoteFormatTV30Bulb, RemoteFormatTV30sec, RemoteFormatTV25sec, RemoteFormatTV20sec, RemoteFormatTV15sec, RemoteFormatTV13sec, RemoteFormatTV10sec, RemoteFormatTV8sec, RemoteFormatTV6sec, RemoteFormatTV5sec, RemoteFormatTV4sec, RemoteFormatTV3sec2, RemoteFormatTV2sec5, RemoteFormatTV2sec, RemoteFormatTV1sec6, RemoteFormatTV1sec3, RemoteFormatTV1sec, RemoteFormatTV0sec8, RemoteFormatTV0sec6, RemoteFormatTV0sec5, RemoteFormatTV0sec4, RemoteFormatTV0sec3, RemoteFormatTV1_4, RemoteFormatTV1_5, RemoteFormatTV1_6,

Page 111: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 104

© 2019 Alkenius Systems

RemoteFormatTV1_8, RemoteFormatTV1_10, RemoteFormatTV1_13, RemoteFormatTV1_15, RemoteFormatTV1_20, RemoteFormatTV1_25, RemoteFormatTV1_30, RemoteFormatTV1_40, RemoteFormatTV1_50, RemoteFormatTV1_60, RemoteFormatTV1_80, RemoteFormatTV1_100, RemoteFormatTV1_125, RemoteFormatTV1_160, RemoteFormatTV1_200, RemoteFormatTV1_250, RemoteFormatTV1_320, RemoteFormatTV1_400, RemoteFormatTV1_500, RemoteFormatTV1_640, RemoteFormatTV1_800, RemoteFormatTV1_1000, RemoteFormatTV1_1250, RemoteFormatTV1_1600, RemoteFormatTV1_2000, RemoteFormatTV1_2500, RemoteFormatTV1_3200, RemoteFormatTV1_4000, RemoteFormatTV1_5000, RemoteFormatTV1_6400, RemoteFormatTV1_8000, RemoteFormatTV1_10000, RemoteFormatTV1_12800, RemoteFormatTV1_16000);

//Remote AV, in 1/3 steps type RemoteFormatAVType = (RemoteFormatAVNotUsed, RemoteFormatAV1_0, RemoteFormatAV1_1, RemoteFormatAV1_2, RemoteFormatAV1_4, RemoteFormatAV1_6, RemoteFormatAV1_8, RemoteFormatAV2_0, RemoteFormatAV2_2, RemoteFormatAV2_5, RemoteFormatAV2_8, RemoteFormatAV3_2, RemoteFormatAV3_5, RemoteFormatAV4_0, RemoteFormatAV4_5, RemoteFormatAV5_0, RemoteFormatAV5_6, RemoteFormatAV6_3, RemoteFormatAV7_1, RemoteFormatAV8_0, RemoteFormatAV9_0, RemoteFormatAV10_0, RemoteFormatAV11_0, RemoteFormatAV13_0, RemoteFormatAV14_0, RemoteFormatAV16_0, RemoteFormatAV18_0, RemoteFormatAV20_0, RemoteFormatAV22_0, RemoteFormatAV25_0, RemoteFormatAV29_0, RemoteFormatAV32_0, RemoteFormatAV36_0, RemoteFormatAV40_0, RemoteFormatAV45_0, RemoteFormatAV51_0, RemoteFormatAV57_0, RemoteFormatAV64_0, RemoteFormatAV72_0, RemoteFormatAV81_0, RemoteFormatAV91_0);

//Remote Photo effect type RemoteFormatPhotoEffectType = (RemoteFormatPhotoEffectNotUsed,

Page 112: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote105

© 2019 Alkenius Systems

RemoteFormatPhotoEffectOff, RemoteFormatPhotoEffectVivid, RemoteFormatPhotoEffectNeutral, RemoteFormatPhotoEffectLowSharpening, RemoteFormatPhotoEffectSepia, RemoteFormatPhotoEffectBW);

//Remote Beep type RemoteFormatBeepType = (RemoteFormatBeepNotUsed, RemoteFormatBeepOn, RemoteFormatBeepOff); //PictureStyle. Only supported by 5D, 30D and newer EOS cameras in EOS-DLL type Int0_7Type = 0..7; IntN4_4Type = -4..4; MonochromeFilterType = (MonochromeFilterNone, MonochromeFilterYellow, MonochromeFilterOrange, MonochromeFilterRed, MonochromeFilterGreen); MonochromeToneType = (MonochromeToneNone, MonochromeToneSepia, MonochromeToneBlue, MonochromeToneViolet, MonochromeToneGreen); PictureStyleNumberType = (PictureStyleStandard, PictureStylePortrait, PictureStyleLandscape, PictureStyleNeutral, PictureStyleFaithful, PictureStyleMonochrome, PictureStyleUser1, PictureStyleUser2, PictureStyleUser3, PictureStylePC1, PictureStylePC2, PictureStylePC3, PictureStyleAuto, PictureStyleFineDetail);

//Either use "Saturation + ColorTone" or "MonochromeFilter + MonochromeTone" //for black and white picture styles. Please set the "Prop"Used flags correct, e.g. //SaturationUsed, ColorToneUsed := true //MonochromeFilterUsed, MonochromeToneUsed := false PictureStyleType = record PictureStyleEnabled : boolean; PictureStyle : PictureStyleNumberType; Contrast : IntN4_4Type; Sharpness : Int0_7Type; Saturation : IntN4_4Type; SaturationUsed : boolean; ColorTone : IntN4_4Type; ColorToneUsed : boolean; MonochromeFilter : MonochromeFilterType; MonochromeFilterUsed : boolean; MonochromeTone : MonochromeToneType; MonochromeToneUsed : boolean; end; //WhitebalanceShift type IntN9_9Type = -9..9; RemoteWhitebalanceShiftType = record WBShiftEnabled : boolean; AmberBlue : IntN9_9Type; GreenMagenta : IntN9_9Type; end;

DescriptionType used to get and set remote parameters to/from the camera. Is used by the RemoteSetRemoteParams and RemoteGetRemoteParams methods.The CompQualityPic2RAW and ImageSizePic2RAW parameters are used to set the JPEG picturequality and image size, when taking a RAW+JPEG picture. CompQuality must therefore be set toRemoteFormatQualityRAW. Set CompQualityPic2RAW and ImageSizePic2RAW properties to "notused" if only a RAW picture without an added JPEG picture is wanted. CompQualityPic2RAW andImageSizePic2RAW is not used when a JPEG picture without RAW data is taken.The drivemode parameter is not probed correctly with at least an EOS 5D and EOS-DLL. All elements

73 64

Page 113: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote component 106

© 2019 Alkenius Systems

in the drivemode seems to be accepted, however only a few really works with the camera. To avoidproblems, please use only the working elements.

3.7.7 TRAWParamType

Syntax: TRAWParamType = (RAWParamWhiteBalanceSetting, RAWParamWhiteBalanceKelvin);

3.7.8 TRemoteParamType

Syntax: TRemoteParamType = (RemoteParamCompQuality, RemoteParamCompQualityPic2RAW, RemoteParamImageSize, RemoteParamImageSizePic2RAW, RemoteParamStrobeSetting, RemoteParamStrobeCompSetting, RemoteParamDriveMode, RemoteParamImageMode, RemoteParamMLWeiMode, RemoteParamAFMode, RemoteParamAFDistance, RemoteParamAFFocusingPoint, RemoteParamAFAssistLight, RemoteParamWhiteBalanceSetting, RemoteParamWhiteBalanceKelvin, RemoteParamWhiteBalanceShift, RemoteParamPictureStyle, RemoteParamContrast, RemoteParamColorGain, RemoteParamSharpness, RemoteParamColorSpace, RemoteParamISO, RemoteParamAv, RemoteParamTv, RemoteParamExposureCompensation, RemoteParamPhotoEffect, RemoteParamBeep);

3.7.9 TRemoteParamPictureStyleType

Syntax: TRemoteParamPictureStyleType = (RemoteParamPictureStyleEnabled, RemoteParamPictureStyleContrast, RemoteParamPictureStyleSharpness, RemoteParamPictureStyleSaturation, RemoteParamPictureStyleSaturationUsed, RemoteParamPictureStyleColorTone, RemoteParamPictureStyleColorToneUsed, RemoteParamPictureStyleMonochromeFilter, RemoteParamPictureStyleMonochromeFilterUsed, RemoteParamPictureStyleMonochromeTone, RemoteParamPictureStyleMonochromeToneUsed);

3.7.10 TRemoteParamWhitebalanceShiftType

Syntax: TRemoteParamWhitebalanceShiftType = (RemoteParamWhitebalanceShiftWBShiftEnabled, RemoteParamWhitebalanceShiftAmberBlue, RemoteParamWhitebalanceShiftGreenMagenta);

Page 114: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote107

© 2019 Alkenius Systems

Index- A -AFAssistLight

RemoteReleaseParametersType 100

AFDistance

RemoteReleaseParametersType 100

AFFocusingPoint

RemoteReleaseParametersType 100

AFMode

RemoteReleaseParametersType 100

Av

RemoteReleaseParametersType 100

- B -BatterySourceType 99

BatteryStatusType 99

Beep

RemoteReleaseParametersType 100

BitsPerPixelType 51

- C -CamModType 99

CloseCameraCollection

example 45

TCamRemote 45

CloseCameraEnumeration

TCamRemote 45

CloseRAWObject

TCamRemote 45

ColorGain

RemoteReleaseParametersType 100

CompQuality

RemoteReleaseParametersType 100

CompQualityPic2RAW

RemoteReleaseParametersType 100

Connect

example 47

TCamRemote 46

Connect_Battery_BatterySource

TCamRemote 50

Connect_Battery_BatteryStatus

TCamRemote 50

Connect_CameraModel

TCamRemote 49

Connect_CameraModelName

TCamRemote 49

Connect_OwnerName

TCamRemote 49

Contrast

RemoteReleaseParametersType 100

- D -DeletePicture

example 50

TCamRemote 50

DevelopRAWPicture

TCamRemote 51

Disconnect

TCamRemote 51

DriveMode

RemoteReleaseParametersType 100

- E -ECamException 42

EOSViewfinderRefreshInterval

TCamRemote 42

Error Handling 42

Event

EventCallbackType 99

EventCallbackType 99

EventEnumType 99

EventSeverityType 99

ExposureCompensation

RemoteReleaseParametersType 100

- F -FileFormatType 51

FormatCameraCard

TCamRemote 53

- G -GetBodyID

TCamRemote 52

GetPicture

example 53

TCamRemote 52

GetRAWDevelopmentParameters

TCamRemote 53

Page 115: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Index 108

© 2019 Alkenius Systems

- I -ImageMode

RemoteReleaseParametersType 100

ImageSize

RemoteReleaseParametersType 100

ImageSizePic2RAW

RemoteReleaseParametersType 100

ISO

RemoteReleaseParametersType 100

- L -License 3

- M -MLWeiMode

RemoteReleaseParametersType 100

- O -OnEvent

example 91

TCamRemote 91

OnGetPictureEvent

TCamRemote 91

OnGetPictureEventExample

example 92

OnRawDevelopEvent

example 92

TCamRemote 92

OnRemoteEvent

example 94

TCamRemote 92

OnRemoteGetMovieEvent

TCamRemote 95

OnRemoteGetPictureEvent

example 95

TCamRemote 94

OnRemoteProbeParamEvent

example 95

TCamRemote 95

OnRemoteTakePictureEvent

example 96

TCamRemote 96

OnViewfinderEvent

example 97

TCamRemote 96

OpenCameraCollection

example 54

TCamRemote 54

OpenCameraCollection_GetNrOfPictures

TCamRemote 55

OpenCameraCollection_GetThumbnail

TCamRemote 55

OpenCameraCollection_NameOfImage

TCamRemote 55

OpenCameraEnumeration

TCamRemote 56

OpenCameraEnumeration_GetEOSNr

TCamRemote 57

OpenCameraEnumeration_GetModel

TCamRemote 57

OpenCameraEnumeration_GetPowerShotNr

TCamRemote 56

OpenRAWObject

TCamRemote 57

OpenRAWObject_GetRemoteParamSupported

TCamRemote 58

Overview 6

- P -PhotoEffect

RemoteReleaseParametersType 100

PictureStyle

RemoteReleaseParametersType 100

PictureStyleType 100

PS2ViewfinderRefreshInterval

TCamRemote 43

- R -RegCode

TCamRemote 43

RegCodeOCX 43

RegName

LibraryFolder 43

TCamRemote 43

RegNameOCX 43

RemoteActivateViewfinderAuto

TCamRemote 59

RemoteAFLock

TCamRemote 59

RemoteBULBMode

TCamRemote 59

RemoteEnd

TCamRemote 60

RemoteEndMovieRecording

Page 116: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote109

© 2019 Alkenius Systems

RemoteEndMovieRecording

TCamRemote 60

RemoteEventCallbackType 92, 99

RemoteFormatAFDistType 100

RemoteFormatAFFocusingPointType 100

RemoteFormatAFLightType 100

RemoteFormatAFModeType 100

RemoteFormatAVType 100

RemoteFormatBeepType 100

RemoteFormatDriveModeType 100

RemoteFormatExposureCompType 100

RemoteFormatFlashCompType 100

RemoteFormatFlashType 100

RemoteFormatISOType 100

RemoteFormatLevelType 100

RemoteFormatMLWeiType 100

RemoteFormatPhotoEffectType 100

RemoteFormatQualityType 100

RemoteFormatShootingModeType 100

RemoteFormatSizeType 100

RemoteFormatTVType 100

RemoteFormatWBType 100

RemoteGetCameraCacheParameters

TCamRemote 61

RemoteGetCFPicture

TCamRemote 61

RemoteGetMovie

TCamRemote 62

RemoteGetNumberOfAvailableShots

TCamRemote 62

RemoteGetPicture

TCamRemote 62

RemoteGetPowerZoom

TCamRemote 63

RemoteGetRemoteParams

example 65, 74

TCamRemote 64

RemoteGetRemoteParams_PictureStyle

TCamRemote 65

RemoteGetRemoteParams_WhitebalanceShift

TCamRemote 66

RemoteGetViewfinderAutofocusInfo

TCamRemote 66

RemoteGetViewfinderAutofocusInfoFrame

TCamRemote 67

RemoteGetViewfinderAutofocusMode

TCamRemote 68

RemoteGetViewfinderDepthOfFieldPreview

TCamRemote 68

RemoteGetViewfinderHistogram

TCamRemote 68

RemoteGetViewfinderImage

TCamRemote 69

RemoteGetZoomPos

example 80

RemoteGetZoomPos_CurrentZoomPos

TCamRemote 69

RemoteGetZoomPos_MaxOpticalZoomPos

TCamRemote 70

RemoteGetZoomPos_MaxZoomPos

TCamRemote 70

RemoteLoadCameraRemoteParams

TCamRemote 70

RemotePowerZoomStop

TCamRemote 71

RemotePowerZoomTele

TCamRemote 71

RemotePowerZoomWide

TCamRemote 72

RemotePressShutter

TCamRemote 72

RemoteReleaseParametersType 100

RemoteSaveCameraRemoteParams

TCamRemote 73

RemoteSetRemoteParams

example 65, 74

TCamRemote 73

RemoteSetRemoteParams_AvTvImageMode

TCamRemote 74

RemoteSetRemoteParams_ImageQuality

TCamRemote 75

RemoteSetRemoteParams_PictureStyle

TCamRemote 75

RemoteSetRemoteParams_WhitebalanceShift

TCamRemote 76

RemoteSetViewfinderAutofocusMode

TCamRemote 77

RemoteSetViewfinderDepthOfFieldPreview

TCamRemote 77

RemoteSetViewfinderDriveLens

TCamRemote 78

RemoteSetViewfinderOutput

TCamRemote 78

RemoteSetViewfinderWhitebalance

TCamRemote 79

RemoteSetViewfinderZoom

TCamRemote 79

RemoteSetViewfinderZoomPosition

TCamRemote 79

RemoteSetZoomPos

TCamRemote 80

RemoteStart

example 82

TCamRemote 80

Page 117: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

Index 110

© 2019 Alkenius Systems

RemoteStart_DoSupportAfLockUnlock

TCamRemote 84

RemoteStart_DoSupportPowerZoom

TCamRemote 82

RemoteStart_DoSupportShootingPara

TCamRemote 83

RemoteStart_DoSupportViewfinder

TCamRemote 83

RemoteStart_DoSupportZoom

TCamRemote 82

RemoteStart_GetRemoteParamSupported

TCamRemote 84

RemoteStart_ReqViewfinderOffWhenShooting

TCamRemote 84

RemoteStartMovieRecording

TCamRemote 86

RemoteStartViewfinder

example 88

TCamRemote 87

RemoteStopViewfinder

TCamRemote 88

RemoteSupported

TCamRemote 88

RemoteTakePicture

example 89

TCamRemote 89

RemoteWhitebalanceShiftType 100

Runtime files 42

- S -SetOwnerName

TCamRemote 89

SetRAWDevelopmentParameters

TCamRemote 90

SetTimeInCamera

TCamRemote 90

Severity

EventCallbackType 99

Sharpness

RemoteReleaseParametersType 100

StrobeCompSetting

RemoteReleaseParametersType 100

StrobeSetting

RemoteReleaseParametersType 100

Supported cameras 8

- T -TCamRemote 42

CloseCameraCollection 45

CloseCameraEnumeration 45

CloseRAWObject 45

Connect 46

Connect_Battery_BatterySource 50

Connect_Battery_BatteryStatus 50

Connect_CameraModel 49

Connect_CameraModelName 49

Connect_OwnerName 49

DeletePicture 50

DevelopRAWPicture 51

Disconnect 51

EOSViewfinderRefreshInterval 42

Exceptions 42

FormatCameraCard 53

GetBodyID 52

GetPicture 52

GetRAWDevelopmentParameters 53

LibraryFolder 43

OnEvent 91

OnGetPictureEvent 91

OnRawDevelopEvent 92

OnRemoteEvent 92

OnRemoteGetMovieEvent 95

OnRemoteGetPictureEvent 94

OnRemoteProbeParamEvent 95

OnRemoteTakePictureEvent 96

OnViewfinderEvent 96

OpenCameraCollection 54

OpenCameraCollection_GetNrOfPictures 55

OpenCameraCollection_GetThumbnail 55

OpenCameraCollection_NameOfImage 55

OpenCameraEnumeration 56

OpenCameraEnumeration_GetEOSNr 57

OpenCameraEnumeration_GetModel 57

OpenCameraEnumeration_GetPowerShotNr 56

OpenRAWObject 57

OpenRAWObject_GetRemoteParamSupported 58

PS2ViewfinderRefreshInterval 43

RegCode 43

RegName 43

RemoteActivateViewfinderAuto 59

RemoteAFLock 59

RemoteBULBMode 59

RemoteEnd 60

RemoteEndMovieRecording 60

RemoteGetCameraCacheParameters 61

RemoteGetCFPicture 61

RemoteGetMovie 62

RemoteGetNumberOfAvailableShots 62

RemoteGetPicture 62

Page 118: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

TCamRemote111

© 2019 Alkenius Systems

TCamRemote 42

RemoteGetPowerZoom 63

RemoteGetRemoteParams 64

RemoteGetRemoteParams_PictureStyle 65

RemoteGetRemoteParams_WhitebalanceShift 66

RemoteGetViewfinderAutofocusInfo 66

RemoteGetViewfinderAutofocusInfoFrame 67

RemoteGetViewfinderAutofocusMode 68

RemoteGetViewfinderDepthOfFieldPreview 68

RemoteGetViewfinderHistogram 68

RemoteGetViewfinderImage 69

RemoteGetZoomPos_CurrentZoomPos 69

RemoteGetZoomPos_MaxOpticalZoomPos 70

RemoteGetZoomPos_MaxZoomPos 70

RemoteLoadCameraRemoteParams 70

RemotePowerZoomStop 71

RemotePowerZoomTele 71

RemotePowerZoomWide 72

RemotePressShutter 72

RemoteSaveCameraRemoteParams 73

RemoteSetRemoteParams 73

RemoteSetRemoteParams_AvTvImageMode 74

RemoteSetRemoteParams_ImageQuality 75

RemoteSetRemoteParams_PictureStyle 75

RemoteSetRemoteParams_WhitebalanceShift 76

RemoteSetViewfinderAutofocusMode 77

RemoteSetViewfinderDepthOfFieldPreview 77

RemoteSetViewfinderDriveLens 78

RemoteSetViewfinderOutput 78

RemoteSetViewfinderWhitebalance 79

RemoteSetViewfinderZoom 79

RemoteSetViewfinderZoomPosition 79

RemoteSetZoomPos 80

RemoteStart 80

RemoteStart_DoSupportAfLockUnlock 84

RemoteStart_DoSupportPowerZoom 82

RemoteStart_DoSupportShootingPara 83

RemoteStart_DoSupportViewfinder 83

RemoteStart_DoSupportZoom 82

RemoteStart_GetRemoteParamSupported 84

RemoteStart_ReqViewfinderOffWhenShooting 84

RemoteStartMovieRecording 86

RemoteStartViewfinder 87

RemoteStopViewfinder 88

RemoteSupported 88

RemoteTakePicture 89

SetOwnerName 89

SetRAWDevelopmentParameters 90

SetTimeInCamera 90

Version 43

Template applications 24

TNotifyEvent 91

TNotifyGetPictureEvent 91

TNotifyRawDevelopEvent 92

TNotifyRemoteEvent 92

TNotifyRemoteGetMovieEvent 95

TNotifyRemoteGetPictureEvent 94

TNotifyRemoteProbeParamEvent 95

TNotifyRemoteTakePictureEvent 96

TNotifyViewfinderEvent 96

TRAWParamType 106

TRemoteParamPictureStyleType 106

TRemoteParamType 106

TRemoteParamWhitebalanceShiftType 106

Tv

RemoteReleaseParametersType 100

- V -Version

TCamRemote 43

- W -WhiteBalanceKelvin

RemoteReleaseParametersType 100

WhiteBalanceSetting

RemoteReleaseParametersType 100

WhiteBalanceShift

RemoteReleaseParametersType 100

Page 119: © 2019 Alkenius Systems · 6.Creation of an application (whether it will be freeware, shareware or a commercial product) which competes directly or indirectly with TCamRemote. 7.Distribution

The art or process of producing images by the action of light onsurfaces sensitized by chemical processes.

A process by which chemically sensitized surfaces are exposed tolight (photo) and retain an image (graph) of what is exposed.Methods may be very simple to highly complex. Camera areusually used with adjustable lenses (apertures) and controlledlight levels on light sensitive film. The film is then processed(developed) and the image is "fixed" (made permanent). Theimage (a negative) is transferred onto treated papers, enlargedand processed with chemicals in a "dark room" to make thephotographs (also called prints).

Developed in the second half of the 19th century, thisdevelopment was very important in astronomy. The first picturesof space were taken around 1840, but the methods ofphotography weren't important in astronomy until about twentyyears later. But when they were used, they told us things wecouldn't see before. Photographs of the Moon were used to drawatlases, sunspots were more easily recorded, details of nebulaeand stars were found. In 1882, Sir David Gill photographed acomet and discovered that the picture showed tons of stars . . . agreat way to map the sky.

A term which comes from the Greek words photos (light) andgraphos (drawing). A photograph is made with a camera byexposing film to light in order to create a negative. The negative isthen used in the darkroom to print a photograph (positive) ontolight-sensitive paper.

Definition of Photography on the net