PostView image transfer to RAM

Receive captured still image data via memory (RAM). Still image data received via memory (RAM) can be used directly for display in the application.

Version

Type

enum CrPostViewTransferringType

Summary

before v2.00.00

File

-

Outputs the captured still image as a file (*1) and notifies the saved file name via the OnCompleteDownload callback.

after v2.01.00

File

CrPostViewTransferring_Legacy

Same as v2.00.00

File

CrPostViewTransferring_UserSelect_File

Outputs the captured still image as a file and notifies the saved file name via the OnNotifyPostViewImage callback(*1).

RAM

CrPostViewTransferring_UserSelect_RAM

Notifies via the OnNotifyPostViewImage callback when the image is ready to be retrieved via RAM (*1).

*1When the following conditions are met:
  • The output folder has been specified using SetSaveInfo()

  • CrDeviceProperty_StillImageStoreDestination is CrStillImageStoreDestination_HostPC or CrStillImageStoreDestination_HostPCAndMemoryCard

  • The value of Setting_Key_EnablePostView obtained by GetDeviceSetting() is Enable

  • The value of Setting_Key_PostViewTransferringType obtained by GetDeviceSetting() is CrPostViewTransferring_UserSelect_RAM (v2.01.00 or later)

Example:

Enable “PostView Transfer” in RemoteTransferMode

// Change the default value of Setting_Key_EnablePostView from Disable to Enable
CrError err = SCRSDK::SetDeviceSetting(handle, Setting_Key_EnablePostView, CrDeviceSetting_Enable);
if (CR_FAILED(err)) {
    return;
}
CrInt32u retValue = 0;
err = SCRSDK::GetDeviceSetting(handle, Setting_Key_EnablePostView, &retValue);
if (CR_SUCCEEDED(err) && (CrDeviceSetting_Enable == retValue)) {
    // OK
}
else {
    return;
}

Example:

Set PostView transfer type to “RAM Transfer”

Condition: Only applicable in RemoteMode and RemoteTransferMode. ContentsTransferMode does not support PostView transfer.

CrError err = SCRSDKS::SetDeviceSetting(handle, Setting_Key_PostViewTransferringType, CrPostViewTransferring_UserSelect_RAM);
if (CR_FAILED(err)) {
    return;
}
CrInt32u retValue = 0;
err = SCRSDK::GetDeviceSetting(handle, Setting_Key_PostViewTransferringType, &retValue);
if (CR_SUCCEEDED(err) && (CrPostViewTransferring_UserSelect_RAM == retValue)) {
    // OK
}
else {
    return;
}

Example:

Retrieve captured still image via RAM

// Store the second parameter of OnNotifyPostViewImage
CrInt32u m_pv_size = 0;

// Prepare buffer to receive data
CrInt8u* buff = malloc(m_pv_size);
CrError err = SCRSDK::PullPostViewImage(handle, buff, m_pv_size);
if (CR_SUCCEEDED(err)) {
    // Use for GUI display, etc.

}
free(buff);

Refer to RemoteTransferMode.cpp