#include <stdlib.h>
#include <string.h>
#include "libnjb.h"
#include "base.h"
#include "njb_error.h"
#include "defs.h"
#include "protocol3.h"
#include "byteorder.h"
#include "unicode.h"
#include "songid.h"
#define FR_UNI_ALBUM "UNI_ALBUM" |
Unicode Album metadata for NJB1
Referenced by songid_pack(), and songid_unpack().
#define FR_UNI_ARTIST "UNI_ARTIST" |
Unicode Artist metadata for NJB1
Referenced by songid_pack(), and songid_unpack().
#define FR_UNI_FNAME "UNI_FNAME" |
Unicode Filename metadata for NJB1 (not used)
Referenced by songid_unpack().
#define FR_UNI_GENRE "UNI_GENRE" |
Unicode Genre metadata for NJB1
Referenced by songid_pack(), and songid_unpack().
#define FR_UNI_TITLE "UNI_TITLE" |
Unicode Title metadata for NJB1
Referenced by songid_pack(), and songid_unpack().
#define UNICODE_ON_NJB1 |
We want to use Unicode also on NJB1
unsigned char* songid_pack | ( | njb_songid_t * | song, | |
u_int32_t * | tagsize | |||
) |
This packs (serialize, marshal) a libnjb song ID into the raw byte structure used by the NJB1.
song | the libnjb song ID to pack | |
tagsize | a pointer to an integer that will hold the size of the resulting NJB1 songid structure |
References njb_songid_frame_struct::data, FR_ALBUM, FR_ARTIST, FR_GENRE, FR_TITLE, FR_UNI_ALBUM, FR_UNI_ARTIST, FR_UNI_GENRE, FR_UNI_TITLE, from_16bit_to_njb1_bytes(), from_32bit_to_njb1_bytes(), njb_songid_frame_struct::label, njb_songid_struct::nframes, NJB_Songid_Getframe(), NJB_Songid_Reset_Getframe(), NJB_TYPE_STRING, NJB_TYPE_UINT16, NJB_TYPE_UINT32, NJB_UC_UTF8, strtoucs2(), njb_songid_frame_struct::strval, njb_songid_frame_struct::type, njb_songid_frame_struct::u_int16_val, njb_songid_frame_struct::u_int32_val, ucs2strlen(), and utf8tostr().
Referenced by NJB_Replace_Track_Tag(), and NJB_Send_Track().
unsigned char* songid_pack3 | ( | njb_songid_t * | song, | |
u_int32_t * | tagsize | |||
) |
This packs (serialize, marshal) a libnjb song ID into the raw byte structure used by the series 3 devices.
song | the libnjb song ID to pack | |
tagsize | a pointer to an integer that will hold the size of the resulting series 3 songid structure |
References njb_songid_frame_struct::data, FR_ALBUM, FR_ARTIST, FR_CODEC, FR_FNAME, FR_FOLDER, FR_GENRE, FR_LENGTH, FR_PROTECTED, FR_SIZE, FR_TITLE, FR_TRACK, FR_YEAR, from_16bit_to_njb3_bytes(), from_32bit_to_njb3_bytes(), njb_songid_frame_struct::label, njb_songid_struct::nframes, NJB_CODEC_AA, NJB_CODEC_MP3, NJB_CODEC_WAV, NJB_CODEC_WMA, NJB_Songid_Getframe(), NJB_Songid_Reset_Getframe(), strtoucs2(), njb_songid_frame_struct::strval, njb_songid_frame_struct::u_int16_val, and ucs2strlen().
Referenced by NJB_Replace_Track_Tag(), and NJB_Send_Track().
int songid_sanity_check | ( | njb_t * | njb, | |
njb_songid_t * | songid | |||
) |
This function checks that a tag has all compulsory elements, i.e.: size, codec and track number
songid | the song ID to be checked for sanity |
References njb_songid_frame_struct::data, FR_CODEC, FR_LENGTH, FR_PROTECTED, FR_SIZE, FR_TITLE, FR_TRACK, FR_YEAR, njb_songid_frame_struct::label, NJB_CODEC_MP3, NJB_CODEC_WAV, NJB_CODEC_WMA, NJB_Songid_Addframe(), NJB_Songid_Getframe(), NJB_Songid_Reset_Getframe(), NJB_TYPE_STRING, NJB_TYPE_UINT16, NJB_TYPE_UINT32, njb_songid_frame_struct::strval, njb_songid_frame_struct::type, njb_songid_frame_struct::u_int16_val, and njb_songid_frame_struct::u_int32_val.
Referenced by NJB_Replace_Track_Tag(), and NJB_Send_Track().
njb_songid_t* songid_unpack | ( | void * | data, | |
size_t | nbytes | |||
) |
This takes a raw chunk of memory representing a song ID as used by the NJB1 and convert it into a song ID structure as used by libnjb.
data | the raw bytes from the NJB1 | |
nbytes | the size of the NJB1 byte array |
References FR_ALBUM, FR_ARTIST, FR_FNAME, FR_GENRE, FR_LENGTH, FR_TITLE, FR_TRACK, FR_UNI_ALBUM, FR_UNI_ARTIST, FR_UNI_FNAME, FR_UNI_GENRE, FR_UNI_TITLE, FR_YEAR, njb1_bytes_to_16bit(), njb1_bytes_to_32bit(), NJB_Songid_Addframe(), NJB_Songid_Destroy(), NJB_Songid_Frame_New_String(), NJB_Songid_Frame_New_Uint16(), NJB_Songid_Frame_New_Uint32(), NJB_Songid_New(), NJB_UC_UTF8, strtoutf8(), and ucs2tostr().
int __sub_depth |
The current subroutine depth for all of libnjb (global)
int njb_unicode_flag |
A flag for if unicode is used or not (global)