239 lines
6.8 KiB
C
239 lines
6.8 KiB
C
/*
|
|
* CDE - Common Desktop Environment
|
|
*
|
|
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
|
|
*
|
|
* These libraries and programs are free software; you can
|
|
* redistribute them and/or modify them under the terms of the GNU
|
|
* Lesser General Public License as published by the Free Software
|
|
* Foundation; either version 2 of the License, or (at your option)
|
|
* any later version.
|
|
*
|
|
* These libraries and programs are distributed in the hope that
|
|
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
* PURPOSE. See the GNU Lesser General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with these librararies and programs; if not, write
|
|
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
* Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
/* $XConsortium: ilefs.h /main/3 1995/10/23 15:47:11 rswiston $ */
|
|
/**---------------------------------------------------------------------
|
|
***
|
|
*** file: ilefs.h
|
|
***
|
|
*** description: Public include file for Image Library (IL) EFS support.
|
|
***
|
|
***
|
|
*** (c)Copyright 1992 Hewlett-Packard Co.
|
|
***
|
|
*** RESTRICTED RIGHTS LEGEND
|
|
*** Use, duplication, or disclosure by the U.S. Government is subject to
|
|
*** restrictions as set forth in sub-paragraph (c)(1)(ii) of the Rights in
|
|
*** Technical Data and Computer Software clause in DFARS 252.227-7013.
|
|
*** Hewlett-Packard Company
|
|
*** 3000 Hanover Street
|
|
*** Palo Alto, CA 94304 U.S.A.
|
|
*** Rights for non-DOD U.S. Government Departments and Agencies are as set
|
|
*** forth in FAR 52.227-19(c)(1,2).
|
|
***
|
|
***-------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
#ifndef ILEFS_H
|
|
#define ILEFS_H
|
|
|
|
#ifndef IL_H
|
|
#include "il.h"
|
|
#endif
|
|
|
|
#ifndef NeedFunctionPrototypes
|
|
#if defined(FUNCPROTO) || defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
|
|
#define NeedFunctionPrototypes 1
|
|
#else
|
|
#define NeedFunctionPrototypes 0
|
|
#endif /* __STDC__ */
|
|
#endif /* NeedFunctionPrototypes */
|
|
|
|
#ifndef NeedWidePrototypes
|
|
#if defined(NARROWPROTO)
|
|
#define NeedWidePrototypes 0
|
|
#else
|
|
#define NeedWidePrototypes 1
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
/* openMode to ilEFSOpen() */
|
|
#define IL_EFS_READ 0
|
|
#define IL_EFS_READ_SEQUENTIAL 1
|
|
#define IL_EFS_WRITE 2
|
|
|
|
/* readMode to ilEFSReadImage() */
|
|
#define IL_EFS_READ_MAIN 0
|
|
#define IL_EFS_READ_MASK 1
|
|
|
|
/* masks for bits in ilEFSFileInfo/ilEFSFileTypeInfo.attributes */
|
|
#define IL_EFS_MULTI_PAGE_READS (1<<0)
|
|
#define IL_EFS_MULTI_PAGE_WRITES (1<<1)
|
|
#define IL_EFS_MASK_READS (1<<2)
|
|
#define IL_EFS_MASK_WRITES (1<<3)
|
|
#define IL_EFS_SCALEABLE_READS (1<<4)
|
|
|
|
/* masks for bits in ilEFSPageInfo.attributes */
|
|
#define IL_EFS_EOF (1<<0)
|
|
#define IL_EFS_MASKED (1<<1)
|
|
#define IL_EFS_SCALEABLE (1<<2)
|
|
|
|
/* masks for bits in searchOptions to ilEFSOpen() */
|
|
#define IL_EFS_BY_TYPE_NAME (1<<0)
|
|
#define IL_EFS_BY_EXTENSION (1<<1)
|
|
#define IL_EFS_BY_CHECKING (1<<2)
|
|
#define IL_EFS_READ_SEARCH (IL_EFS_BY_EXTENSION | IL_EFS_BY_CHECKING)
|
|
|
|
/* String lengths; all values include trailing null. */
|
|
#define IL_EFS_MAX_NAME_CHARS 12
|
|
#define IL_EFS_MAX_DISPLAY_NAME_CHARS 24
|
|
#define IL_EFS_MAX_EXTENSION_CHARS 8
|
|
|
|
#define IL_EFS_MAX_EXTENSIONS 8
|
|
|
|
#define IL_EFS_TYPE_RESERVED_SIZE 10
|
|
|
|
|
|
typedef ilObject ilEFSFile;
|
|
typedef ilObject ilEFSFileType;
|
|
|
|
typedef struct {
|
|
ilEFSFileType fileType;
|
|
unsigned short openMode;
|
|
unsigned short howFound;
|
|
unsigned long attributes;
|
|
long nPages;
|
|
ilShortBool inUse;
|
|
short reserved [21];
|
|
} ilEFSFileInfo;
|
|
|
|
typedef struct {
|
|
unsigned long attributes;
|
|
long page;
|
|
long width, height;
|
|
long xRes, yRes;
|
|
ilImageDes des;
|
|
ilImageFormat format;
|
|
} ilEFSPageInfo;
|
|
|
|
typedef struct {
|
|
char name [IL_EFS_MAX_NAME_CHARS];
|
|
char displayName [IL_EFS_MAX_DISPLAY_NAME_CHARS];
|
|
unsigned short checkOrder;
|
|
short nExtensions;
|
|
char extensions [IL_EFS_MAX_EXTENSIONS]
|
|
[IL_EFS_MAX_EXTENSION_CHARS];
|
|
unsigned long openModes;
|
|
unsigned long attributes;
|
|
ilBool (*Escape)();
|
|
ilPtr (*Open)();
|
|
ilBool (*Seek)();
|
|
ilBool (*GetPageInfo)();
|
|
ilBool (*ReadImage)();
|
|
ilBool (*WriteImage)();
|
|
ilBool (*Close)();
|
|
ilBool (*Destroy)();
|
|
long reserved [IL_EFS_TYPE_RESERVED_SIZE];
|
|
} ilEFSFileTypeInfo;
|
|
|
|
|
|
extern ilEFSFile ilEFSOpen (
|
|
#if NeedFunctionPrototypes
|
|
ilContext context,
|
|
char *fileName,
|
|
unsigned int openMode,
|
|
unsigned long searchOptions,
|
|
char *typeName,
|
|
void *pOptions
|
|
#endif
|
|
);
|
|
|
|
extern ilBool ilEFSGetFileInfo (
|
|
#if NeedFunctionPrototypes
|
|
ilEFSFile file,
|
|
ilEFSFileInfo *pInfo /* RETURNED */
|
|
#endif
|
|
);
|
|
|
|
extern ilBool ilEFSSeek (
|
|
#if NeedFunctionPrototypes
|
|
ilEFSFile file,
|
|
long page,
|
|
void *pOptions
|
|
#endif
|
|
);
|
|
|
|
extern ilBool ilEFSGetPageInfo (
|
|
#if NeedFunctionPrototypes
|
|
ilEFSFile file,
|
|
ilEFSPageInfo *pInfo /* RETURNED */
|
|
#endif
|
|
);
|
|
|
|
extern ilBool ilEFSReadImage (
|
|
#if NeedFunctionPrototypes
|
|
ilPipe pipe,
|
|
ilEFSFile file,
|
|
unsigned int readMode,
|
|
long width,
|
|
long height,
|
|
void *pOptions
|
|
#endif
|
|
);
|
|
|
|
extern ilBool ilEFSWriteImage (
|
|
#if NeedFunctionPrototypes
|
|
ilPipe pipe,
|
|
ilEFSFile file,
|
|
long xRes,
|
|
long yRes,
|
|
ilClientImage maskImage,
|
|
void *pOptions
|
|
#endif
|
|
);
|
|
|
|
extern ilBool ilEFSListFileTypes (
|
|
#if NeedFunctionPrototypes
|
|
ilContext context,
|
|
int *pNFileTypes, /* RETURNED */
|
|
ilEFSFileType **pFileTypes /* RETURNED */
|
|
#endif
|
|
);
|
|
|
|
extern ilBool ilEFSGetFileTypeInfo (
|
|
#if NeedFunctionPrototypes
|
|
ilEFSFileType fileType,
|
|
ilEFSFileTypeInfo *pInfo /* RETURNED */
|
|
#endif
|
|
);
|
|
|
|
extern ilEFSFileType ilEFSAddFileType (
|
|
#if NeedFunctionPrototypes
|
|
ilContext context,
|
|
ilEFSFileTypeInfo *pInfo,
|
|
void *pOptions
|
|
#endif
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
} /* for C++ V2.0 */
|
|
#endif
|
|
|
|
#endif
|
|
|