123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- /*
- * Squeezelite - lightweight headless squeezebox emulator
- *
- * (c) Adrian Smith 2012-2015, triode1@btinternet.com
- * Ralph Irving 2015-2017, ralph_irving@hotmail.com
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- // packet formats for slimproto
- #ifndef SUN
- #pragma pack(push, 1)
- #else
- #pragma pack(1)
- #endif
- // from S:N:Slimproto _hello_handler
- struct HELO_packet {
- char opcode[4];
- u32_t length;
- u8_t deviceid;
- u8_t revision;
- u8_t mac[6];
- u8_t uuid[16];
- u16_t wlan_channellist;
- u32_t bytes_received_H, bytes_received_L;
- char lang[2];
- // u8_t capabilities[];
- };
- // S:N:Slimproto _stat_handler
- struct STAT_packet {
- char opcode[4];
- u32_t length;
- u32_t event;
- u8_t num_crlf;
- u8_t mas_initialized;
- u8_t mas_mode;
- u32_t stream_buffer_size;
- u32_t stream_buffer_fullness;
- u32_t bytes_received_H;
- u32_t bytes_received_L;
- u16_t signal_strength;
- u32_t jiffies;
- u32_t output_buffer_size;
- u32_t output_buffer_fullness;
- u32_t elapsed_seconds;
- u16_t voltage;
- u32_t elapsed_milliseconds;
- u32_t server_timestamp;
- u16_t error_code;
- };
- // S:N:Slimproto _disco_handler
- struct DSCO_packet {
- char opcode[4];
- u32_t length;
- u8_t reason;
- };
- // S:N:Slimproto _http_response_handler
- struct RESP_header {
- char opcode[4];
- u32_t length;
- // char header[] - added in sendRESP
- };
- // S:N:Slimproto _http_metadata_handler
- struct META_header {
- char opcode[4];
- u32_t length;
- // char metadata[]
- };
- // S:N:Slimproto _http_setting_handler
- struct SETD_header {
- char opcode[4];
- u32_t length;
- u8_t id;
- // data
- };
- #if IR
- struct IR_packet {
- char opcode[4];
- u32_t length;
- u32_t jiffies;
- u8_t format; // ignored by server
- u8_t bits; // ignored by server
- u32_t ir_code;
- };
- #endif
- // from S:P:Squeezebox stream_s
- struct strm_packet {
- char opcode[4];
- char command;
- u8_t autostart;
- u8_t format;
- u8_t pcm_sample_size;
- u8_t pcm_sample_rate;
- u8_t pcm_channels;
- u8_t pcm_endianness;
- u8_t threshold;
- u8_t spdif_enable;
- u8_t transition_period;
- u8_t transition_type;
- u8_t flags;
- u8_t output_threshold;
- u8_t slaves;
- u32_t replay_gain;
- u16_t server_port;
- u32_t server_ip;
- //char request_string[];
- };
- // S:P:Squeezebox2
- struct aude_packet {
- char opcode[4];
- u8_t enable_spdif;
- u8_t enable_dac;
- };
- // S:P:Squeezebox2
- struct audg_packet {
- char opcode[4];
- u32_t old_gainL; // unused
- u32_t old_gainR; // unused
- u8_t adjust;
- u8_t preamp; // unused
- u32_t gainL;
- u32_t gainR;
- // squence ids - unused
- };
- // S:P:Squeezebox2
- struct cont_packet {
- char opcode[4];
- u32_t metaint;
- u8_t loop;
- // guids we don't use
- };
- // S:C:Commands
- struct serv_packet {
- char opcode[4];
- u32_t server_ip;
- // possible sync group
- };
- // S:P:Squeezebox2
- struct setd_packet {
- char opcode[4];
- u8_t id;
- char data[];
- };
- // codec open - this is an extension to slimproto to allow the server to read the header and then return decode params
- struct codc_packet {
- char opcode[4];
- u8_t format;
- u8_t pcm_sample_size;
- u8_t pcm_sample_rate;
- u8_t pcm_channels;
- u8_t pcm_endianness;
- };
- // initially Boom
- struct audo_packet {
- char opcode[4];
- u8_t config;
- };
- #ifndef SUN
- #pragma pack(pop)
- #else
- #pragma pack()
- #endif
|