| ID | Priority | Cost | Title | Details | Testcase ID |
| | P | 0 | Extension for supporting mass storage class devices | An extension is available that provides the same level of support for mass storage class devices as the MTP device extension provides for MTP devices. | |
| | P | 1 | Implement MSC extension skeleton | Implement MSC extension skeleton | |
| | P | 3 | Implement MSC marshall and controller | Implement MSC marshall and controller | |
| | P | 3 | Implement MSC media mounting | Implement MSC media mounting | |
| | P | 2 | Add MSC support for copying media to device | Add MSC support for copying media to device | |
| | P | 1 | Add MSC support for deleting media from device | Add MSC support for deleting media from device | |
| | P | 3 | Add MSC support for device properties | Add MSC support for device properties | |
| | P | 1 | Add MSC eject support | Add MSC eject support | |
| | P | 1 | Add MSC service pane node | Add MSC service pane node |
See original spec.
| ID | Priority | Cost | Title | Details | Testcase ID |
| | P | 2 | Device appears in service pane when mounted | When a device is detected then it should appear as a node in the service pane. Its location should be the next sibling of the Downloads node. If a second device is connected then that device should appear as the next sibling of the first device node. The device node should be collapsed by default. The node should not be clickable till the device has mounted. If the connected device has more than one volume then select the primary volume and treat it as the device. The icon for the node should be specific to the device model and sized at 16x16 pixels. As a fall back, take the full size image and shrink it down. The fall back to the full size icon should be the generic device icon that ships with the application. The device can provide 2 icons. A first file will be called DevIicon.FIL (case may vary) and will contain a sequence of images of the device (ranging from 16x16 up to 128x128), PNG format, cfr WMP spec (http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx). The appropriate one should be used (16x16). The second file will be called DevLogo.FIL (case may vary), this is the corporate specific logo (PNG), cfr WMP spec http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx. Note: The device Library node should be the only child node to the device node. Playlists can not be added as child nodes because MSC devices lack the APIs to support playlists. [Would like also to have a folder view of the device's library, possibly having it a second node under the device: 'Folders'] | 3052 |
| | P | 1 | Contextual menu for the device node | Right clicking on the device node should display a contextual menu with the following menu items:
| 3053 3057 3058 3059 3060 |
| P | 0 | Clicking on the device node displays the device summary page | Clicking on the device node should update the content pane with the device summary page. The summary page should have the Music tab pane displayed. | 3054 | |
| | P | 1 | Contextual menu for the device Library node | There should be no contextual menu attached to the device Library node - right clicking on the node should do nothing. | 3055 |
| P | 0 | Clicking on the device Library node displays all media on the device | Clicking on the device Library node should update the content pane with the a view of the Library using the 3 pane filter view by default. Any change to the media page should be saved for each device. | 3056 | |
| | P | 2 | Media transfer to device through drag & drop | The user should be able to drag & drop media items to the device node or the device Library node to trigger a transfer. The device node and device Library node should act as drop targets only if the device is set to manual transfer mode, even if the device is busy. If the device is in sync mode then the nodes should not be drop targets. | |
| | P | ? | Drag and drop files from the OS | Dragging and dropping files from the OS to the device node or device Library node should add any compatible files to the device without adding them to the main Library. If the device is in sync mode then this behaviour should be disabled. | |
| P | 0 | Updating the device node label updates the device name | The text display label for the device node should be editable like any other node in the service pane. Changing the text should also update the device's name in the file system. | ||
| P | 0 | Update device node icon when the device is busy | When the device is busy - e.g.: syncing, updating firmware, mounting - the device node icon should be updated to communicate the state. |
See original spec.
| ID | Priority | Cost | Title | Details | Testcase ID |
| | P | 1 | Display high-level device metadata | Display the user-defined device name, manufacturer, model, capacity, and model-specific device icon. | |
| | P | 1 | Display disk usage data | Detect how much of the disk is used to store music files, how much is used for other files, and how much free space there is and display the information in a stack graph. | |
| P | 0 | Allow user to manually trigger a sync | The user should be able to invoke a sync manually using a button in the summary pane. | ||
| | P | 2 | Display file transfer progress | Device status should be displayed when the device is idle, syncing, transfering songs, or removing songs. | |
| | P | 1 | Display device access information | If the device is in read-only mode then display a visual cue that communicates the fact. An icon that is overlayed above the device icon would work. | |
| P | 0 | Provide navigation for sync settings, tools, and device settings | Users are able to switch between viewing music sync settings, tools, and device settings. | ||
| | P | 1 | Contextual menu for device icon, name, or model information | Right clicking on the device icon, the user-defined device name, the model information should display the same contextual menu as the one that is attached to the device node in the service pane. | |
| | P4 | 2 | Display details about the music contained within the device | Clicking on the legend for music or the portion of the stack graph for music should displays a bubble that displays the total time and song count of the music contained within the device. This would be useful for users who are not used to associating music with disk space. |
See original spec.
| ID | Priority | Cost | Title | Details | Testcase ID |
| P | 0 | Allow user to enable/disable/configure sync behavior | The user is able to use the Music tab pane to configure how they would like to manage music on their device. There are 3 settings available:
|
See original spec.
| ID | Priority | Cost | Title | Details | Testcase ID |
| | P | 2 | Allow user to register their device | User is able to register their product from the Tools tab pane. The model-specific product registration page should load in the user's default web browser and the serial number form field should be filled in with the correct value. Once the product is successfully then the product registration block should be hidden. | |
| | P | 1 | Provide access to device-specific support resources | Device owners should be able to access the device-specific support page on the manufacturer's web server. The page should open in the user's default web browser. |
See original spec.
| ID | Priority | Cost | Title | Details | Testcase ID |
| | P | 1 | Automatic or manual transcoding | Users are able to specify how much control they want when a media item requires transcoding during a sync/transfer. The default value is for the system to automatically define what format the media items are encoded to. The manual settings allow the user to set the encoder and the bit rate. The options available for each should be defined by the capabilities of the connected device.
| |
| | P4 | 2 | Limit disk usage for music | Allow the user to limit the amount of disk space used to store music. Set this setting to false by default. | |
| | P4 | 1 | Customize directory structure for Folder View | Devices have a feature called Folder View [How will this be implemented in the UI? Under library node of device?] which allows users to navigate the music on the device using the directory structure on the device. This setting would allow users to customize the directory structure to their liking. This setting is off by default | |
| | P | 0 | Auto-open Songbird when device is detected | When set to true, Songbird should open automatically when the specific device is connected. This settings should be true by default | |
| | P1 | 2 | Implement skeleton Songbird application service | Dependent task for | |
| | P1 | 2 | Add device detection support to Songbird application service | Dependent task for | |
| | P1 | 2 | Add Songbird launching support to the Songbird application service | Dependent task for | |
| | P1 | 2 | Add Songbird application service preference settings | Dependent task for | |
| | P1 | 2 | Add Songbird application service to Songbird installer | Dependent task for | |
| | P | 2 | Check for new firmware automatically | When set to true, the system should check for new firmware when the device is connected. Also, the system should check for new firmware after a timeout defined at build-time. |
| ID | Priority | Cost | Title | Details | Testcase ID |
| P | 0 | Auto-trigger sync | Trigger a sync when the device is connected. Also, trigger a sync when music settings are set to sync and saved in the Music tab pane. | ||
| P | 0 | Allow user to manually trigger sync | The user is able to manually trigger a sync by clicking on the button in the device summary pane. | ||
| | P | 0 | Transcode incompatible media files | If any of the media items that are part of the sync/transfer payload are not compatible with the device then they should be encoded to a format that is compatible with the device. The device should provide its playback capabilities. Transcoding should observe the corresponding settings defined by the user in the Settings tab pane. Progress should be displayed while media items are being transcoded. See Transcoding document //for details. | |
| | P1 | 3 | Transcode media files as needed | dependent task for | |
| | P | 1 | Check for free space | Before transcoding or syncing/transfering media item to the device, check if there is enough free space on the device. If any of the media items need to be transcoded then use a conservative estimate to provide a best guess. If the payload is larger than the free space available then a dialog should be displayed to prompt the user on the next course of action. | |
| | P | 1 | Sync random smart playlist if not enough space during sync | If the device is set up to sync to the whole main Library or to a subset and there is not enough free space on the device then the system should ask the user if they want to transfer a random selection of media items. If they do then the system should create a smart playlist that contains a random set of media items that gets synced to the device. The playlist should be named "Random Songs" | |
| P | 0 | Transfer as much as possible if not enough space during manual transfer | If the user manually transfers media items to the device but there is not enough free space on the device then the system should prompt the user to see what they want to do. The available options are to either cancel the transfer all together or for the system to transfer as much of the items as possible. If the user wants the system to transfer as much as possible then start at the top of the media list that is the source of the transfer and work downwards. | ||
| P | 0 | Copy media items to device Library and files to device | Of the media items that are part of the sync/transfer payload, ones that do not exist on the device should be copied to the device. Progress should be displayed while the copy is happening. | ||
| P | 0 | Keep track of incompatible media items | Media items that could not be synced/transfered to the device should be kept track of so that it can be optionally presented to the user when requested. Keep track of the following errors:
| ||
| P | 0 | Confirm application shutdown during file transfer | If the user tries to quit the application while the device is busy then confirm that it is really something they want to do. Make sure they understand that the end result is unknown. | ||
| | P | 3 | Transfer album art to supported devices | If the device supports displaying album art then the system should copy over album art in an image format that is supported by the device. Information such as the exact image file format, dimensions, and location of where the image needs to be placed should be stored on the device. See Transcoding document for details. [MSC album art will need to be embedded in the files where possible] | |
| P | 0 | Daisy-chain file transfers triggered during file transfers | If the system or the user triggers a sync/transfer/remove while the device is busy with a previous request to sync/transfer/remove then the tasks should be queued up in a smart way that maximized the time it takes to complete the combined request. | ||
| | P | 0 | Detect changes via the file system | If the user transfers files to the device through the file system then Songbird should add it to the device Library automatically. The check should happen on device connect and then real-time thereafter. | |
| bug 16379 | P1 | 3 | Add support for multiple watch folders. | dependent task for | |
| | P1 | 2 | Add watch folder support to the MSC device | dependent task for | |
| | P | 2 | Organize media files in meaningful directories on the device | Files that are copied over to the device should be organized within directories instead of all files being in a single flat directory. The default settings should be Music > Artist > Album > file. Users are able to configure the directories, if they like. |
See original spec.
| ID | Priority | Cost | Title | Details | Testcase ID |
| P | 0 | Same behavior as main Library | Interacting with media items in the device Library should be no different than when interacting with the main Library.
| ||
| | P | 0 | Media items can be transferred to the main Library | Media items in the device Library can be transfered to the main Library or any of its playlists. There are 2 ways that media can be transferred off of the device:
| |
| | P1 | 3 | Add support to the device base for copying media from the device library to the main library. | dependent task for | |
| | P1 | 1 | Add support to the MSC device for copying media from the device library to the main library. | dependent task for | |
| | P1 | 1 | Add device library context menu item to copy device media to main library. | dependent task for | |
| P | 0 | Drag and drop files from the OS | Dragging and dropping files from the OS to the device Library should add any compatible files to the device without adding them to the main Library. If the device is in sync mode then this behavior should be disabled. | ||
| | P | 1 | Contextual menu for media items | Right clicking on media items should display a contextual menu with the following menu items:
|
See original spec.
| ID | Priority | Cost | Title | Details | Testcase ID |
| P | 0 | Contextual menu item for transfering media items to device | Users should be able to send one or more tracks to a connected device using the contextual menu attached to media items. Media items can not be transfered to devices that are set to sync mode. |
See original spec.
| ID | Priority | Cost | Title | Details | Testcase ID |
| | P | 1 | Detailed device info | The detailed device dialog should contain the following device information:
| |
| | P | 1 | Switch device access mode | When a device is connected, the system should check if it has read and write access. If the device is in read-only mode then the dialog should be displayed to give the user an option to change it to read/write mode, if the device allows it. If the device does not allow the system to change access permissions then the dialog will be useful as notification only. | |
| P | 0 | Not enough free space during sync | Dialog to be used is in original spec. | ||
| P | 0 | Not enough free space during manual transfer | Dialog to be used is in original spec. | ||
| | P | 1 | Device setup | If a device that has never been connected to a computer is detected by the system then it should display a dialog that asks the user for input that would help onboard the device:
| |
| | P | 1 | Rename device | If renaming the device is invoked from any location other than the service pane node then a prompt dialog should be displayed to collect the device name. The input should be pre-populated with the existing device name. | |
| | P | 1 | Error during sync/transfer/remove | Display a dialog if the system encounters a problem that does not allow it to complete the operation. | |
| | P | 1 | Error dialog with summary and details | If a sync/transfer/remove operation completes but the system encountered errors along the way then the user should be able to ask the system to display what exactly the errors were. | |
| | P | 1 | Remove song from device Library | Prompt the user to confirm that they really want to remove the media item from the device. | |
| | P | 1 | Remove song from main Library | Prompt the user to confirm that they really want to remove the media item from the main Library. They should also know that removing the media item will remove it from any devices that are set to sync with the Library. | |
| | P | 1 | Confirmation for enabling sync | Enabling sync required that songs on the device me replaced with ones in the user's main Library. Display a dialog to confirm that the user understands that some data may be lost before allowing them to sync. |
| ID | Priority | Cost | Title | Details | Testcase ID |

Also I would like to throw in a vote for linux support. Thanks!
I have a question: suppose one has deactivated all kinds of automatic execution when a MSC device is connected to a PC (the only remaining impact will be the MSC device appearing in the list of drives, that's all). This is done for obvious security purpose.
Yet, I should be able to mount this device in Songbird, should'nt I? but I can't do it in the current nighlties, there seem no way to add my device manually to Songbird.
Have I done anything wrong? Or is this feature missing?
Thanks
Olivier