Blender  V3.3
Functions
packedFile.c File Reference
#include <fcntl.h>
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
#include "MEM_guardedalloc.h"
#include <string.h>
#include "DNA_ID.h"
#include "DNA_image_types.h"
#include "DNA_packedFile_types.h"
#include "DNA_sound_types.h"
#include "DNA_vfont_types.h"
#include "DNA_volume_types.h"
#include "BLI_blenlib.h"
#include "BLI_utildefines.h"
#include "BKE_image.h"
#include "BKE_image_format.h"
#include "BKE_main.h"
#include "BKE_packedFile.h"
#include "BKE_report.h"
#include "BKE_sound.h"
#include "BKE_vfont.h"
#include "BKE_volume.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "BLO_read_write.h"

Go to the source code of this file.

Functions

int BKE_packedfile_seek (PackedFile *pf, int offset, int whence)
 
void BKE_packedfile_rewind (PackedFile *pf)
 
int BKE_packedfile_read (PackedFile *pf, void *data, int size)
 
int BKE_packedfile_count_all (Main *bmain)
 
void BKE_packedfile_free (PackedFile *pf)
 
PackedFileBKE_packedfile_duplicate (const PackedFile *pf_src)
 
PackedFileBKE_packedfile_new_from_memory (void *mem, int memlen)
 
PackedFileBKE_packedfile_new (ReportList *reports, const char *filepath, const char *basepath)
 
void BKE_packedfile_pack_all (Main *bmain, ReportList *reports, bool verbose)
 
int BKE_packedfile_write_to_file (ReportList *reports, const char *ref_file_name, const char *filepath, PackedFile *pf, const bool guimode)
 
enum ePF_FileCompare BKE_packedfile_compare_to_file (const char *ref_file_name, const char *filepath, PackedFile *pf)
 
char * BKE_packedfile_unpack_to_file (ReportList *reports, const char *ref_file_name, const char *abs_name, const char *local_name, PackedFile *pf, enum ePF_FileStatus how)
 
static void unpack_generate_paths (const char *name, ID *id, char *r_abspath, char *r_relpath, size_t abspathlen, size_t relpathlen)
 
char * BKE_packedfile_unpack (Main *bmain, ReportList *reports, ID *id, const char *orig_file_path, PackedFile *pf, enum ePF_FileStatus how)
 
int BKE_packedfile_unpack_vfont (Main *bmain, ReportList *reports, VFont *vfont, enum ePF_FileStatus how)
 
int BKE_packedfile_unpack_sound (Main *bmain, ReportList *reports, bSound *sound, enum ePF_FileStatus how)
 
int BKE_packedfile_unpack_image (Main *bmain, ReportList *reports, Image *ima, enum ePF_FileStatus how)
 
int BKE_packedfile_unpack_volume (Main *bmain, ReportList *reports, Volume *volume, enum ePF_FileStatus how)
 
int BKE_packedfile_unpack_all_libraries (Main *bmain, ReportList *reports)
 
void BKE_packedfile_pack_all_libraries (Main *bmain, ReportList *reports)
 
void BKE_packedfile_unpack_all (Main *bmain, ReportList *reports, enum ePF_FileStatus how)
 
bool BKE_packedfile_id_check (const ID *id)
 
void BKE_packedfile_id_unpack (Main *bmain, ID *id, ReportList *reports, enum ePF_FileStatus how)
 
void BKE_packedfile_blend_write (BlendWriter *writer, PackedFile *pf)
 
void BKE_packedfile_blend_read (BlendDataReader *reader, PackedFile **pf_p)
 

Function Documentation

◆ BKE_packedfile_blend_read()

void BKE_packedfile_blend_read ( BlendDataReader reader,
PackedFile **  pf_p 
)

◆ BKE_packedfile_blend_write()

void BKE_packedfile_blend_write ( BlendWriter writer,
PackedFile pf 
)

◆ BKE_packedfile_compare_to_file()

enum ePF_FileCompare BKE_packedfile_compare_to_file ( const char *  ref_file_name,
const char *  filepath_rel,
struct PackedFile pf 
)

This function compares a packed file to a 'real' file. It returns an integer indicating if:

  • #PF_EQUAL: the packed file and original file are identical.
  • #PF_DIFFERENT: the packed file and original file differ.
  • #PF_NOFILE: the original file doesn't exist.

Definition at line 286 of file packedFile.c.

References BKE_reportf(), BLI_copy(), BLI_delete(), BLI_exists(), BLI_make_existing_file(), BLI_open(), BLI_path_abs(), BLI_rename(), BLI_snprintf(), BLI_strncpy(), file, FILE_MAX, O_BINARY, pf, RET_ERROR, RET_OK, RPT_ERROR, and RPT_INFO.

Referenced by unpack_menu().

◆ BKE_packedfile_count_all()

int BKE_packedfile_count_all ( Main bmain)

◆ BKE_packedfile_duplicate()

PackedFile* BKE_packedfile_duplicate ( const PackedFile pf_src)

Definition at line 153 of file packedFile.c.

References BLI_assert, PackedFile::data, MEM_dupallocN, and NULL.

◆ BKE_packedfile_free()

void BKE_packedfile_free ( PackedFile pf)

◆ BKE_packedfile_id_check()

bool BKE_packedfile_id_check ( const ID id)

◆ BKE_packedfile_id_unpack()

void BKE_packedfile_id_unpack ( struct Main bmain,
struct ID id,
struct ReportList reports,
enum ePF_FileStatus  how 
)

◆ BKE_packedfile_new()

PackedFile* BKE_packedfile_new ( ReportList reports,
const char *  filepath,
const char *  basepath 
)

◆ BKE_packedfile_new_from_memory()

PackedFile* BKE_packedfile_new_from_memory ( void mem,
int  memlen 
)

Definition at line 166 of file packedFile.c.

References BLI_assert, MEM_callocN, NULL, and pf.

Referenced by BKE_image_packfiles_from_mem(), BKE_packedfile_new(), and get_builtin_packedfile().

◆ BKE_packedfile_pack_all()

void BKE_packedfile_pack_all ( struct Main bmain,
struct ReportList reports,
bool  verbose 
)

◆ BKE_packedfile_pack_all_libraries()

void BKE_packedfile_pack_all_libraries ( Main bmain,
ReportList reports 
)

◆ BKE_packedfile_read()

int BKE_packedfile_read ( PackedFile pf,
void data,
int  size 
)

Definition at line 81 of file packedFile.c.

References data, NULL, pf, and size().

◆ BKE_packedfile_rewind()

void BKE_packedfile_rewind ( PackedFile pf)

Definition at line 76 of file packedFile.c.

References BKE_packedfile_seek(), and pf.

◆ BKE_packedfile_seek()

int BKE_packedfile_seek ( PackedFile pf,
int  offset,
int  whence 
)

Definition at line 44 of file packedFile.c.

References offset, and pf.

Referenced by BKE_packedfile_rewind().

◆ BKE_packedfile_unpack()

char* BKE_packedfile_unpack ( Main bmain,
ReportList reports,
ID id,
const char *  orig_file_path,
PackedFile pf,
enum ePF_FileStatus  how 
)

◆ BKE_packedfile_unpack_all()

void BKE_packedfile_unpack_all ( Main bmain,
ReportList reports,
enum ePF_FileStatus  how 
)

◆ BKE_packedfile_unpack_all_libraries()

int BKE_packedfile_unpack_all_libraries ( Main bmain,
ReportList reports 
)

◆ BKE_packedfile_unpack_image()

int BKE_packedfile_unpack_image ( Main bmain,
ReportList reports,
Image ima,
enum ePF_FileStatus  how 
)

◆ BKE_packedfile_unpack_sound()

int BKE_packedfile_unpack_sound ( Main bmain,
ReportList reports,
bSound sound,
enum ePF_FileStatus  how 
)

◆ BKE_packedfile_unpack_to_file()

char* BKE_packedfile_unpack_to_file ( struct ReportList reports,
const char *  ref_file_name,
const char *  abs_name,
const char *  local_name,
struct PackedFile pf,
enum ePF_FileStatus  how 
)

BKE_packedfile_unpack_to_file() looks at the existing files (abs_name, local_name) and a packed file.

It returns a char *to the existing file name / new file name or NULL when there was an error or when the user decides to cancel the operation.

Warning
'abs_name' may be relative still! (use a "//" prefix) be sure to run BLI_path_abs on it first.

Definition at line 413 of file packedFile.c.

References ATTR_FALLTHROUGH, BKE_packedfile_write_to_file(), BKE_reportf(), BLI_exists(), BLI_path_abs(), BLI_strdup(), BLI_strncpy(), FILE_MAX, NULL, pf, PF_KEEP, PF_REMOVE, PF_USE_LOCAL, PF_USE_ORIGINAL, PF_WRITE_LOCAL, PF_WRITE_ORIGINAL, RET_OK, and RPT_INFO.

Referenced by BKE_packedfile_unpack(), and BKE_packedfile_unpack_all_libraries().

◆ BKE_packedfile_unpack_vfont()

int BKE_packedfile_unpack_vfont ( Main bmain,
ReportList reports,
VFont vfont,
enum ePF_FileStatus  how 
)

◆ BKE_packedfile_unpack_volume()

int BKE_packedfile_unpack_volume ( Main bmain,
ReportList reports,
Volume volume,
enum ePF_FileStatus  how 
)

◆ BKE_packedfile_write_to_file()

int BKE_packedfile_write_to_file ( ReportList reports,
const char *  ref_file_name,
const char *  filepath,
PackedFile pf,
const bool  guimode 
)

Definition at line 286 of file packedFile.c.

Referenced by BKE_packedfile_unpack_to_file().

◆ unpack_generate_paths()

static void unpack_generate_paths ( const char *  name,
ID id,
char *  r_abspath,
char *  r_relpath,
size_t  abspathlen,
size_t  relpathlen 
)
static