]> Creatis software - gdcm.git/blobdiff - src/gdcmopenjpeg/libopenjpeg/pi.h
(Try to) fix troubles with WIN32 vs _WIN32 at compile time
[gdcm.git] / src / gdcmopenjpeg / libopenjpeg / pi.h
index 0d1ab427ed1f839e5af5648edc92ccdf2ae66dda..509fdd6b1ca66a001cf1d49ac92771b9569c6db4 100644 (file)
@@ -1,5 +1,9 @@
 /*
- * Copyright (c) 2001-2002, David Janssens
+ * Copyright (c) 2001-2003, David Janssens
+ * Copyright (c) 2002-2003, Yannick Verschueren
+ * Copyright (c) 2003-2005, Francois Devaux and Antonin Descampe
+ * Copyright (c) 2005, HervĂ© Drolon, FreeImage Team
+ * Copyright (c) 2002-2005, Communications and remote sensing Laboratory, Universite catholique de Louvain, Belgium
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 
 #ifndef __PI_H
 #define __PI_H
+/**
+@file pi.h
+@brief Implementation of a packet iterator (PI)
 
-#include "j2k.h"
-#include "tcd.h"
+The functions in PI.C have for goal to realize a packet iterator that permits to get the next
+packet following the progression order and change of it. The functions in PI.C are used
+by some function in T2.C.
+*/
 
-typedef struct {
+/** @defgroup PI PI - Implementation of a packet iterator */
+/*@{*/
+
+/**
+FIXME: documentation
+*/
+typedef struct opj_pi_resolution {
   int pdx, pdy;
   int pw, ph;
-} pi_resolution_t;
+} opj_pi_resolution_t;
 
-typedef struct {
+/**
+FIXME: documentation
+*/
+typedef struct opj_pi_comp {
   int dx, dy;
+  /** number of resolution levels */
   int numresolutions;
-  pi_resolution_t *resolutions;
-} pi_comp_t;
+  opj_pi_resolution_t *resolutions;
+} opj_pi_comp_t;
 
-typedef struct {
-  short int *include;      /* precise if the packet has been already used (usefull for progression order change) */
-  int step_l, step_r, step_c, step_p;   /* different steps (layer, resolution, component, precinct) to localize the packet in the include vector */
-  int compno, resno, precno, layno;   /* component, resolution, precinct and layer that indentify the packet */
-  int first;         /* 0 if the first packet */
-  j2k_poc_t poc;
+/** 
+Packet iterator 
+*/
+typedef struct opj_pi_iterator {
+  /** precise if the packet has been already used (usefull for progression order change) */
+  short int *include;
+  /** layer step used to localize the packet in the include vector */
+  int step_l;
+  /** resolution step used to localize the packet in the include vector */
+  int step_r;  
+  /** component step used to localize the packet in the include vector */
+  int step_c;  
+  /** precinct step used to localize the packet in the include vector */
+  int step_p;  
+  /** component that identify the packet */
+  int compno;
+  /** resolution that identify the packet */
+  int resno;
+  /** precinct that identify the packet */
+  int precno;
+  /** layer that identify the packet */
+  int layno;   
+  /** 0 if the first packet */
+  int first;
+  /** progression order change information */
+  opj_poc_t poc;
+  /** */
   int numcomps;
-  pi_comp_t *comps;
+  /** */
+  opj_pi_comp_t *comps;
   int tx0, ty0, tx1, ty1;
   int x, y, dx, dy;
-} pi_iterator_t;      /* packet iterator */
+} opj_pi_iterator_t;
 
-/*
- * Create a packet iterator
- * img: raw image for which the packets will be listed
- * cp: coding paremeters
- * tileno: number that identifies the tile for which to list the packets
- * return value: returns a packet iterator that points to the first packet of the tile
- */
-pi_iterator_t *pi_create(j2k_image_t * img, j2k_cp_t * cp, int tileno);
+/** @name Exported functions */
+/*@{*/
+/* ----------------------------------------------------------------------- */
+/**
+Create a packet iterator
+@param image Raw image for which the packets will be listed
+@param cp Coding parameters
+@param tileno Number that identifies the tile for which to list the packets
+@return Returns a packet iterator that points to the first packet of the tile
+@see pi_destroy
+*/
+opj_pi_iterator_t *pi_create(opj_image_t * image, opj_cp_t * cp, int tileno);
 
-/* 
- * Modify the packet iterator to point to the next packet
- * pi: packet iterator to modify
- * return value: returns 0 if pi pointed to the last packet or else returns 1 
- */
-int pi_next(pi_iterator_t * pi);
+/**
+Destroy a packet iterator
+@param pi Previously created packet iterator
+@param cp Coding parameters
+@param tileno Number that identifies the tile for which the packets were listed
+@see pi_create
+*/
+void pi_destroy(opj_pi_iterator_t *pi, opj_cp_t *cp, int tileno);
+
+/**
+Modify the packet iterator to point to the next packet
+@param pi Packet iterator to modify
+@return Returns false if pi pointed to the last packet or else returns true 
+*/
+bool pi_next(opj_pi_iterator_t * pi);
+/* ----------------------------------------------------------------------- */
+/*@}*/
+
+/*@}*/
 
-#endif
+#endif /* __PI_H */