![]() |
pl-nk v0.4.5
Plonk|Plink|Plank are a set of cross-platform C/C++ frameworks for audio software development
|
00001 /* 00002 ------------------------------------------------------------------------------- 00003 This file is part of the Plink, Plonk, Plank libraries 00004 by Martin Robinson 00005 00006 http://code.google.com/p/pl-nk/ 00007 00008 Copyright University of the West of England, Bristol 2011-14 00009 All rights reserved. 00010 00011 Redistribution and use in source and binary forms, with or without 00012 modification, are permitted provided that the following conditions are met: 00013 00014 * Redistributions of source code must retain the above copyright 00015 notice, this list of conditions and the following disclaimer. 00016 * Redistributions in binary form must reproduce the above copyright 00017 notice, this list of conditions and the following disclaimer in the 00018 documentation and/or other materials provided with the distribution. 00019 * Neither the name of University of the West of England, Bristol nor 00020 the names of its contributors may be used to endorse or promote products 00021 derived from this software without specific prior written permission. 00022 00023 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 00024 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00025 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00026 DISCLAIMED. IN NO EVENT SHALL UNIVERSITY OF THE WEST OF ENGLAND, BRISTOL BE 00027 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 00028 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 00029 GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00030 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00031 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00032 OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00033 00034 This software makes use of third party libraries. For more information see: 00035 doc/license.txt included in the distribution. 00036 ------------------------------------------------------------------------------- 00037 */ 00038 00039 #ifndef PLANK_AUDIOFILECUEPOINT_H 00040 #define PLANK_AUDIOFILECUEPOINT_H 00041 00042 #include "plank_AudioFileCommon.h" 00043 #include "../../containers/plank_SharedPtr.h" 00044 #include "../../containers/plank_DynamicArray.h" 00045 00046 #define PLANKSHAREDPTR_TYPE_AUDIOFILECUEPOINT pl_FourCharCode("cuep") 00047 00048 PLANK_BEGIN_C_LINKAGE 00049 00059 PlankResult pl_AudioFileCuePoint_CreateSharedPtr (PlankAudioFileCuePointRef* pp); 00060 PlankAudioFileCuePointRef pl_AudioFileCuePoint_IncrementRefCountAndGet (PlankAudioFileCuePointRef p); 00061 PlankResult pl_AudioFileCuePoint_DecrementRefCount (PlankAudioFileCuePointRef p); 00062 00063 PlankResult pl_AudioFileCuePoint_SetCopy (PlankAudioFileCuePointRef p, PlankAudioFileCuePointRef source); 00064 PlankResult pl_AudioFileCuePoint_SetPosition (PlankAudioFileCuePointRef p, const double position); 00065 PlankResult pl_AudioFileCuePoint_SetID (PlankAudioFileCuePointRef p, const PlankUI cueID); 00066 PlankResult pl_AudioFileCuePoint_SetLabel (PlankAudioFileCuePointRef p, const char* label); 00067 PlankResult pl_AudioFileCuePoint_SetLabelLengthClear (PlankAudioFileCuePointRef p, const PlankL length); 00068 PlankResult pl_AudioFileCuePoint_SetComment (PlankAudioFileCuePointRef p, const char* comment); 00069 PlankResult pl_AudioFileCuePoint_SetCommentLengthClear (PlankAudioFileCuePointRef p, const PlankL length); 00070 PlankResult pl_AudioFileCuePoint_SetType (PlankAudioFileCuePointRef p, const int type); 00071 PlankResult pl_AudioFileCuePoint_SetExtra (PlankAudioFileCuePointRef p, PlankUI purpose, PlankUS country, PlankUS language, PlankUS dialect, PlankUS codePage); 00072 00073 double pl_AudioFileCuePoint_GetPosition (PlankAudioFileCuePointRef p); 00074 PlankUI pl_AudioFileCuePoint_GetID (PlankAudioFileCuePointRef p); 00075 const char* pl_AudioFileCuePoint_GetLabel (PlankAudioFileCuePointRef p); 00076 char* pl_AudioFileCuePoint_GetLabelWritable (PlankAudioFileCuePointRef p); 00077 const char* pl_AudioFileCuePoint_GetComment (PlankAudioFileCuePointRef p); 00078 char* pl_AudioFileCuePoint_GetCommentWritable (PlankAudioFileCuePointRef p); 00079 int pl_AudioFileCuePoint_GetType (PlankAudioFileCuePointRef p); 00080 PlankUI pl_AudioFileCuePoint_GetLabelSize (PlankAudioFileCuePointRef p); 00081 PlankUI pl_AudioFileCuePoint_GetCommentSize (PlankAudioFileCuePointRef p); 00082 PlankAudioFileCuePointExtraRef pl_AudioFileCuePoint_GetExtra (PlankAudioFileCuePointRef p); 00083 PlankResult pl_AudioFileCuePoint_OffsetPosition (PlankAudioFileCuePointRef p, const double offset); 00084 00085 PlankB pl_AudioFileCuePoint_ComparePosition (PlankAudioFileCuePointRef low, PlankAudioFileCuePointRef hi); 00086 PlankB pl_AudioFileCuePoint_CompareID (PlankAudioFileCuePointRef low, PlankAudioFileCuePointRef hi); 00087 00090 PLANK_END_C_LINKAGE 00091 00092 #if !DOXYGEN 00093 typedef struct PlankAudioFileCuePointExtra 00094 { 00095 PlankUI purpose; 00096 PlankUS country; 00097 PlankUS language; 00098 PlankUS dialect; 00099 PlankUS codePage; 00100 } PlankAudioFileCuePointExtra; 00101 00102 typedef struct PlankAudioFileCuePoint 00103 { 00104 PlankSharedPtr sharedHeader; 00105 double position; 00106 PlankDynamicArray label; 00107 PlankDynamicArray comment; 00108 PlankAudioFileCuePointExtra* extra; 00109 PlankUI cueID; 00110 int type; 00111 } PlankAudioFileCuePoint; 00112 #endif 00113 00114 #endif // PLANK_AUDIOFILECUEPOINT_H