1

I'm looking for a prebuilt library for linux that will allow me to send play/pause/skip commands to an iDevice via the usb cable (same way iTunes / a docking station does)

I'm building an in-car, raspberry pi unit and controlling the iDevice is the last hurdle - but google is not being very forthcoming with answers :(

To be clear, I want to send commands to the iphone - NOT send commands from it to the RPI.

Also, It should be able to work with spotify or ipod app - same way a docking station would.

any help?

Sk93
  • 3,676
  • 3
  • 37
  • 67

2 Answers2

3

I've never seen one directly for Linux, but a friend used this in a project: arduinapp. It's designed more specifically for use with an Arduino but the code is C++ so it's unlikely to be hard to port to another platform, or reuse the bits that you actually need.

Nicholas Smith
  • 11,642
  • 6
  • 37
  • 55
2

What you want is the "iPod Accessory protocol specification" See MFi Program.

There seems to be a working linux library for this communication at https://github.com/libimobiledevice/libimobiledevice (and http://www.libimobiledevice.org/)

There are also liberated resources for this on the web, and some of them have already been collected in this SO thread

Another tip: A google search for "iPod Accessory protocol specification pdf" will give you at least one version of the specification to download. I'm not sure about the legality of this, so I don't include a direct link here.

Community
  • 1
  • 1
uvesten
  • 3,365
  • 2
  • 27
  • 40
  • thanks. I've already discovered and digested the AAP specification. However, I have no experience with coding on linux based devices, and certainly wouldn't know how to communicate via the USB port... hence asking for a library. – Sk93 Sep 28 '13 at 09:51
  • 1
    I saw that library, and it allows you to access the device's storage and database. What it doesn't allow you to do is communicate via the AAP - and such cannot remotely control the iDevice (play/pause/etc). – Sk93 Sep 28 '13 at 10:04
  • 1
    +1 Good answer. @sk93 Experience or no, accessing a USB port isn't rocket science. Why not dig in and give it a try? – Caleb Sep 28 '13 at 11:44
  • Could you offer some examples on how to do this? I'm not a new programmer - just entirely new to linux :) – Sk93 Sep 28 '13 at 12:01