//
// File: kodak.cpp
//
-// Module:
+// Module:
//
-// Synopsis:
+// Synopsis:
//
+// Copyright (C) 1999-2000 Scott Gasch <scott@gasch.org>
//
// Created: 12 Jan 2000
//
//
// Function: CKodakDC210
//
-// Synopsis:
+// Synopsis:
//
// Arguments: void
-//
+//
// Returns: void
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: ~CKodakDC210
//
-// Synopsis:
+// Synopsis:
//
// Arguments: void
-//
+//
// Returns: void
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: Initialize
//
-// Synopsis:
+// Synopsis:
//
// Arguments: void
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: SetSpeed
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int iBps
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
{
BYTE bArg1, bArg2;
- //
+ //
// Determine what arguments to send to the camera to communicate
// the new speed.
//
//
// Success
- //
+ //
return(true);
}
//
// Function: TakePicture
//
-// Synopsis:
+// Synopsis:
//
// Arguments: void
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: RefreshProperties
//
-// Synopsis:
+// Synopsis:
//
// Arguments: void
-//
+//
// Returns: bool - true if command successful
//
// History: sgasch Created Header 8 Jun 1999
//
// Function: GetRawStatusData
//
-// Synopsis:
+// Synopsis:
//
// Arguments: BYTE *pData
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetFirmwareVersion
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piMajor,
// int *piMinor
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetRomVersion
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piMajor,
// int *piMinor
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetBatteryStatus
//
-// Synopsis:
+// Synopsis:
//
// Arguments: DC210_BATTERY_STATE *pState
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsAdapterAttached
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfAttached
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetZoomState
//
-// Synopsis:
+// Synopsis:
//
// Arguments: DC210_ZOOM_STATE *pZoom
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetResolution
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piWidth,
// int *piHeight
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
{
*piWidth = 1152;
*piHeight = 864;
- }
+ }
else
{
ASSERT(false);
- return(false);
+ return(false);
}
- return(true);
+ return(true);
}
//+----------------------------------------------------------------------------
//
// Function: IsFlashCharged
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfCharged
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
if (RefreshProperties())
{
if (_bRawStatusData[18])
- {
+ {
*pfCharged = true;
}
- else
- {
+ else
+ {
*pfCharged = false;
- }
- return(true);
+ }
+ return(true);
}
return(false);
}
//
// Function: GetFlashState
//
-// Synopsis:
+// Synopsis:
//
// Arguments: DC210_FLASH_STATE *pState
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetCompressionState
//
-// Synopsis:
+// Synopsis:
//
// Arguments: DC210_COMPRESSION_STATE *pState
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
{
switch (_bRawStatusData[19])
{
- case 0:
+ case 0:
*pState = compression_none;
break;
- case 1:
+ case 1:
*pState = compression_low;
break;
case 2:
ASSERT(false);
*pState = compression_unknown;
return(false);
- }
- return(true);
+ }
+ return(true);
}
//
// Function: GetPictureFormat
//
-// Synopsis:
+// Synopsis:
//
// Arguments: DC210_FILE_FORMAT *eFormat
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
if (2 == _bRawStatusData[23])
{
*eFormat = format_raw;
- }
+ }
else if (3 == _bRawStatusData[23])
{
*eFormat = format_jpeg;
//
// Function: GetClock
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piCameraClock
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsUsingJpeg
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfJPEG
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsUsingFlashPix
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfFlashPix
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetLifetimePictureCount
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piPictures
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetLifetimeFlashCount
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piFlashes
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsTimerOn
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfTimer
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsMemoryCardInserted
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfInserted
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsMemoryCardWriteProtected
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfWriteProt
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsMemoryCardIllegal
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfIllegal
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsMemoryCardFormatted
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfFormatted
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsMemoryCardOpened
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfOpened
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetMemoryCardBitvector
//
-// Synopsis:
+// Synopsis:
//
// Arguments: BYTE *pbBitv
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsUsingNTSC
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfNTSC
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: IsUsingPAL
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool *pfPAL
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetNumberPictures
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piNum
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetRemainingPicturesLowCompression
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piNum
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetRemainingPicturesMedCompression
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piNum
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetRemainingPicturesHighCompression
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piNum
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetMemoryCardVolumeLabel
//
-// Synopsis:
+// Synopsis:
//
// Arguments: char *szLabel
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetIdString
//
-// Synopsis:
+// Synopsis:
//
// Arguments: char *szId
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetTimeValue
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piClock
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetTimeString
//
-// Synopsis:
+// Synopsis:
//
// Arguments: char *pszTime
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetTimeMinutes
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piMin
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetTimeHours
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piHrs
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetTimeSeconds
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piSec
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetTimeMonth
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piMon
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetTimeDay
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piDay
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: GetTimeYear
//
-// Synopsis:
+// Synopsis:
//
// Arguments: int *piYear
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
//
// Function: SetFlashState
//
-// Synopsis:
+// Synopsis:
//
// Arguments: bool fState
-//
+//
// Returns: bool
//
// History: sgasch Created Header 15 Jan 2000
//
// Function: SetFlashState
//
-// Synopsis:
+// Synopsis:
//
// Arguments: DC210_FLASH_STATE eState
-//
+//
// Returns: bool
//
// History: sgasch Created Header 15 Jan 2000
// (12) Baud rate 9600
//
// Arguments: void
-//
+//
// Returns: bool - true if successful
//
// History: sgasch Created Header 8 Jun 1999
//
// Wait for completion.
- //
+ //
if (!CommandComplete())
{
Trace("Reset: command complete signal not received.\n");
//
// Function: SetCompressionState
//
-// Synopsis:
+// Synopsis:
//
// Arguments: DC210_COMPRESSION_STATE eCompression
-//
+//
// Returns: bool
//
// History: sgasch Created Header 15 Jan 2000
//
// Function: SetZoomState
//
-// Synopsis:
+// Synopsis:
//
// Arguments: DC210_ZOOM_STATE eZoom
-//
+//
// Returns: bool
//
// History: sgasch Created Header 15 Jan 2000
//
// Function: ToggleShutterDelay
//
-// Synopsis:
+// Synopsis:
//
// Arguments: BOOL fEnable
-//
+//
// Returns: bool
//
// History: sgasch Created Header 15 Jan 2000
//
// Function: SetPictureFormat
//
-// Synopsis:
+// Synopsis:
//
// Arguments: DC210_FILE_FORMAT eFormat
-//
+//
// Returns: bool
//
// History: sgasch Created Header 15 Jan 2000
// Synopsis: Send a command sequence to the camera.
//
// Arguments: char bCommand
-//
+//
// Returns: bool - true if command sent okay.
//
// History: sgasch Created Header 4 Jun 1999
// Synopsis: Read a command byte from the port and see if it's an ACK.
//
// Arguments: void
-//
+//
// Returns: bool - true if successful ACK received, false otherwise
//
// History: sgasch Created Header 4 Jun 1999
// send BUSY signals so we know it's still there but working.
//
// Arguments: void
-//
+//
// Returns: bool - true if successful
//
// History: sgasch Created Header 8 Jun 1999
//
// Function: ReadPacket
//
-// Synopsis:
+// Synopsis:
//
// Arguments: BYTE *buf,
// int iPacketSize
-//
+//
// Returns: bool
//
// History: sgasch Created Header 13 Jan 2000
return(false);
}
}
- }
+ }
//
// Continue to loop while the packet is bad and we have not yet
// reached the upper limit to how many attempts to make.
//
- while ((bChecksumComputed != bChecksumFromCamera) &&
+ while ((bChecksumComputed != bChecksumFromCamera) &&
(++iAttempts < g_iMaxAttempts));
//
//
// Success
- //
+ //
return(true);
}
// Arguments: BYTE bControl - the control byte
// BYTE *buf - the data
// int iLength - how large is the packet
-//
+//
// Returns: bool - true on success
//
// History: sgasch Created Header 8 Jun 1999
Trace("SendPacket: Invalid packet length, aborting.\n");
return(false);
}
- if ((bControl != DC210_NORMAL_PACKET) &&
- (bControl != DC210_FINAL_PACKET) &&
+ if ((bControl != DC210_NORMAL_PACKET) &&
+ (bControl != DC210_FINAL_PACKET) &&
(bControl != DC210_ABORT_PACKET))
{
Trace("SendPacket: Invalid control byte, aborting.\n");
// causing mismatched checksums) or until we reach the limit of packet
// errors.
//
- while ((bConfirm != DC210_CORRECT_PACKET) &&
+ while ((bConfirm != DC210_CORRECT_PACKET) &&
(++iAttempts < _iMaxAttempts));
//
// Arguments: BYTE *pbChecksum - checksum computed
// BYTE *buf - data ptr
// int iSize - data length
-//
+//
// Returns: bool - true if successful
//
// History: sgasch Created Header 8 Jun 1999