diff options
Diffstat (limited to 'libvideoeditor/osal/inc/M4OSA_FileWriter.h')
-rwxr-xr-x | libvideoeditor/osal/inc/M4OSA_FileWriter.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/libvideoeditor/osal/inc/M4OSA_FileWriter.h b/libvideoeditor/osal/inc/M4OSA_FileWriter.h new file mode 100755 index 0000000..b8ba553 --- /dev/null +++ b/libvideoeditor/osal/inc/M4OSA_FileWriter.h @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2004-2011 NXP Software + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + ************************************************************************ + * @file M4OSA_FileWriter.h + * @ingroup OSAL + * @brief File writer + * @note This file declares functions and types to write in a file. + ************************************************************************ +*/ + + +#ifndef M4OSA_FILEWRITER_H +#define M4OSA_FILEWRITER_H + +#include "M4OSA_Types.h" +#include "M4OSA_Error.h" +#include "M4OSA_FileCommon.h" +#include "M4OSA_Memory.h" + + +/** This enum defines the option ID to be used in M4OSA_FileWriteGetOption() +and M4OSA_FileWriteSetOption()*/ +typedef enum +{ + /** Get the file URL, provided by the M4OSA_FileWriteOpen (M4OSA_Char*)*/ + M4OSA_kFileWriteGetURL + = M4OSA_OPTION_ID_CREATE(M4_READ, M4OSA_FILE_WRITER, 0x01), + + /** Get the file attributes (M4OSA_FileAttribute*)*/ + M4OSA_kFileWriteGetAttribute + = M4OSA_OPTION_ID_CREATE(M4_READ, M4OSA_FILE_WRITER, 0x02), + + /** Get the reader context for read & write file. (M4OSA_Context*)*/ + M4OSA_kFileWriteGetReaderContext + = M4OSA_OPTION_ID_CREATE(M4_READ, M4OSA_FILE_WRITER, 0x03), + + M4OSA_kFileWriteGetFilePosition + = M4OSA_OPTION_ID_CREATE(M4_READ, M4OSA_FILE_WRITER, 0x04), + + M4OSA_kFileWriteGetFileSize + = M4OSA_OPTION_ID_CREATE(M4_READ, M4OSA_FILE_WRITER, 0x05), + + + M4OSA_kFileWriteLockMode + = M4OSA_OPTION_ID_CREATE(M4_READWRITE, M4OSA_FILE_WRITER, 0x06), + + + /** Check lock of file */ + M4OSA_kFileWriteDescMode + = M4OSA_OPTION_ID_CREATE(M4_READWRITE, M4OSA_FILE_WRITER, 0x07) +} M4OSA_FileWriteOptionID; + + +/** This structure stores the set of the function pointer to access to a file + in read mode*/ +typedef struct +{ + M4OSA_ERR (*openWrite) (M4OSA_Context* context, + M4OSA_Void* fileDescriptor, + M4OSA_UInt32 fileModeAccess); + + M4OSA_ERR (*writeData) (M4OSA_Context context, + M4OSA_MemAddr8 data, + M4OSA_UInt32 size); + + M4OSA_ERR (*seek) (M4OSA_Context context, + M4OSA_FileSeekAccessMode seekMode, + M4OSA_FilePosition* position); + + M4OSA_ERR (*Flush) (M4OSA_Context context); + M4OSA_ERR (*closeWrite) (M4OSA_Context context); + M4OSA_ERR (*setOption) (M4OSA_Context context, + M4OSA_OptionID optionID, + M4OSA_DataOption optionValue); + + M4OSA_ERR (*getOption) (M4OSA_Context context, + M4OSA_OptionID optionID, + M4OSA_DataOption* optionValue); +} M4OSA_FileWriterPointer; + +#ifdef __cplusplus +extern "C" +{ +#endif + +M4OSAL_FILE_EXPORT_TYPE M4OSA_ERR M4OSA_fileWriteOpen (M4OSA_Context* context, + M4OSA_Void* fileDescriptor, + M4OSA_UInt32 fileModeAccess); + +M4OSAL_FILE_EXPORT_TYPE M4OSA_ERR M4OSA_fileWriteData (M4OSA_Context context, + M4OSA_MemAddr8 data, + M4OSA_UInt32 size); + +/* Pierre Lebeaupin 2008/04/29: WARNING! the feature of file*Seek which returns +the position in the file (from the beginning) after the seek in the "position" +pointer has been found to be unreliably (or sometimes not at all) implemented +in some OSALs, so relying on it is strongly discouraged, unless you really want +to have a pizza evening. */ +M4OSAL_FILE_EXPORT_TYPE M4OSA_ERR M4OSA_fileWriteSeek (M4OSA_Context context, + M4OSA_FileSeekAccessMode seekMode, + M4OSA_FilePosition* position); + +M4OSAL_FILE_EXPORT_TYPE M4OSA_ERR M4OSA_fileWriteClose (M4OSA_Context context); + +M4OSAL_FILE_EXPORT_TYPE M4OSA_ERR M4OSA_fileWriteFlush (M4OSA_Context context); + +M4OSAL_FILE_EXPORT_TYPE M4OSA_ERR M4OSA_fileWriteGetOption (M4OSA_Context context, + M4OSA_OptionID optionID, + M4OSA_DataOption* optionValue); + +M4OSAL_FILE_EXPORT_TYPE M4OSA_ERR M4OSA_fileWriteSetOption (M4OSA_Context context, + M4OSA_OptionID optionID, + M4OSA_DataOption optionValue); + +#ifdef __cplusplus +} +#endif + + +#endif /*M4OSA_FILEWRITER_H*/ + |