[fix] - compilation with visual studio
[deb_shairplay.git] / README.md
CommitLineData
1a1958cf
JVH
1Shairplay
2=========
fb0fa0be
JVH
3Free portable AirPlay server implementation similar to [ShairPort](https://github.com/abrasive/shairport).
4
5Currently only AirPort Express emulation is supported.
1a1958cf
JVH
6
7Disclaimer
8----------
9All the resources in this repository are written using only freely available
10information from the internet. The code and related resources are meant for
d16f10bf
JVH
11educational purposes only. It is the responsibility of the user to make sure
12all local laws are adhered to.
13
14Installation
15------------
16
17```
18./configure
19make
20sudo make install
21```
22
23Notice that libao is required in order to install the shairplay binary,
24otherwise only the library is compiled and installed.
25
26Usage
27-----
28
5d98fafe
JVH
29Check available options with ```shairplay --help```:
30
31```
32Usage: shairplay [OPTION...]
33
34 -a, --apname=AirPort Sets Airport name
35 -p, --password=secret Sets password
36 -o, --server_port=5000 Sets port for RAOP service
37 --ao_driver=driver Sets the ao driver (optional)
38 --ao_devicename=devicename Sets the ao device name (optional)
39 --ao_deviceid=id Sets the ao device id (optional)
40 -h, --help This help
41```
42
43Start the server with ```shairplay```, if you are connected to a Wi-Fi the
44server should show as an AirPort Express on your iOS devices and Mac OS X
45computers in the same network.
1a1958cf 46
2fa77735
JVH
47Related software
48----------------
8095e42a 49
2fa77735
JVH
50* [ShairPort](https://github.com/abrasive/shairport), original AirPort Express emulator
51* [ALAC](http://craz.net/programs/itunes/alac.html), ALAC decoder by David Hammerton
ce17dc8d
JVH
52
53Description
54-----------
55
56Short description about what each file in the main library does:
57
fb0fa0be 58```
57bb5c6c
JVH
59src/lib/base64.* - base64 encoder/decoder
60src/lib/dnssd.* - dnssd helper functions
61src/lib/http_parser.* - HTTP parser from joyent (nginx fork)
62src/lib/http_request.* - Request parser that uses http_parser
63src/lib/http_response.* - Extremely simple HTTP response serializer
64src/lib/httpd.* - Generic HTTP/RTSP server
65src/lib/logger.* - Logging related functions
66src/lib/netutils.* - Mostly socket related code
67src/lib/raop.* - Main RAOP handler, handles all RTSP stuff
68src/lib/raop_rtp.* - Handles the RAOP RTP related stuff (UDP/TCP)
69src/lib/raop_buffer.* - Parses and buffers RAOP packets, resend logic here
70src/lib/rsakey.* - Decrypts and parses the RSA key to bigints
71src/lib/rsapem.* - Converts the RSA PEM key to DER encoded bytes
72src/lib/sdp.* - Extremely simple RAOP specific SDP parser
73src/lib/utils.* - Utils for reading a file and handling strings
fb0fa0be 74```
ce17dc8d
JVH
75
76Short description about what each file in the Qt application does:
77
fb0fa0be 78```
ce17dc8d
JVH
79AirTV-Qt/main.cpp - Initializes the application
80AirTV-Qt/mainapplication.cpp - Creates the tray icon and starts RAOP
81AirTV-Qt/raopservice.cpp - Handles all communication with the library
82AirTV-Qt/raopcallbackhandler.cpp - Converts C callbacks to Qt callbacks
83AirTV-Qt/audiooutput.cpp - Takes care of the actual audio output
fb0fa0be 84```
ce17dc8d 85