Mercurial > hg > minc-tools
changeset 1888:e5c6b5071990
*** empty log message ***
author | baghdadi <baghdadi> |
---|---|
date | Thu, 28 Oct 2004 17:54:08 +0000 |
parents | 22f2cfa11696 |
children | eddefa153e2b |
files | libsrc2/doc/minc_20.tex libsrc2/label.c libsrc2/minc2.h libsrc2/test/label-test.c |
diffstat | 4 files changed, 71 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/libsrc2/doc/minc_20.tex +++ b/libsrc2/doc/minc_20.tex @@ -116,6 +116,9 @@ WED OCT 27/2004 Leila\\* * Correct the order of parameters in range functions +THU OCT 28/2004 Leila\\* +* Added an extra function to retrive the number of defined labels + \section{Introduction} @@ -1942,7 +1945,7 @@ MI_NOERROR on success, MI_ERROR on failure. \end{verbatim} -\section{LABEL FUNCTIONS (3)} +\section{LABEL FUNCTIONS (4)} \subsection{midefine\_label} \begin{verbatim} NAME @@ -2021,6 +2024,29 @@ MI_NOERROR on success, MI_ERROR on failure. \end{verbatim} +\subsection{miget\_number\_of\_defined\_labels} +\begin{verbatim} + +NAME + +miget_number_of_defined_labels - Retrive the number of defined labels + +SYNOPSIS + +#include <minc2.h> + +int miget_number_of_defined_labels ( mihandle_t volume, + int *number_of_labels ); + +DESCRIPTION + +This function returns the number of defined labels, if any, or zero otherwise. + +RETURN VALUE + +MI_NOERROR on success, MI_ERROR on failure. +\end{verbatim} + \section{RECORD FUNCTIONS (4)} \subsection{miget\_record\_name} \begin{verbatim}
--- a/libsrc2/label.c +++ b/libsrc2/label.c @@ -159,3 +159,32 @@ return (MI_NOERROR); } +int +miget_number_of_defined_labels(mihandle_t volume, int *number_of_labels) +{ + int result; + + if (volume == NULL) { + return (MI_ERROR); + } + if (volume->volume_class != MI_CLASS_LABEL) { + return (MI_ERROR); + } + + if (volume->mtype_id <= 0) { + return (MI_ERROR); + } + + H5E_BEGIN_TRY { + result = H5Tget_nmembers(volume->mtype_id); + } H5E_END_TRY; + + if (result < 0) { + return (MI_ERROR); + } + else { + *number_of_labels = result; + } + + return (MI_NOERROR); +}
--- a/libsrc2/minc2.h +++ b/libsrc2/minc2.h @@ -498,6 +498,7 @@ extern int midefine_label(mihandle_t volume, int value, const char *name); extern int miget_label_name(mihandle_t volume, int value, char **name); extern int miget_label_value(mihandle_t volume, const char *name, int *value); +extern int miget_number_of_defined_labels(mihandle_t volume, int *number_of_labels); #ifdef __cplusplus }
--- a/libsrc2/test/label-test.c +++ b/libsrc2/test/label-test.c @@ -34,6 +34,13 @@ return (-1); } + result = miget_number_of_defined_labels(hvol,&value); + if (result != MI_NOERROR) { + TESTRPT("Invalid return from miget_label_name", result); + } + else { + printf(" %d \n", value); + } /* Now test some stuff... */ midefine_label(hvol, 0, "Black"); @@ -42,7 +49,13 @@ midefine_label(hvol, 0xff0000, "Red"); midefine_label(hvol, 0x00ff00, "Blue"); midefine_label(hvol, 0x0000ff, "Green"); - + result = miget_number_of_defined_labels(hvol,&value); + if (result != MI_NOERROR) { + TESTRPT("Invalid return from miget_label_name", result); + } + else { + printf(" %d \n", value); + } result = miget_label_name(hvol, 0, &name); if (result != MI_NOERROR) { TESTRPT("Invalid return from miget_label_name", result);