Migrate iPod To New APIs

Contents

IPOD API MIGRATION DOCUMENTATION

Introduction

The iPod extension for 0.5 is based on the old devicesobsolete. This document covers the migration of the iPod extension to the new devices API.

Purpose of This Document

This document covers the plan for the iPod migration. Since there are no end-user visible components this plan will consist entirely of engineering tasks.

Goals

By user

  • [Business] The company is prioritizing implementation of this feature to support one device api codebase, to stress test the device api and to reduce the amount of time we continue to invest in the existing ipod addon.
  • [User] This will appeal to ipod owners looking for an alternative to itunes (and existing Songbird users who used the ipod addon and found it to be buggy.)
  • [Developer] Device developers will appreciate a mature device api that we have built more than one integration on top of.

Tasks

Key: Task name (cost) [initial-assignee]

  • Create a new iPod extension directory and skeleton addon (0) [erik] 8182
  • Develop a minimal Marshall and Controller:
    • Windows (2) [erik] 8184
    • Linux (1) [ian] 8185
    • Mac (1) [ian] 8186
  • Port chrome to the new device API:
    • Music management (1) [ian] 8187
    • Device tools (1) [ian] 8188
    • Wait for completion (1) [ian] 8189
  • Stub device (1) [erik] 8191
  • Service pane node (1) [erik] 8192
  • Mounting - create library and make playlists (1) [erik] 8193
  • Hook into device requests - add/remove items/playlists (3) 8194
  • Device status (1) 8195
  • Properties - prefs / device name / capacity (2) 8196
  • Finish Marshall and Controller (1) 8197
  • Change dialogs to use the prompt service and wait for a window to come up (2) 8198
  • Sync from the device - play counts / on the go playlists (1) 8199
  • Switch to the new device space API (3) 8200
  • Sync library (3) 8200
  • Sync playlists (2) 8205

Known Risks

There's a risk that the MTP Sync support won't be complete in time to integrate it into the iPod. In that case we can just keep the iPod's existing sync support.

If we fail to be complete or stable by the time we're ready to ship 0.6 then we could ship the existing iPod extension (the one using devicesobsolete) and continue work on the new iPod extension in parallel. This is unlikely.

Interdependencies

This project depends on MTP Sync.

Future

  • Model-specific icons
  • Capacity display by media type
  • On-the-go playlist support included in v2.1.5
  • Bidirectional media item transfer
  • Reset to factory settings included in v2.1.5
  • Reset warning messages included in v2.1.5
  • Firmware update support
  • Auto-launch Songbird when the device is detected
  • Transcoding media items and metadata
  • Migrating reused UI code and assets to core
  • Album art

Notes

Tag page
Viewing 1 of 1 comments: view all
I'm using Mac OS Panther, a Mac Book Pro (the one that got out now) and a iPod nano also the last generation I think it's 5th.
songbird 0.7 can't see my iPod.

I can test your code if you want and send you feed back. I'm also a computer science undergrad so if you need help coding just whistle.
Posted 21:25, 24 Nov 2008
Viewing 1 of 1 comments: view all
You must login to post a comment.