⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unrarlib.h

📁 自己移植的linux下的流媒体播放器原代码,支持mms协议,支持ftp和http协议.
💻 H
字号:
/* *************************************************************************** ** **  This file is part of the UniquE RAR File Library. ** **  Copyright (C) 2000-2002 by Christian Scheurer (www.ChristianScheurer.ch) **  UNIX port copyright (c) 2000-2002 by Johannes Winkelmann (jw@tks6.net) ** ** Modified for use with MPlayer, detailed CVS changelog at ** http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/ ** $Id: unrarlib.h,v 1.4 2005/04/15 18:48:03 diego Exp $ ** **  The contents of this file are subject to the UniquE RAR File Library **  License (the "unrarlib-license.txt"). You may not use this file except **  in compliance with the License. You may obtain a copy of the License **  at http://www.unrarlib.org/license.html. **  Software distributed under the License is distributed on an "AS IS" **  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied warranty. ** **  Alternatively, the contents of this file may be used under the terms **  of the GNU General Public License Version 2 or later (the "GPL"), in **  which case the provisions of the GPL are applicable instead of those **  above. If you wish to allow use of your version of this file only **  under the terms of the GPL and not to allow others to use your version **  of this file under the terms of the UniquE RAR File Library License, **  indicate your decision by deleting the provisions above and replace **  them with the notice and other provisions required by the GPL. If you **  do not delete the provisions above, a recipient may use your version **  of this file under the terms of the GPL or the UniquE RAR File Library **  License. ** ************************************************************************** *//* include file for the "UniquE RAR File Library"  *//* (C) 2000-2002 by Christian Scheurer aka. UniquE *//* multi-OS version (Win32, Linux and SUN)         */#ifndef __URARLIB_H#define __URARLIB_H#ifdef __cplusplusextern "C"{#endif/* ************************************************************************ *//* ************************************************************************ *//* **                                                                    ** *//* **   CONFIGURATION of the UniquE RAR FileLib                          ** *//* **   ==> you may change the setting for the lib HERE!                 ** *//* **                                                                    ** *//* ************************************************************************ *//* ************************************************************************ *//*#define _DEBUG_LOG*/                         /* generate debug messages      */#define _DO_CRC32_CHECK                     /* perform cyclical redundancy  */                                            /* check (CRC32) - disable this */                                            /* for a little speed-up        *//*#define _USE_ASM*/                            /*                                             * enable assembly extensions                                             * x86 cpus.                                             *//*#define _USE_MEMORY_TO_MEMORY_DECOMPRESSION*/ /* read file from memory or a   */                                            /* resource instead of reading  */                                            /* from a file. NOTE: you won't */                                            /*  be able to decompress from  */                                            /*  file if you enable this     */                                            /*  option!                     */#ifdef WIN32                                /* autodetect Win32 and Linux   */#define _WIN_32                             /* Win32 with VisualC           */#define _DEBUG_LOG_FILE "C:\\temp\\debug_unrar.txt" /* log file path        */#else#define _UNIX                               /* Linux or Unix with GCC       */#define _DEBUG_LOG_FILE "/tmp/debug_unrar.txt" /* log file path             *//*#define NON_INTEL_BYTE_ORDER*/               /* GCC on motorola systems    */#endif/* ------------------------------------------------------------------------ *//* -- global type definitions --------------------------------------------- */#ifdef NON_INTEL_BYTE_ORDER#ifdef _USE_ASM#warning Disabling assembly because NON_INTEL_BYTE_ORDER is set#undef _USE_ASM#endif#endif#ifdef _WIN_32typedef unsigned char    UBYTE;             /* WIN32 definitions            */typedef unsigned short   UWORD;typedef unsigned long    UDWORD;#endif#ifdef _UNIX                                /* LINUX/UNIX definitions       */typedef unsigned char    UBYTE;typedef unsigned short   UWORD;typedef unsigned long    UDWORD;#endif/* This structure is used for listing archive content                       */struct RAR20_archive_entry                  /* These infos about files are  */{                                           /* stored in RAR v2.0 archives  */  char   *Name;  UWORD  NameSize;  UDWORD PackSize;  UDWORD UnpSize;  UBYTE  HostOS;                            /* MSDOS=0,OS2=1,WIN32=2,UNIX=3 */  UDWORD FileCRC;  UDWORD FileTime;  UBYTE  UnpVer;  UBYTE  Method;  UDWORD FileAttr;};typedef struct  archivelist                 /* used to list archives        */{  struct RAR20_archive_entry item;  struct archivelist         *next;} ArchiveList_struct;#ifdef _USE_MEMORY_TO_MEMORY_DECOMPRESSIONtypedef struct  memory_file                 /* used to decompress files in  */{                                           /* memory                       */  void                       *data;         /* pointer to the file data     */  unsigned long              size;          /* total size of the file data  */  unsigned long              offset;        /* offset within "memory-file"  */} MemoryFile;#endif/* -- global functions ---------------------------------------------------- *//* urarlib_get: * decompresses and decrypt data from a RAR file to a buffer in system memory. * *   input: *output         pointer to an empty char*. This pointer will show *                          to the extracted data *          *size           shows where to write the size of the decompressed *                          file *                          (**NOTE: URARLib _does_ memory allocation etc.!**) *          *filename       pointer to string containing the file to decompress *          *rarfile        pointer to a string with the full name and path of *                          the RAR file or pointer to a RAR file in memory if *                          memory-to-memory decompression is active. *          *libpassword    pointer to a string with the password used to *                          en-/decrypt the RAR *   output: int            returns TRUE on success or FALSE on error *                          (FALSE=0, TRUE=1) */extern int urarlib_get(void  *output,                       unsigned long *size,                       char *filename,                       void *rarfile,                       char *libpassword);/* urarlib_list: * list the content of a RAR archive. * *   input: *rarfile        pointer to a string with the full name and path of *                          the RAR file or pointer to a RAR file in memory if *                          memory-to-memory decompression is active. *          *list           pointer to an ArchiveList_struct that can be *                          filled with details about the archive *                          to the extracted data *   output: int            number of files/directories within archive */extern int urarlib_list(void *rarfile, ArchiveList_struct *list);/* urarlib_freelist: * (after the suggestion and code of Duy Nguyen, Sean O'Blarney * and Johannes Winkelmann who independently wrote a patch) * free the memory of a ArchiveList_struct created by urarlib_list. * *    input: *list          pointer to an ArchiveList_struct *    output: - */extern void urarlib_freelist(ArchiveList_struct *list);/* ------------------------------------------------------------------------ */#ifdef __cplusplus};#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -