1 /*---------------------------------------------------------------------------*
2   Project:  Revolution THP Utilities Library
3   File:     thputilities.h
4 
5   Copyright (C)2002-2006 Nintendo  All Rights Reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Log: thputilities.h,v $
14   Revision 1.1  02/08/2006 02:52:42  aka
15   Imported from Dolphin Tree.
16 
17 
18     11    03/12/24 1:48p Akagi
19     Added THPUtyCopyTHPFile().
20 
21     10    03/09/15 5:50p Akagi
22     Renamed all functions from THPCONVXXXX to THPUtyXXXX.
23 
24     9     03/07/03 10:57a Akagi
25     Renamed some functions.
26 
27     8     03/07/01 3:09p Akagi
28     Modified to divide old THPConv.exe into 2 LIBs and 1 EXE by
29     Ohki-san@NTSC.
30 
31     7     03/07/01 2:59p Akagi
32     Moved from build/tools/THPConv/include.
33 
34     6     03/07/01 9:19a Akagi
35     Moved from securebuild/tools.
36 
37     5     02/05/08 2:30p Akagi
38     modified [-trk] option By Tsuji (IRD)
39 
40     1     02/01/16 4:56p Akagi
41     Initial revision made by Tsuji-san (IRD).
42 
43   $NoKeywords: $
44 
45  *---------------------------------------------------------------------------*/
46 
47 #ifndef __THPUTILITIES_H__
48 #define __THPUTILITIES_H__
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 #include <revolution/types.h>
55 #include <revolution/thpfile.h>
56 #include <win32/thpaudio.h>
57 
58 //--------------------------------------
59 // flags for THPUtyCreateTHP
60 //--------------------------------------
61 #define THP_CREATETHP_FILEFLAG_JPEGS  0
62 #define THP_CREATETHP_FILEFLAG_THP    1
63 
64 //--------------------------------------
65 // THPFileName
66 //--------------------------------------
67 typedef struct
68 {
69     char           name[_MAX_PATH];
70     unsigned long  fileSize;
71 
72 } THPFileName;
73 
74 //--------------------------------------
75 // Utility Functions
76 //--------------------------------------
77 
78 void THPUtyConvertToUnixFmt( char* fmt );
79 
80 u16  THPUtyReverseEndianU16( u16   data );
81 u32  THPUtyReverseEndianU32( u32   data );
82 f32  THPUtyReverseEndianF32( f32   data );
83 
84 s32  THPUtyWritePad32      ( FILE* op, u32 bytes );
85 s32  THPUtyPutU32          ( FILE* op, u32 data );
86 s32  THPUtyPutF32          ( FILE* op, f32 data );
87 
88 //--------------------------------------
89 // THP File Write Functions
90 //--------------------------------------
91 
92 void THPUtyHeaderInit( THPHeader* header );
93 
94 s32  THPUtyWriteTHPHeader        ( FILE* op, THPHeader*        header );
95 s32  THPUtyWriteTHPFrameCompInfo ( FILE* op, THPFrameCompInfo* compinfo );
96 s32  THPUtyWriteTHPVideoInfo     ( FILE* op, THPVideoInfo*     videoinfo );
97 s32  THPUtyWriteTHPAudioInfo     ( FILE* op, THPAudioInfo*     audioinfo );
98 s32  THPUtyWriteTHPFrameHeader   ( FILE* op, THPFrameCompInfo* frameCompInfo,
99                                              THPFrameHeader*   frameHeader );
100 s32  THPUtyWriteTHPComponentsInfo( FILE* op, THPFrameCompInfo* compinfo,
101                                              THPVideoInfo*     videoinfo,
102                                              THPAudioInfo*     audioinfo,
103                                              s32*              compinfosize );
104 s32  THPUtyWriteTHPFileHeader    ( FILE* op, THPFileHeader*    fileHeader,
105                                              s32*              compInfoSize );
106 
107 //--------------------------------------
108 // THP File Read Functions
109 //--------------------------------------
110 
111 s32  THPUtyReadTHPHeader       ( FILE* ip, THPHeader*        header );
112 s32  THPUtyReadTHPFrameCompInfo( FILE* ip, THPFrameCompInfo* compinfo );
113 s32  THPUtyReadTHPVideoInfo    ( FILE* ip, THPVideoInfo*     videoinfo );
114 s32  THPUtyReadTHPVideoInfoOld ( FILE* ip, THPVideoInfo*     videoinfo );
115 s32  THPUtyReadTHPAudioInfo    ( FILE* ip, THPAudioInfo*     audioinfo );
116 s32  THPUtyReadTHPAudioInfoOld ( FILE* ip, THPAudioInfo*     audioinfo );
117 s32  THPUtyReadTHPFrameHeader  ( FILE* ip, THPFrameHeader*   frameHeader,
118                                            s32               componentNum );
119 s32  THPUtyReadTHPFileHeader   ( FILE* ip, THPFileHeader*    fileHeader );
120 
121 //--------------------------------------
122 // THP File Manipulating Functions
123 //--------------------------------------
124 
125 s32  THPUtyCopyTHPFile     ( FILE* ip,  THPFileHeader*   fileHeader,
126                                         FILE*            op );
127 s32  THPUtyCreateTHP       ( FILE* op,  s32              fileFlag,
128                                         void*            filePtr,
129                                         THPFileHeader*   fileHeader,
130                                         THPAudioHandle** audioHandleList );
131 s32  THPUtyChangeAudioTrack( FILE* iop, THPFileHeader*   fileHeader,
132                                         THPAudioHandle** audioHandleList );
133 
134 #ifdef __cplusplus
135 }
136 #endif
137 
138 #endif // __THPUTILITIES_H__
139