Skip to content

Linux based player for ickStream Music Platform written in C using ALSA for playback, the intention is to be able to use this as a base for playback module on embedded devices

License

ickStream/ickstream-daemon-player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a native (C based) audio player framework that implements the ickStream 
protocol and should be integratable on Linux based hardware.

Note that this is work in progress in alpha state, i.e. the code and even 
the underlying concept and architecture might and will change at any time!

Before configuring make sure that the following libs are installed in 
development version (i.e. including headers):
- libickstreamp2p (requires libwebsockets)
- libjansson
- libcurl
- libuuid
- libasound  (optional, recommended)
- libpulse   (optional)
- libmpg123  (optional, recommended)
- libsndfile (optional, recommended)
- libFLAC    (optional)
- libcurses  (optional, for hmi=NCurses)

Configure the package by running configure, e.g.
./configure
or
./configure debug hmi=Generic

Solve any missing dependencies by installing the libs mentioned above and 
rerun configure. 
Use "./configure help" for further options.

For the first run, select an audio device (run "ickpd -al" to list all devices).
Optionally select a network interface (if different from eth0):

cd daemon
./ickpd -ad "alsa:front:CARD=Device,DEV=0"
or
./ickpd -ad "alsa:front:CARD=Device,DEV=0" -i wlan0

Note: by default the device settings are persisted as part of the player state 
in the file ".ickpd_persist" and it is only necessary to set them once.
You can reset the player state by deleting that file.

Use "./ickpd -?" to find out how to set other parameters.

Send SIGINT (Ctrl-c) to gracefully shut down the player.

*************************************************************************
Extensions to the ickStream specifications:

Player protocol method "setPlayerConfiguration":
  parameter "accessToken" is optional
  resets and requests the list of cloud services
  (parameter "playerName" is still required)
  
Player protocol method "shuffleTracks" accepts optional parameters:
  playlistStartPos [i] - start of queue range to shuffle
  playlistEndPos [i]   - end of queue range to shuffle

Player protocol method "setRepeatMode" accepts additional mode:
  "REPEAT_ITEM" - repeat item under playback queue cursor
  

*************************************************************************
 * Copyright (c) 2013, //MAF, ickStream GmbH
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without 
 * modification, are permitted provided that the following conditions are met:
 *
 *   * Redistributions of source code must retain the above copyright 
 *     notice, this list of conditions and the following disclaimer.
 *   * Redistributions in binary form must reproduce the above copyright 
 *     notice, this list of conditions and the following disclaimer in the 
 *     documentation and/or other materials provided with the distribution.
 *   * Neither the name of ickStream nor the names of its contributors 
 *     may be used to endorse or promote products derived from this software 
 *     without specific prior written permission.
 *
 * this SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
 * WARRANTIES OF MERCHANTABILITY AND FITNESS for A PARTICULAR PURPOSE ARE DISCLAIMED. 
 * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE for ANY DIRECT, 
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF this SOFTWARE, 
 * EVEN if ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\************************************************************************/

About

Linux based player for ickStream Music Platform written in C using ALSA for playback, the intention is to be able to use this as a base for playback module on embedded devices

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published