mirror of
				https://notabug.org/scuti/lib3ddevil1
				synced 2025-05-31 14:11:42 +05:30 
			
		
		
		
	Added document for pld component
This commit is contained in:
		
							
								
								
									
										56
									
								
								docs/doc-pld.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								docs/doc-pld.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | |||||||
|  |  | ||||||
|  | devil1pld.h / devil1pld.c | ||||||
|  |     Handles .pld files. | ||||||
|  |  | ||||||
|  | File Format | ||||||
|  |     PLDs are simple packages of different files, and do not contain a table | ||||||
|  |     of contents. The header consists only of the number of files packaged | ||||||
|  |     and the offsets from the beginning of the .pld that marks the starting | ||||||
|  |     location of the file.     | ||||||
|  |  | ||||||
|  | Functions | ||||||
|  |     All functions are static but exposed by a function pointer in a constant | ||||||
|  |     struct called DEVIL1PLD. For example, clients call functions using | ||||||
|  |         DEVIL1PLD.getheader(..., ...); | ||||||
|  |  | ||||||
|  |     bool getheader(struct PldHeader*, const char*); | ||||||
|  |         Places file header into the struct pointed at by the first parameter | ||||||
|  |         from the information given in by the second parameter. | ||||||
|  |  | ||||||
|  |         inputs: pointer to a struct, pointer to file data | ||||||
|  |                 Neither parameter should be NULL. | ||||||
|  |  | ||||||
|  |         output: true or false, whether or not operation succeeds or fails. | ||||||
|  |                 Will return false if one or both of the parameters are NULL | ||||||
|  |                 pointers. | ||||||
|  |                 Will return false if the attribute numOffset is less than 0- | ||||||
|  |                 i.e file is not valid. | ||||||
|  |  | ||||||
|  |     int sizeofsector(struct PldHeader*, unsigned int i, unsigned int max); | ||||||
|  |         Returns the size of the i-th file packed in the pld. | ||||||
|  |  | ||||||
|  |         inputs: pointer to a struct, i-th element in pld, file size | ||||||
|  |  | ||||||
|  |         output: (-1), [0, maximum value of int) | ||||||
|  |                 -1 indicates an invalid input. | ||||||
|  |  | ||||||
|  |     void printheader(struct PldHeader*); | ||||||
|  |         Shows contents of a PLD header in standard output. | ||||||
|  |  | ||||||
|  |         inputs: pointer of a struct | ||||||
|  |  | ||||||
|  | Example logic to iterate through a .pld | ||||||
|  |     { | ||||||
|  |         ... | ||||||
|  |         // Get information about the file | ||||||
|  |         struct PldHeader h; | ||||||
|  |         DEVIL1PLD.getheader(&h, data); | ||||||
|  |          | ||||||
|  |         unsigned int i; | ||||||
|  |         for (i = 0; i < h.numOffset; i++) { | ||||||
|  |             const char *currentfile = filedata + h.offset[i]; | ||||||
|  |             ... | ||||||
|  |         } | ||||||
|  |         ... | ||||||
|  |      | ||||||
|  |     } | ||||||
		Reference in New Issue
	
	Block a user