A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 89 lines 2.5 kB view raw
1/*************************************************************************** 2 * __________ __ ___. 3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___ 4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / 5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 7 * \/ \/ \/ \/ \/ 8 * $Id$ 9 * 10 * Copyright (C) 2006-2007 Dave Chapman 11 * 12 * This program is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU General Public License 14 * as published by the Free Software Foundation; either version 2 15 * of the License, or (at your option) any later version. 16 * 17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 18 * KIND, either express or implied. 19 * 20 ****************************************************************************/ 21 22#ifndef __SANSAIO_H 23#define __SANSAIO_H 24 25#include <stdint.h> 26#include <sys/types.h> 27#if !defined(_MSC_VER) 28#include <unistd.h> /* not available on MSVC */ 29#endif 30 31#if defined(__WIN32__) || defined(_WIN32) 32#include <windows.h> 33#define loff_t int64_t 34#else 35#define HANDLE int 36#define O_BINARY 0 37 38/* Only Linux seems to need lseek64 and loff_t */ 39#if !defined(linux) && !defined (__linux) 40#define loff_t off_t 41#define lseek64 lseek 42#endif 43 44#endif 45 46#ifdef __cplusplus 47extern "C" { 48#endif 49 50struct sansa_partinfo_t { 51 unsigned long start; /* first sector (LBA) */ 52 unsigned long size; /* number of sectors */ 53 int type; 54}; 55 56struct mi4header_t { 57 uint32_t version; 58 uint32_t length; 59 uint32_t crc32; 60 uint32_t enctype; 61 uint32_t mi4size; 62 uint32_t plaintext; 63}; 64 65struct sansa_t { 66 HANDLE dh; 67 unsigned char* sectorbuf; 68 char diskname[4096]; 69 int sector_size; 70 struct sansa_partinfo_t pinfo[4]; 71 int hasoldbootloader; 72 char* targetname; /* "e200" or "c200" */ 73 loff_t start; /* Offset in bytes of firmware partition from start of disk */ 74}; 75 76void sansa_print_error(char* msg); 77int sansa_open(struct sansa_t* sansa, int silent); 78int sansa_reopen_rw(struct sansa_t* sansa); 79int sansa_close(struct sansa_t* sansa); 80int sansa_seek(struct sansa_t* sansa, loff_t pos); 81int sansa_read(struct sansa_t* sansa, unsigned char* buf, int nbytes); 82int sansa_write(struct sansa_t* sansa, int nbytes); 83int sansa_alloc_buffer(struct sansa_t* sansa, int bufsize); 84int sansa_dealloc_buffer(struct sansa_t* sansa); 85 86#ifdef __cplusplus 87} 88#endif 89#endif