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