165 lines
8.3 KiB
C
165 lines
8.3 KiB
C
|
/*
|
||
|
*
|
||
|
* @APPLE_LICENSE_HEADER_START@
|
||
|
*
|
||
|
* Copyright (c) 1999-2008 Apple Inc. All Rights Reserved.
|
||
|
*
|
||
|
* This file contains Original Code and/or Modifications of Original Code
|
||
|
* as defined in and that are subject to the Apple Public Source License
|
||
|
* Version 2.0 (the 'License'). You may not use this file except in
|
||
|
* compliance with the License. Please obtain a copy of the License at
|
||
|
* http://www.opensource.apple.com/apsl/ and read it before using this
|
||
|
* file.
|
||
|
*
|
||
|
* The Original Code and all software distributed under the License are
|
||
|
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
||
|
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
||
|
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
||
|
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
||
|
* Please see the License for the specific language governing rights and
|
||
|
* limitations under the License.
|
||
|
*
|
||
|
* @APPLE_LICENSE_HEADER_END@
|
||
|
*
|
||
|
*/
|
||
|
/*
|
||
|
File: QTSSCallbacks.h
|
||
|
|
||
|
Contains: All the QTSS callback functions
|
||
|
|
||
|
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef __QTSSCALLBACKS_H__
|
||
|
#define __QTSSCALLBACKS_H__
|
||
|
|
||
|
#include "QTSS.h"
|
||
|
|
||
|
class QTSSCallbacks
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
// MEMORY ROUTINES
|
||
|
|
||
|
static void* QTSS_New(FourCharCode inMemoryIdentifier, UInt32 inSize);
|
||
|
static void QTSS_Delete(void* inMemory);
|
||
|
|
||
|
|
||
|
// TIME ROUTINES
|
||
|
static void QTSS_Milliseconds(SInt64* outMilliseconds);
|
||
|
static void QTSS_ConvertToUnixTime(SInt64* inQTSS_MilliSecondsPtr, time_t* outSecondsPtr);
|
||
|
|
||
|
// STARTUP ROUTINES
|
||
|
|
||
|
static QTSS_Error QTSS_AddRole(QTSS_Role inRole);
|
||
|
|
||
|
// DICTIONARY ROUTINES
|
||
|
|
||
|
// DICTIONARY LOCKING
|
||
|
static QTSS_Error QTSS_LockObject(QTSS_Object inDictionary);
|
||
|
static QTSS_Error QTSS_UnlockObject(QTSS_Object inDictionary);
|
||
|
|
||
|
// CREATE NEW OBJECT TYPE
|
||
|
static QTSS_Error QTSS_CreateObjectType(QTSS_ObjectType* outType);
|
||
|
|
||
|
// ADD ATTRIBUTE
|
||
|
|
||
|
static QTSS_Error QTSS_AddAttribute(QTSS_ObjectType inType, const char* inTag, void* inUnused);
|
||
|
static QTSS_Error QTSS_AddStaticAttribute(QTSS_ObjectType inObjectType, const char* inAttrName, void* inUnused, QTSS_AttrDataType inAttrDataType);
|
||
|
static QTSS_Error QTSS_AddInstanceAttribute(QTSS_Object inObject, const char* inAttrName, void* inUnused, QTSS_AttrDataType inAttrDataType);
|
||
|
|
||
|
// REMOVE ATTRIBUTE
|
||
|
|
||
|
static QTSS_Error QTSS_RemoveInstanceAttribute(QTSS_Object inObject, QTSS_AttributeID inID);
|
||
|
|
||
|
// ATTRIBUTE INFO
|
||
|
static QTSS_Error QTSS_IDForAttr(QTSS_ObjectType inType, const char* inTag, QTSS_AttributeID* outID);
|
||
|
|
||
|
static QTSS_Error QTSS_GetAttrInfoByName(QTSS_Object inObject, const char* inAttrName, QTSS_Object* outAttrInfoObject);
|
||
|
static QTSS_Error QTSS_GetAttrInfoByID(QTSS_Object inObject, QTSS_AttributeID inAttrID, QTSS_Object* outAttrInfoObject);
|
||
|
static QTSS_Error QTSS_GetAttrInfoByIndex(QTSS_Object inObject, UInt32 inIndex, QTSS_Object* outAttrInfoObject);
|
||
|
|
||
|
static QTSS_Error QTSS_GetNumAttributes(QTSS_Object inObject, UInt32* outNumValues);
|
||
|
|
||
|
// TYPE INFO & TYPE CONVERSIONS
|
||
|
|
||
|
static QTSS_Error QTSS_TypeToTypeString(const QTSS_AttrDataType inType, char** outTypeString);
|
||
|
static QTSS_Error QTSS_TypeStringToType( char* inTypeString, QTSS_AttrDataType* outType);
|
||
|
static QTSS_Error QTSS_StringToValue( char* inValueAsString, const QTSS_AttrDataType inType, void* ioBuffer, UInt32* ioBufSize);
|
||
|
static QTSS_Error QTSS_ValueToString( void* inValue, const UInt32 inValueLen, const QTSS_AttrDataType inType, char** outString);
|
||
|
|
||
|
// ATTRIBUTE VALUES
|
||
|
|
||
|
static QTSS_Error QTSS_GetValuePtr (QTSS_Object inDictionary, QTSS_AttributeID inID, UInt32 inIndex, void** outBuffer, UInt32* outLen);
|
||
|
static QTSS_Error QTSS_GetValue (QTSS_Object inDictionary, QTSS_AttributeID inID, UInt32 inIndex, void* ioBuffer, UInt32* ioLen);
|
||
|
static QTSS_Error QTSS_GetValueAsString (QTSS_Object inDictionary, QTSS_AttributeID inID, UInt32 inIndex, char** outString);
|
||
|
|
||
|
static QTSS_Error QTSS_SetValue (QTSS_Object inDictionary, QTSS_AttributeID inID, UInt32 inIndex, const void* inBuffer, UInt32 inLen);
|
||
|
static QTSS_Error QTSS_SetValuePtr (QTSS_Object inDictionary, QTSS_AttributeID inID, const void* inBuffer, UInt32 inLen);
|
||
|
static QTSS_Error QTSS_CreateObject (QTSS_Object inDictionary, QTSS_AttributeID inID, QTSS_ObjectType inType, UInt32* outIndex, QTSS_Object* outCreatedObject);
|
||
|
static QTSS_Error QTSS_GetNumValues (QTSS_Object inObject, QTSS_AttributeID inID, UInt32* outNumValues);
|
||
|
static QTSS_Error QTSS_RemoveValue (QTSS_Object inObject, QTSS_AttributeID inID, UInt32 inIndex);
|
||
|
|
||
|
// STREAM ROUTINES
|
||
|
|
||
|
static QTSS_Error QTSS_Write(QTSS_StreamRef inStream, void* inBuffer, UInt32 inLen, UInt32* outLenWritten, QTSS_WriteFlags inFlags);
|
||
|
static QTSS_Error QTSS_WriteV(QTSS_StreamRef inStream, iovec* inVec, UInt32 inNumVectors, UInt32 inTotalLength, UInt32* outLenWritten);
|
||
|
static QTSS_Error QTSS_Flush(QTSS_StreamRef inStream);
|
||
|
static QTSS_Error QTSS_Read(QTSS_StreamRef inRef, void* ioBuffer, UInt32 inBufLen, UInt32* outLengthRead);
|
||
|
static QTSS_Error QTSS_Seek(QTSS_StreamRef inRef, UInt64 inNewPosition);
|
||
|
static QTSS_Error QTSS_Advise(QTSS_StreamRef inRef, UInt64 inPosition, UInt32 inAdviseSize);
|
||
|
|
||
|
// FILE SYSTEM ROUTINES
|
||
|
|
||
|
static QTSS_Error QTSS_OpenFileObject(char* inPath, QTSS_OpenFileFlags inFlags, QTSS_Object* outFileObject);
|
||
|
static QTSS_Error QTSS_CloseFileObject(QTSS_Object inFileObject);
|
||
|
|
||
|
// SOCKET ROUTINES
|
||
|
|
||
|
static QTSS_Error QTSS_CreateStreamFromSocket(int inFileDesc, QTSS_StreamRef* outStream);
|
||
|
static QTSS_Error QTSS_DestroySocketStream(QTSS_StreamRef inStream);
|
||
|
|
||
|
// SERVICE ROUTINES
|
||
|
|
||
|
static QTSS_Error QTSS_AddService(const char* inServiceName, QTSS_ServiceFunctionPtr inFunctionPtr);
|
||
|
static QTSS_Error QTSS_IDForService(const char* inTag, QTSS_ServiceID* outID);
|
||
|
static QTSS_Error QTSS_DoService(QTSS_ServiceID inID, QTSS_ServiceFunctionArgsPtr inArgs);
|
||
|
|
||
|
// RTSP ROUTINES
|
||
|
|
||
|
static QTSS_Error QTSS_SendRTSPHeaders(QTSS_RTSPRequestObject inRef);
|
||
|
static QTSS_Error QTSS_AppendRTSPHeader(QTSS_RTSPRequestObject inRef, QTSS_RTSPHeader inHeader, char* inValue, UInt32 inValueLen);
|
||
|
static QTSS_Error QTSS_SendStandardRTSPResponse(QTSS_RTSPRequestObject inRTSPRequest, QTSS_Object inRTPInfo, UInt32 inFlags);
|
||
|
|
||
|
// RTP ROUTINES
|
||
|
|
||
|
static QTSS_Error QTSS_AddRTPStream(QTSS_ClientSessionObject inClientSession, QTSS_RTSPRequestObject inRTSPRequest, QTSS_RTPStreamObject* outStream, QTSS_AddStreamFlags inFlags);
|
||
|
static QTSS_Error QTSS_Play(QTSS_ClientSessionObject inClientSession, QTSS_RTSPRequestObject inRTSPRequest, QTSS_PlayFlags inPlayFlags);
|
||
|
static QTSS_Error QTSS_Pause(QTSS_ClientSessionObject inClientSession);
|
||
|
static QTSS_Error QTSS_Teardown(QTSS_ClientSessionObject inClientSession);
|
||
|
static QTSS_Error QTSS_RefreshTimeOut(QTSS_ClientSessionObject inClientSession);
|
||
|
|
||
|
// ASYNC I/O ROUTINES
|
||
|
static QTSS_Error QTSS_RequestEvent(QTSS_StreamRef inStream, QTSS_EventType inEventMask);
|
||
|
static QTSS_Error QTSS_SignalStream(QTSS_StreamRef inStream);
|
||
|
static QTSS_Error QTSS_SetIdleTimer(SInt64 inMsecToWait);
|
||
|
static QTSS_Error QTSS_SetIdleRoleTimer(SInt64 inMsecToWait);
|
||
|
|
||
|
|
||
|
static QTSS_Error QTSS_RequestLockedCallback();
|
||
|
static Bool16 QTSS_IsGlobalLocked();
|
||
|
static QTSS_Error QTSS_UnlockGlobalLock();
|
||
|
|
||
|
// AUTHENTICATION AND AUTHORIZATION ROUTINE
|
||
|
static QTSS_Error QTSS_Authenticate(const char* inAuthUserName, const char* inAuthResourceLocalPath, const char* inAuthMoviesDir, QTSS_ActionFlags inAuthRequestAction, QTSS_AuthScheme inAuthScheme, QTSS_RTSPRequestObject ioAuthRequestObject);
|
||
|
static QTSS_Error QTSS_Authorize(QTSS_RTSPRequestObject inAuthRequestObject, char** outAuthRealm, Bool16* outAuthUserAllowed);
|
||
|
|
||
|
static void QTSS_LockStdLib();
|
||
|
static void QTSS_UnlockStdLib();
|
||
|
private:
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif //__QTSSCALLBACKS_H__
|