17#define LIBNJB_VERSION 2.2.7
19#define LIBNJB_COMPILED_FOR_LIBUSB 1
25#define snprintf _snprintf
26#define ssize_t SSIZE_T
35typedef unsigned char u_int8_t;
36typedef __int16 int16_t;
37typedef unsigned __int16 u_int16_t;
38typedef __int32 int32_t;
39typedef unsigned __int32 u_int32_t;
40typedef unsigned __int64 u_int64_t;
49#define u_int8_t uint8_t
50#define u_int16_t uint16_t
51#define u_int32_t uint32_t
52#define u_int64_t uint64_t
60#define NJB_MAX_DEVICES 0xFF
72#define NJB_DEVICE_NJB1 0x00
73#define NJB_DEVICE_NJB2 0x01
74#define NJB_DEVICE_NJB3 0x02
75#define NJB_DEVICE_NJBZEN 0x03
76#define NJB_DEVICE_NJBZEN2 0x04
77#define NJB_DEVICE_NJBZENNX 0x05
78#define NJB_DEVICE_NJBZENXTRA 0x06
79#define NJB_DEVICE_DELLDJ 0x07
80#define NJB_DEVICE_NJBZENTOUCH 0x08
81#define NJB_DEVICE_NJBZENMICRO 0x09
82#define NJB_DEVICE_DELLDJ2 0x0a
83#define NJB_DEVICE_POCKETDJ 0x0b
84#define NJB_DEVICE_ZENSLEEK 0x0c
85#define NJB_DEVICE_CREATIVEZEN 0x0d
86#define NJB_DEVICE_DELLDJ3 0x0e
93#define NJB_TYPE_STRING 0x00
94#define NJB_TYPE_UINT16 0x02
95#define NJB_TYPE_UINT32 0x03
102#define NJB_CODEC_MP3 "MP3"
103#define NJB_CODEC_WMA "WMA"
104#define NJB_CODEC_WAV "WAV"
105#define NJB_CODEC_AA "AA"
112#define FR_SIZE "FILE SIZE"
113#define FR_LENGTH "LENGTH"
114#define FR_CODEC "CODEC"
115#define FR_TITLE "TITLE"
116#define FR_ALBUM "ALBUM"
117#define FR_GENRE "GENRE"
118#define FR_ARTIST "ARTIST"
119#define FR_TRACK "TRACK NUM"
120#define FR_FNAME "FNAME"
121#define FR_YEAR "YEAR"
122#define FR_PROTECTED "PlayOnly"
124#define FR_BITRATE "BITRATE"
125#define FR_COMMENT "COMMENT"
127#define FR_FOLDER "FOLDER"
136#define DD_USBBLKLIM 2
155#define NJB_TURBO_OFF 0
156#define NJB_TURBO_ON 1
160#define OWNER_STRING_LENGTH 128
251#define NJB_PL_UNCHANGED 1
252#define NJB_PL_CHNAME 2
253#define NJB_PL_CHTRACKS 3
269#define NJB_FILEFLAGS_REGULAR_FILE 0x80000000U
341 NJB_EAX_SLIDER_CONTROL,
342 NJB_EAX_FIXED_OPTION_CONTROL
433 const char* buf,
unsigned len,
void *data);
489#define NJB_Songid_Frame_New_Title(a) NJB_Songid_Frame_New_String(FR_TITLE, a)
490#define NJB_Songid_Frame_New_Album(a) NJB_Songid_Frame_New_String(FR_ALBUM, a)
491#define NJB_Songid_Frame_New_Genre(a) NJB_Songid_Frame_New_String(FR_GENRE, a)
492#define NJB_Songid_Frame_New_Artist(a) NJB_Songid_Frame_New_String(FR_ARTIST, a)
493#define NJB_Songid_Frame_New_Length(a) NJB_Songid_Frame_New_Uint16(FR_LENGTH, a)
494#define NJB_Songid_Frame_New_Filesize(a) NJB_Songid_Frame_New_Uint32(FR_SIZE, a)
495#define NJB_Songid_Frame_New_Tracknum(a) NJB_Songid_Frame_New_Uint16(FR_TRACK, a)
496#define NJB_Songid_Frame_New_Year(a) NJB_Songid_Frame_New_Uint16(FR_YEAR, a)
497#define NJB_Songid_Frame_New_Filename(a) NJB_Songid_Frame_New_String(FR_FNAME, a)
498#define NJB_Songid_Frame_New_Protected(a) NJB_Songid_Frame_New_Uint16(FR_PROTECTED, a)
500#define NJB_Songid_Frame_New_Bitrate(a) NJB_Songid_Frame_New_Uint32(FR_BITRATE, a)
501#define NJB_Songid_Frame_New_Comment(a) NJB_Songid_Frame_New_String(FR_COMMENT, a)
503#define NJB_Songid_Frame_New_Folder(a) NJB_Songid_Frame_New_String(FR_FOLDER, a)
530#define NJB_PL_START 1
546#define NJB_Get_File NJB_Get_Track
547#define NJB_Get_File_fd NJB_Get_Track_fd
562 u_int16_t patchindex,
int NJB_Capture(njb_t *njb)
Definition procedure.c:223
const char * NJB_Get_Device_Name(njb_t *njb, int type)
Definition procedure.c:3456
int NJB_Get_Bitmap_Dimensions(njb_t *njb, int *x, int *y, int *bytes)
Definition procedure.c:3043
void NJB_Close(njb_t *njb)
Definition procedure.c:184
void NJB_Ping(njb_t *njb)
Definition procedure.c:3131
int NJB_Discover(njb_t *njbs, int limit, int *n)
Definition procedure.c:108
u_int64_t NJB_Get_NJB1_Libcounter(njb_t *njb)
Definition procedure.c:3203
njb_keyval_t * NJB_Get_Keys(njb_t *njb)
Definition procedure.c:3166
int NJB_Send_Firmware(njb_t *njb, const char *path, NJB_Xfer_Callback *callback, void *data)
Definition procedure.c:3240
int NJB_Release(njb_t *njb)
Definition procedure.c:266
int NJB_Get_Hardware_Revision(njb_t *njb, u_int8_t *major, u_int8_t *minor, u_int8_t *release)
Definition procedure.c:3542
int NJB_Get_Firmware_Revision(njb_t *njb, u_int8_t *major, u_int8_t *minor, u_int8_t *release)
Definition procedure.c:3509
int NJB_Get_Battery_Level(njb_t *njb)
Definition procedure.c:3294
int NJB_Get_Auxpower(njb_t *njb)
Definition procedure.c:3366
int NJB_Get_SDMI_ID(njb_t *njb, u_int8_t *sdmiid)
Definition procedure.c:3411
int NJB_Get_Battery_Charging(njb_t *njb)
Definition procedure.c:3328
int NJB_Open(njb_t *njb)
Definition procedure.c:130
int NJB_Get_Disk_Usage(njb_t *njb, u_int64_t *btotal, u_int64_t *bfree)
Definition procedure.c:657
int NJB_Set_Owner_String(njb_t *njb, const char *name)
Definition procedure.c:746
int NJB_Set_Turbo_Mode(njb_t *njb, u_int8_t mode)
Definition procedure.c:3580
int NJB_Set_Bitmap(njb_t *njb, const unsigned char *bitmap)
Definition procedure.c:3099
char * NJB_Get_Owner_String(njb_t *njb)
Definition procedure.c:697
int NJB_Send_File(njb_t *njb, const char *path, const char *name, const char *folder, NJB_Xfer_Callback *callback, void *data, u_int32_t *fileid)
Definition procedure.c:1723
int NJB_Delete_Datafile(njb_t *njb, u_int32_t fileid)
Definition procedure.c:2453
njb_datafile_t * NJB_Get_Datafile_Tag(njb_t *njb)
Definition procedure.c:846
void NJB_Reset_Get_Datafile_Tag(njb_t *njb)
Definition procedure.c:811
int NJB_Create_Folder(njb_t *njb, const char *name, u_int32_t *folderid)
Definition procedure.c:1872
void NJB_Datafile_Destroy(njb_datafile_t *df)
Definition datafile.c:52
njb_eax_t * NJB_Get_EAX_Type(njb_t *njb)
Definition procedure.c:1952
void NJB_Reset_Get_EAX_Type(njb_t *njb)
Definition procedure.c:1915
void NJB_Destroy_EAX_Type(njb_eax_t *eax)
Definition procedure.c:1978
void NJB_Adjust_EAX(njb_t *njb, u_int16_t eaxid, u_int16_t patchindex, int16_t scalevalue)
Definition procedure.c:2008
const char * NJB_Error_Geterror(njb_t *njb)
Definition njb_error.c:368
void NJB_Set_Unicode(int unicode_flag)
Definition procedure.c:2833
int NJB_Error_Pending(njb_t *njb)
Definition njb_error.c:303
void NJB_Set_Debug(int debug_flags)
Definition procedure.c:2819
void NJB_Error_Reset_Geterror(njb_t *njb)
Definition njb_error.c:342
void NJB_Error_Dump(njb_t *njb, FILE *fp)
Definition njb_error.c:418
int NJB_Queue_Track(njb_t *njb, u_int32_t trackid)
Definition procedure.c:2551
int NJB_Elapsed_Time(njb_t *njb, u_int16_t *elapsed, int *change)
Definition procedure.c:2740
int NJB_Stop_Play(njb_t *njb)
Definition procedure.c:2643
int NJB_Play_Track(njb_t *njb, u_int32_t trackid)
Definition procedure.c:2503
int NJB_Seek_Track(njb_t *njb, u_int32_t position)
Definition procedure.c:2681
int NJB_Resume_Play(njb_t *njb)
Definition procedure.c:2616
int NJB_Pause_Play(njb_t *njb)
Definition procedure.c:2590
void NJB_Playlist_Deltrack(njb_playlist_t *pl, unsigned int pos)
Definition playlist.c:202
void NJB_Playlist_Addtrack(njb_playlist_t *pl, njb_playlist_track_t *track, unsigned int pos)
Definition playlist.c:137
njb_playlist_t * NJB_Playlist_New(void)
Definition playlist.c:27
void NJB_Playlist_Deltrack_TrackID(njb_playlist_t *pl, u_int32_t trackid)
Definition playlist.c:293
void NJB_Reset_Get_Playlist(njb_t *njb)
Definition procedure.c:556
njb_playlist_track_t * NJB_Playlist_Gettrack(njb_playlist_t *pl)
Definition playlist.c:377
int NJB_Playlist_Set_Name(njb_playlist_t *pl, const char *name)
Definition playlist.c:404
void NJB_Playlist_Reset_Gettrack(njb_playlist_t *pl)
Definition playlist.c:354
njb_playlist_track_t * NJB_Playlist_Track_New(u_int32_t trackid)
Definition playlist.c:433
void NJB_Playlist_Track_Destroy(njb_playlist_track_t *track)
Definition playlist.c:459
njb_playlist_t * NJB_Get_Playlist(njb_t *njb)
Definition procedure.c:592
int NJB_Update_Playlist(njb_t *njb, njb_playlist_t *pl)
Definition procedure.c:2206
void NJB_Playlist_Destroy(njb_playlist_t *pl)
Definition playlist.c:323
int NJB_Delete_Playlist(njb_t *njb, u_int32_t plid)
Definition procedure.c:2167
njb_songid_frame_t * NJB_Songid_Frame_New_Uint32(const char *label, u_int32_t value)
Definition songid.c:945
void NJB_Songid_Addframe(njb_songid_t *song, njb_songid_frame_t *frame)
Definition songid.c:651
void NJB_Songid_Destroy(njb_songid_t *song)
Definition songid.c:673
njb_songid_frame_t * NJB_Songid_Frame_New_Uint16(const char *label, u_int16_t value)
Definition songid.c:912
njb_songid_frame_t * NJB_Songid_Getframe(njb_songid_t *song)
Definition songid.c:720
void NJB_Songid_Frame_Destroy(njb_songid_frame_t *frame)
Definition songid.c:976
njb_songid_frame_t * NJB_Songid_Frame_New_String(const char *label, const char *value)
Definition songid.c:840
njb_songid_t * NJB_Get_Track_Tag(njb_t *njb)
Definition procedure.c:503
void NJB_Reset_Get_Track_Tag(njb_t *njb)
Definition procedure.c:460
njb_songid_frame_t * NJB_Songid_Frame_New_Codec(const char *value)
Definition songid.c:871
void NJB_Get_Extended_Tags(njb_t *njb, int extended)
Definition procedure.c:424
int NJB_Replace_Track_Tag(njb_t *njb, u_int32_t trackid, njb_songid_t *songid)
Definition procedure.c:2895
void NJB_Songid_Reset_Getframe(njb_songid_t *song)
Definition songid.c:707
njb_songid_frame_t * NJB_Songid_Findframe(njb_songid_t *song, const char *label)
Definition songid.c:739
njb_songid_t * NJB_Songid_New(void)
Definition songid.c:42
int NJB_Get_Track_fd(njb_t *njb, u_int32_t trackid, u_int32_t size, int fd, NJB_Xfer_Callback *callback, void *data)
Definition procedure.c:980
int NJB_Get_Track(njb_t *njb, u_int32_t trackid, u_int32_t size, const char *path, NJB_Xfer_Callback *callback, void *data)
Definition procedure.c:904
int NJB_Send_Track(njb_t *njb, const char *path, njb_songid_t *songid, NJB_Xfer_Callback *callback, void *data, u_int32_t *trackid)
Definition procedure.c:1592
int NJB_Delete_Track(njb_t *njb, u_int32_t trackid)
Definition procedure.c:2415
int NJB_Set_Time(njb_t *njb, njb_time_t *time)
Definition procedure.c:2113
njb_time_t * NJB_Get_Time(njb_t *njb)
Definition procedure.c:2079
void NJB_Destroy_Time(njb_time_t *time)
Definition procedure.c:2152
struct njb_songid_struct njb_songid_t
Definition libnjb.h:170
struct njb_playlist_track_struct njb_playlist_track_t
Definition libnjb.h:171
struct njb_songid_frame_struct njb_songid_frame_t
Definition libnjb.h:169
struct njb_eax_struct njb_eax_t
Definition libnjb.h:174
struct njb_playlist_struct njb_playlist_t
Definition libnjb.h:172
struct njb_struct njb_t
Definition libnjb.h:168
struct njb_keyval_struct njb_keyval_t
Definition libnjb.h:176
struct njb_datafile_struct njb_datafile_t
Definition libnjb.h:173
struct njb_time_struct njb_time_t
Definition libnjb.h:175
njb_eax_control_t
Definition libnjb.h:339
#define OWNER_STRING_LENGTH
Definition libnjb.h:160
int NJB_Xfer_Callback(u_int64_t sent, u_int64_t total, const char *buf, unsigned len, void *data)
Definition libnjb.h:432
unsigned char owner_string[OWNER_STRING_LENGTH+1]
Definition libnjb.h:162
u_int32_t flags
Definition libnjb.h:290
char * filename
Definition libnjb.h:276
njb_datafile_t * nextdf
Definition libnjb.h:331
u_int64_t filesize
Definition libnjb.h:325
char * folder
Definition libnjb.h:281
u_int32_t dfid
Definition libnjb.h:323
u_int32_t timestamp
Definition libnjb.h:288
int16_t min_value
Definition libnjb.h:379
int16_t current_value
Definition libnjb.h:374
u_int8_t exclusive
Definition libnjb.h:352
njb_eax_t * next
Definition libnjb.h:394
char ** option_names
Definition libnjb.h:388
njb_eax_control_t type
Definition libnjb.h:366
u_int8_t group
Definition libnjb.h:360
char * name
Definition libnjb.h:351
u_int16_t number
Definition libnjb.h:350
int16_t max_value
Definition libnjb.h:384
u_int32_t value2
Definition libnjb.h:420
unsigned char deviceid[16]
Definition libnjb.h:421
char key[5]
Definition libnjb.h:418
njb_keyval_t * next
Definition libnjb.h:422
u_int32_t value1
Definition libnjb.h:419
u_int32_t ntracks
Definition libnjb.h:254
njb_playlist_track_t * cur
Definition libnjb.h:258
njb_playlist_t * nextpl
Definition libnjb.h:259
char * name
Definition libnjb.h:248
njb_playlist_track_t * first
Definition libnjb.h:256
int _state
Definition libnjb.h:249
njb_playlist_track_t * last
Definition libnjb.h:257
u_int32_t plid
Definition libnjb.h:255
u_int32_t trackid
Definition libnjb.h:238
struct njb_playlist_track_struct * next
Definition libnjb.h:240
struct njb_playlist_track_struct * prev
Definition libnjb.h:239
njb_songid_frame_t * next
Definition libnjb.h:215
u_int8_t u_int8_val
Definition libnjb.h:210
u_int64_t u_int64_val
Definition libnjb.h:213
u_int8_t type
Definition libnjb.h:204
char * strval
Definition libnjb.h:209
u_int16_t u_int16_val
Definition libnjb.h:211
u_int32_t u_int32_val
Definition libnjb.h:212
union njb_songid_frame_struct::@325127044205352053022321017076270055171256012206 data
char * label
Definition libnjb.h:203
njb_songid_t * next
Definition libnjb.h:228
njb_songid_frame_t * cur
Definition libnjb.h:227
njb_songid_frame_t * first
Definition libnjb.h:225
njb_songid_frame_t * last
Definition libnjb.h:226
u_int16_t nframes
Definition libnjb.h:224
u_int32_t trid
Definition libnjb.h:223
u_int32_t xfersize
Definition libnjb.h:191
int device_type
Definition libnjb.h:189
struct usb_device * device
Definition libnjb.h:183
usb_dev_handle * dev
Definition libnjb.h:184
u_int8_t usb_interface
Definition libnjb.h:186
u_int8_t usb_bulk_out_ep
Definition libnjb.h:188
void * protocol_state
Definition libnjb.h:192
void * error_stack
Definition libnjb.h:193
int updated
Definition libnjb.h:190
u_int8_t usb_bulk_in_ep
Definition libnjb.h:187
u_int8_t usb_config
Definition libnjb.h:185
int16_t weekday
Definition libnjb.h:407
int16_t hours
Definition libnjb.h:408
int16_t minutes
Definition libnjb.h:409
int16_t seconds
Definition libnjb.h:410
int16_t year
Definition libnjb.h:404
int16_t month
Definition libnjb.h:405
int16_t day
Definition libnjb.h:406