Extensions XBMC 2015
This project idea is to develop various plug-in for kodi (formerly xbmc).
More information on Project Extensions XBMC Sujet 2015
- Tutors : Nicolas Palix
- Members : Clément Valentin, William Bobo, Jules Legros, Gabin Teulon
Progress of the project
The project started January 26th, 2014.
Week 1 (January 26th - January 30th)
- Project discovery
- Discovery of Kodi (formerly XBMC) and the add-on structure
Sprint 1 (February 02nd - February 14th)
- Installation of a shared library in kodi between computers
- Use of mySQL database/server on the SalleAIR computer
- Synchronization of the movies lecture (can resume a movie on any computer, viewed list updating)
- Discovery of dev tool for the kinect : we chose to use C++ library (native library) instead of python one's, because on windows, it is not userfriendly at all, and in the aim of providing an addon that can be easily installed, it's not the good solution.
- Discovery of the source code of the remote control android application
Sprint 2 (February 23rd - March 10th)
- Development of the kodi add-on
- Development of a kinect program to count the number of people in front of the TV
- Development of the NFC part, and including it in the remote control android application
Sprint 3 (March 10th - March Xth)
- Developing a multi-platform solution for the kinect
- Creating scenarios in order to decide of interaction with the NFC tags and the kinect
Choices for the remote
- Choice of the app
We used the official remote because there was things already done last year
- Follow-me : NFC or Bluetooth
Bluetooth seem perfect for following someone without interaction but there is material differences which change signal's power and made it unreliable. NFC add a user interaction but we are sure that the remote is here and we already known how to deal with NFC on Android
- Tag content
Our tag are very small. We can write around 144 byte. At first, it was not a problem because we just needed un id, but it work with only one remote. When we choose to make it work with all the remote, we needed to write all the data about un host. Where was not enough place and we had to choose most important information.
- Remote integration
We choose to do it with a minimum of change and before each commit, code was cleaned to reflect it so if we choose to push our modification to the original repository, our push will be clean.
- Communication with XBMC/Kodi
We choose not to communicate with XBMC through an addon with our own socket because we found JSON-RPC. JSON-RPC is already implemented in the remote and allow to control XBMC through JSON request.
- Centralisation on remote
The remote have access to everything through JSON-RPC and it avoid to deal with negotiation between add-on.
- XBMC/Kodi on Android
We thought of using Kodi on Android for the "follow me", it consist in moving the playing media from a TV to the smart-phone then to another TV. We choose not to do it because Kodi on Android is a native application and it would take too much time to retro-engineering this.
- Follow me on Kodi Android
- Deal with more user-case
- More options and user choice
- UPNP server for follow me on media not shared on the network
- About the remote
We did not found any documentation about the remote. So you have understand it yourself with your Android skills. The main part which deal with NFC tag is "NFCIntentActivity.java". This is the core of the remote application. It read a tag, add the host if it dosn't exist then do the follow me thing. "FollowMeActivity.java" was also added for writing on NFC and settings.