#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include "libnjb.h"
#include "protocol.h"
#include "protocol3.h"
#include "unicode.h"
#include "byteorder.h"
#include "njb_error.h"
#include "usb_io.h"
#include "ioutil.h"
#include "defs.h"
#include "base.h"
#include "eax.h"
#include "datafile.h"
#include "njbtime.h"
Functions | |
int | njb3_init_state (njb_t *njb) |
int | njb3_capture (njb_t *njb) |
int | njb3_release (njb_t *njb) |
int | njb3_get_codecs (njb_t *njb) |
int | njb3_ping (njb_t *njb, int type) |
int | njb3_power_status (njb_t *njb, int *battery_level, int *charging, int *ac_power) |
int | njb3_readid (njb_t *njb, u_int8_t *sdmiid) |
int | njb3_get_disk_usage (njb_t *njb, u_int64_t *totalbytes, u_int64_t *freebytes) |
int | njb3_get_owner_string (njb_t *njb, char *name) |
int | njb3_set_owner_string (njb_t *njb, const char *name) |
njb_time_t * | njb3_get_time (njb_t *njb) |
int | njb3_set_bitmap (njb_t *njb, u_int16_t x_size, u_int16_t y_size, const unsigned char *bitmap) |
int | njb3_current_track (njb_t *njb, u_int16_t *position) |
int | njb3_elapsed_time (njb_t *njb, u_int16_t *elapsed, int *change) |
int | njb3_queue_track (njb_t *njb, u_int32_t trackid) |
int | njb3_play_track (njb_t *njb, u_int32_t trackid) |
int | njb3_seek_track (njb_t *njb, u_int32_t pos) |
int | njb3_ctrl_playing (njb_t *njb, int cmd) |
int | njb3_set_time (njb_t *njb, njb_time_t *time) |
int | njb3_reset_get_track_tag (njb_t *njb) |
njb_songid_t * | njb3_get_next_track_tag (njb_t *njb) |
int | njb3_reset_get_playlist_tag (njb_t *njb) |
njb_playlist_t * | njb3_get_next_playlist_tag (njb_t *njb) |
int | njb3_reset_get_datafile_tag (njb_t *njb) |
njb_datafile_t * | njb3_get_next_datafile_tag (njb_t *njb) |
njb_keyval_t * | njb3_get_keys (njb_t *njb) |
int | njb3_read_keys (njb_t *njb) |
int | njb3_request_file_chunk (njb_t *njb, u_int32_t fileid, u_int32_t offset) |
int | njb3_get_file_block (njb_t *njb, unsigned char *data, u_int32_t maxsize) |
u_int32_t | njb3_create_file (njb_t *njb, unsigned char *ptag, u_int32_t tagsize, u_int16_t filetype) |
u_int32_t | njb3_send_file_chunk (njb_t *njb, unsigned char *chunk, u_int32_t chunksize, u_int32_t fileid) |
int | njb3_send_file_complete (njb_t *njb, u_int32_t fileid) |
int | njb3_create_folder (njb_t *njb, const char *name, u_int32_t *folderid) |
int | njb3_delete_item (njb_t *njb, u_int32_t itemid) |
int | njb3_update_16bit_frame (njb_t *njb, u_int32_t itemid, u_int16_t frameid, u_int16_t value) |
int | njb3_update_string_frame (njb_t *njb, u_int32_t itemid, u_int16_t frameid, unsigned char *str) |
int | njb3_update_tag (njb_t *njb, u_int32_t itemid, unsigned char *ptag, u_int32_t ptagsize) |
int | njb3_create_playlist (njb_t *njb, char *name, u_int32_t *plid) |
int | njb3_add_multiple_tracks_to_playlist (njb_t *njb, u_int32_t *plid, u_int32_t *trids, u_int16_t ntracks) |
int | njb3_control_eax_processor (njb_t *njb, u_int16_t state) |
int | njb3_adjust_eax (njb_t *njb, u_int16_t eaxid, u_int16_t patchindex, u_int16_t active, u_int16_t scalevalue) |
void | njb3_read_eaxtypes (njb_t *njb) |
njb_eax_t * | njb3_get_nexteax (njb_t *njb) |
int | njb3_announce_firmware (njb_t *njb, u_int32_t size) |
u_int32_t | njb3_send_firmware_chunk (njb_t *njb, u_int32_t chunksize, unsigned char *chunk) |
int | njb3_get_firmware_confirmation (njb_t *njb) |
void | njb3_destroy_state (njb_t *njb) |
Variables | |
int | __sub_depth |
|
This takes an array of 32-bit track ID:s and adds it to a certain playlist.
|
|
This announces a firmware image which will then be sent in several chunks.
|
|
This command turns the EAX DSP processor on or off. You will also have to adjust the currently used EAX effect with njb3_adjust_eax() below. |
|
This function creates a new playlist on the device.
|
|
Cleans up any dangling lists in the njb_t state holder struct, and other stuff related to the state. |
|
Reads the supported audio file types. |
|
This function retrieves a part of the requested chunk. Short reads are allowed, so the caller must make sure that it is called as many times as is needed to retrieve the entire file chunk.
|
|
This simply reads back the device status after a firmware upgrade. |
|
Initializes the basic state of the njb->protocol_state for the PROTOCOL3-devices. |
|
This function reads out the current battery level and charging status from a series 3 device.
|
|
This function requests a chunk from a certain file. The offset may index into the file. The chunk transfer size is 1MB by default (as used by creative) but may actually exceed that. Returns actual chunk size or -1 if failed. |
|
This routine retrieves the list of datafiles, and returns the first item. |
|
This routine retrieves the list of playlists, while also filling in each playlist post with it's respective track ID:s. |
|
This sends a chunk of firmware. Typically the chunks are
|
|
NJB2 only (shall be expanded for all jukeboxes). Set up the black/white bitmap shown on shutdown. The bitmap must be exactly 1088 bytes large, coded as a serial bitmap of 136x64 pixels. The final 4 bits per line are not shown, because the the display of the NJB2 has only 132x64 pixels. A set pixel (1) means dark, an unset means white. To create a compatible bitmap, take a 132x64 PBM file (of course not a ASCII-coded, but a binary "P4") and cut off the header. |
|
This function will update a single 16bit metadata frame associated with a certain item (track, playlist or datafile). Only call this function to modify 16-bit values!
|
|
This function updates a single string of metadata associated with a certain item (track, playlist or datafile). Only call this routine to modify string frames!
|
|
A function to update a block of metadata on the series 3 devices.
|
|
The current subroutine depth for all of libnjb (global) |