libnjb: The libnjb configuration API

- Main Page
- Modules
- Data Structures
- Files
- Directories
- Examples

# The libnjb configuration API

## Functions
void | NJB_Set_Debug (int debug_flags)
void | NJB_Set_Unicode (int unicode_flag)
int | NJB_Error_Pending (njb_t *njb)
void | NJB_Error_Reset_Geterror (njb_t *njb)
const char * | NJB_Error_Geterror (njb_t *njb)
void | NJB_Error_Dump (njb_t *njb, FILE *fp)

## Function Documentation

void NJB_Error_Dump | ( | njb_t * | njb,
|  | FILE * | fp |
| ) |  |  |

This function dumps the current libnjb error stack to a file, such as stderr. All errors currently on the stack are dumped. After dumping, the error stack is cleared and errors are not returned again. The function may be called on an empty error stack without effect, but you may just as well check the stack yourself using `NJB_Error_Pending()` as in the example below.

Typical usage:

     njb_t *njb;

     if (NJB_Error_Pending(njb)) {
         NJB_Error_Dump(njb, stderr);
     }

Parameters:

  | njb | a pointer to the NJB object to use
  | fp | a file pointer to dump the textual representation of the error stack to.

See also:
  NJB_Error_Pending()

Examples:
  cursesplay.c, delfile.c, deltr.c, dumpeax.c, dumptime.c, files.c, fwupgrade.c, getfile.c, getowner.c, gettr.c, getusage.c, handshake.c, pl.c, play.c, playlists.c, sendfile.c, sendtr.c, setowner.c, setpbm.c, settime.c, tagtr.c, and tracks.c.

const char* NJB_Error_Geterror | ( | njb_t * | njb | ) |

This function returns the topmost error on the error stack as a string. The result is statically allocated and MUST NOT be freed by the calling application. This function should be repeatedly called until no errors remain and the function returns NULL. After retrieveing all error strings like this, the error stack is cleared and none of the errors will be returned again.

Parameters:

  | njb | a pointer to the NJB object to use

Returns:
  a string representing one error on the error stack or NULL.

int NJB_Error_Pending | ( | njb_t * | njb | ) |

This function tells wheter an error message is queued and pending for the current device. If so, the error should be retrieved using `NJB_Error_Geterror()` or dumped using `NJB_Error_Dumperror()`.

Parameters:

  | njb | a pointer to the NJB object to use

Returns:
  0 if there are no errors pending, 1 if there are errors pending

See also:
  NJB_Error_Reset_Geterror()

  NJB_Error_Geterror()

  NJB_Error_Dump()

Examples:
  dumptime.c, files.c, gettr.c, playlists.c, and tracks.c.

void NJB_Error_Reset_Geterror | ( | njb_t * | njb | ) |

This function resets the internal error stack, so that old errors do not remain on following calls to retrieve the error.

Retrieve the errors if the function `NJB_Error_Pending()` indicate that there are errors pending. Typical usage:

     njb_t *njb;
     char *errstr;

     if (NJB_Error_Pending(njb) {
        NJB_Error_Reset_Geterror(njb);
        while ( (errstr = NJB_Error_Geterror(njb)) != NULL )  {
              printf("%s\n", errstr);
        }
     }

Parameters:

  | njb | a pointer to the NJB object to use

See also:
  NJB_Error_Pending()

  NJB_Error_Geterror()

void NJB_Set_Debug | ( | int | debug_flags | ) |

Set the debug print mode for libnjb. The debug flag is created by OR:ing up the different possible flags.

See also:
  Debug flags

Parameters:

  | debug_flags | the debug flags to use

Examples:
  cursesplay.c, delfile.c, deltr.c, dumpeax.c, dumptime.c, files.c, fwupgrade.c, getfile.c, getowner.c, gettr.c, getusage.c, handshake.c, pl.c, play.c, playlists.c, sendfile.c, sendtr.c, setowner.c, setpbm.c, settime.c, tagtr.c, and tracks.c.

void NJB_Set_Unicode | ( | int | unicode_flag | ) |

Defines the encoding used by libnjb. By default, ISO 8859-1 (or rather Windows Codepage 1252) will be used. However, all modern applications should make a call to this function and set the encoding to `NJB_UC_UTF8`.

See also:
  Unicode flags

Parameters:

  | unicode_flag | the encoding to use

Examples:
  files.c, fwupgrade.c, getowner.c, pl.c, playlists.c, sendfile.c, sendtr.c, setowner.c, tagtr.c, and tracks.c.