source-engine/common/quicktime_win32/QD3DStorage.h
FluorescentCIAAfricanAmerican 3bf9df6b27 1
2020-04-22 12:56:21 -04:00

567 lines
14 KiB
C

/*
File: QD3DStorage.h
Contains: Abstraction to deal with various types of stream-based storage devices
Version: Technology: Quickdraw 3D 1.6
Release: QuickTime 7.3
Copyright: (c) 2007 (c) 1995-1999 by Apple Computer, Inc., all rights reserved.
Bugs?: For bug reports, consult the following page on
the World Wide Web:
http://developer.apple.com/bugreporter/
*/
#ifndef __QD3DSTORAGE__
#define __QD3DSTORAGE__
#ifndef __QD3D__
#include <QD3D.h>
#endif
#if TARGET_OS_MAC
#ifndef __MACTYPES__
#include <MacTypes.h>
#endif
#ifndef __FILES__
#include <Files.h>
#endif
#endif /* TARGET_OS_MAC */
#if TARGET_OS_WIN32
#include <windows.h>
#endif /* TARGET_OS_WIN32 */
#include <stdio.h>
#if PRAGMA_ONCE
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
#if PRAGMA_IMPORT
#pragma import on
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=power
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
#endif
#if PRAGMA_ENUM_ALWAYSINT
#if defined(__fourbyteints__) && !__fourbyteints__
#define __QD3DSTORAGE__RESTORE_TWOBYTEINTS
#pragma fourbyteints on
#endif
#pragma enumsalwaysint on
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=int
#elif PRAGMA_ENUM_PACK
#if __option(pack_enums)
#define __QD3DSTORAGE__RESTORE_PACKED_ENUMS
#pragma options(!pack_enums)
#endif
#endif
/******************************************************************************
** **
** Storage Routines **
** **
*****************************************************************************/
#if CALL_NOT_IN_CARBON
/*
* Q3Storage_GetType()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3ObjectType )
Q3Storage_GetType(TQ3StorageObject storage);
/*
* Q3Storage_GetSize()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3Storage_GetSize(
TQ3StorageObject storage,
unsigned long * size);
/*
* Reads "dataSize" bytes starting at offset in storage, copying into data.
* sizeRead returns the number of bytes filled in.
*
* You may assume if *sizeRead < dataSize, then EOF is at offset + *sizeRead
*/
/*
* Q3Storage_GetData()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3Storage_GetData(
TQ3StorageObject storage,
unsigned long offset,
unsigned long dataSize,
unsigned char * data,
unsigned long * sizeRead);
/*
* Write "dataSize" bytes starting at offset in storage, copying from data.
* sizeWritten returns the number of bytes filled in.
*
* You may assume if *sizeRead < dataSize, then EOF is at offset + *sizeWritten
*/
/*
* Q3Storage_SetData()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3Storage_SetData(
TQ3StorageObject storage,
unsigned long offset,
unsigned long dataSize,
const unsigned char * data,
unsigned long * sizeWritten);
/******************************************************************************
** **
** Memory Storage Prototypes **
** **
*****************************************************************************/
/*
* Q3MemoryStorage_GetType()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3ObjectType )
Q3MemoryStorage_GetType(TQ3StorageObject storage);
/*
* These calls COPY the buffer into QD3D space
*/
/*
* Q3MemoryStorage_New()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3StorageObject )
Q3MemoryStorage_New(
const unsigned char * buffer,
unsigned long validSize);
/*
* Q3MemoryStorage_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3MemoryStorage_Set(
TQ3StorageObject storage,
const unsigned char * buffer,
unsigned long validSize);
/*
* These calls use the pointer given - you must dispose it when you're through
*/
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
/*
* Q3MemoryStorage_NewBuffer()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3StorageObject )
Q3MemoryStorage_NewBuffer(
unsigned char * buffer,
unsigned long validSize,
unsigned long bufferSize);
/*
* Q3MemoryStorage_SetBuffer()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3MemoryStorage_SetBuffer(
TQ3StorageObject storage,
unsigned char * buffer,
unsigned long validSize,
unsigned long bufferSize);
/*
* Q3MemoryStorage_GetBuffer()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3MemoryStorage_GetBuffer(
TQ3StorageObject storage,
unsigned char ** buffer,
unsigned long * validSize,
unsigned long * bufferSize);
#endif /* CALL_NOT_IN_CARBON */
#if TARGET_OS_MAC
/******************************************************************************
** **
** Macintosh Handles Prototypes **
** **
*****************************************************************************/
/* Handle Storage is a subclass of Memory Storage */
#if CALL_NOT_IN_CARBON
/*
* Q3HandleStorage_New()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3StorageObject )
Q3HandleStorage_New(
Handle handle,
unsigned long validSize);
/*
* Q3HandleStorage_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3HandleStorage_Set(
TQ3StorageObject storage,
Handle handle,
unsigned long validSize);
/*
* Q3HandleStorage_Get()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3HandleStorage_Get(
TQ3StorageObject storage,
Handle * handle,
unsigned long * validSize);
/******************************************************************************
** **
** Macintosh Storage Prototypes **
** **
*****************************************************************************/
/*
* Q3MacintoshStorage_New()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3StorageObject )
Q3MacintoshStorage_New(short fsRefNum);
/* Note: This storage is assumed open */
/*
* Q3MacintoshStorage_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3MacintoshStorage_Set(
TQ3StorageObject storage,
short fsRefNum);
/*
* Q3MacintoshStorage_Get()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3MacintoshStorage_Get(
TQ3StorageObject storage,
short * fsRefNum);
/*
* Q3MacintoshStorage_GetType()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3ObjectType )
Q3MacintoshStorage_GetType(TQ3StorageObject storage);
/******************************************************************************
** **
** Macintosh FSSpec Storage Prototypes **
** **
*****************************************************************************/
/*
* Q3FSSpecStorage_New()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3StorageObject )
Q3FSSpecStorage_New(const FSSpec * fs);
/*
* Q3FSSpecStorage_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3FSSpecStorage_Set(
TQ3StorageObject storage,
const FSSpec * fs);
/*
* Q3FSSpecStorage_Get()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3FSSpecStorage_Get(
TQ3StorageObject storage,
FSSpec * fs);
#endif /* CALL_NOT_IN_CARBON */
#endif /* TARGET_OS_MAC */
#if TARGET_OS_WIN32
/******************************************************************************
** **
** Win32 HANDLE Storage Prototypes **
** **
*****************************************************************************/
#if CALL_NOT_IN_CARBON
/*
* Q3Win32Storage_New()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3StorageObject )
Q3Win32Storage_New(HANDLE hFile);
/*
* Q3Win32Storage_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3Win32Storage_Set(
TQ3StorageObject storage,
HANDLE hFile);
/*
* Q3Win32Storage_Get()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3Win32Storage_Get(
TQ3StorageObject storage,
HANDLE * hFile);
#endif /* CALL_NOT_IN_CARBON */
#endif /* TARGET_OS_WIN32 */
/******************************************************************************
** **
** Unix Prototypes **
** The Unix Storage prototypes have been obsoleted. **
** **
*****************************************************************************/
/******************************************************************************
** **
** Unix Path Prototypes **
** **
*****************************************************************************/
#if CALL_NOT_IN_CARBON
/*
* Q3UnixPathStorage_New()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3StorageObject )
Q3UnixPathStorage_New(const char * pathName);
/* C string */
/*
* Q3UnixPathStorage_Set()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3UnixPathStorage_Set(
TQ3StorageObject storage,
const char * pathName);
/* C string */
/*
* Q3UnixPathStorage_Get()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( TQ3Status )
Q3UnixPathStorage_Get(
TQ3StorageObject storage,
char * pathName);
/* pathName is a buffer */
#endif /* CALL_NOT_IN_CARBON */
#if PRAGMA_ENUM_ALWAYSINT
#pragma enumsalwaysint reset
#ifdef __QD3DSTORAGE__RESTORE_TWOBYTEINTS
#pragma fourbyteints off
#endif
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=reset
#elif defined(__QD3DSTORAGE__RESTORE_PACKED_ENUMS)
#pragma options(pack_enums)
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
#endif
#ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
#endif
#ifdef __cplusplus
}
#endif
#endif /* __QD3DSTORAGE__ */