func newGpFile() (*C.CameraFile, error) { var gpFile *C.CameraFile C.gp_file_new((**C.CameraFile)(unsafe.Pointer(&gpFile))) if gpFile == nil { return nil, fmt.Errorf("Cannot initialize camera file") } return gpFile, nil }
func (c *Camera) FileReader(folder string, fileName string) io.ReadCloser { cfr := new(cameraFileReader) cfr.camera = c cfr.folder = folder cfr.fileName = fileName cfr.offset = 0 cfr.closed = false cFileName := C.CString(cfr.fileName) cFolderName := C.CString(cfr.folder) defer C.free(unsafe.Pointer(cFileName)) defer C.free(unsafe.Pointer(cFolderName)) C.gp_file_new(&cfr.cCameraFile) C.gp_camera_file_get(c.camera, cFolderName, cFileName, C.GP_FILE_TYPE_NORMAL, cfr.cCameraFile, c.context) var cSize C.ulong C.gp_file_get_data_and_size(cfr.cCameraFile, &cfr.cBuffer, &cSize) cfr.fullSize = uint64(cSize) return cfr }