Mass Storage Class

    Goals

    1. The goal of Mass Storage Class (MSC) support is to provide device owners a solution to transfer music to their MSC only device. Simplicity should be a major focus as device owners are commonly consumer-grade users who do not live in Silicon Valley.
    2. Device owners should also be able to manage their device and access useful information relating to their device.


    Important use cases

    1. Music and podcasts (Kanye release) are automatically synced to the device when the device owner connects it to their computer. Any issues that might come up are dealt with the least involvement from the user as possible to keep the process simple and quick.
    2. The device owner is able to manually transfer music and podcasts of their choice to the device.
    3. Any media that is stored in a file format that is not compatible with the connected device will be transcoded to one that is supported by the device before transfer. The system suggests the best fit settings for transcoding but knowledgeable device owners can customize the settings to their liking. Any songs with DRM should be skipped and the user should be notified to the fact. See Transcoding document for details around transcoding.
    4. The user connects the device to the computer's USB port to charge its batteries. The device displays the state of the batteries on its own display screen.
    5. A check for new firmware is performed automatically when the device is connected to the system. The device owner is able to manually trigger the check if they like. If new firmware is found then the system walks the user through the install process which is specific to their device model. See Device firmware document for details.
    6. The system prompts the device owner to register the device which would allow for better support from the manufacturer in the future.
    7. The device owner encounters a problem with Songbird or with the device. They are able to access relevant support resources that are specific to their software version and device model. Contact information that is specific to their geographic location should be available as well.

    Behavior

    Mass Storage Class Device Extension

    Stories

    ID Priority Cost Title Details Testcase ID
    bug 16415 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.  
    bug 16416 P 1 Implement MSC extension skeleton Implement MSC extension skeleton  
    bug 16417 P 3 Implement MSC marshall and controller Implement MSC marshall and controller  
    bug 16418 P 3 Implement MSC media mounting Implement MSC media mounting  
    bug 16419 P 2 Add MSC support for copying media to device Add MSC support for copying media to device  
    bug 16420 P 1 Add MSC support for deleting media from device Add MSC support for deleting media from device  
    bug 16421 P 3 Add MSC support for device properties Add MSC support for device properties  
    bug 16422 P 1 Add MSC eject support Add MSC eject support  
    bug 16423 P 1 Add MSC service pane node Add MSC service pane node  

    Service Pane

    Wireframes

    See original spec.

    Stories 4(6)

    ID Priority Cost Title Details Testcase ID
    bug 16233 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 
    bug 16234 P  1 Contextual menu for the device node Right clicking on the device node should display a contextual menu with the following menu items:
    • $(manufacturer) $(model) ($(capacity)) - this menu item is disabled and is provided for context only
    • Get Info - opens the details dialog for the device
    • Cancel $(current action) - enabled when the device is busy. The text label should be updated to match the action that is being performed.
    • Rename - invoke quick-edit mode for the node
    • Format - Invoke format of the NAND flash memory (clear content).
    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 
    bug 16235 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 
    bug 16236 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.  
    bug 16464 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.  

    Summary Pane

    Wireframes

    See original spec.

    Stories 6(8)

    ID Priority Cost Title Details Testcase ID
    bug 16237 P  1 Display high-level device metadata Display the user-defined device name, manufacturer, model, capacity, and model-specific device icon.  
    bug 16238 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.  
    bug 16240 P  2 Display file transfer progress Device status should be displayed when the device is idle, syncing, transfering songs, or removing songs.  
    bug 16241 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.  
    bug 16242 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.  
    bug 16243 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.
     
     

    Music Page

    Wireframes

    See original spec.

    Stories 1(0)

    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:
    • Sync every media item in the main Library
    • Sync just the media items that are contained within user-selected playlists
    • Turn sync off - the user will manually transfer and remove media items (this is the default setting)
     

    Tools Page

    Wireframes

    See original spec.

    Stories 2(3)

    ID Priority Cost Title Details Testcase ID
    bug 16244 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.  
    bug 16246 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.  

    Settings Page

    Wireframes

    See original spec.

    Stories 10(16)

    ID Priority Cost Title Details Testcase ID
    bug 16247 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.
    • Encoder (dummy date - the real list will reflect the playback capabilities of the connected device)
      • MP3 (default)
      • WMA
    • Bit rate (dummy data - the real list will be defined based on the encoder selected and the playback capabilities of the connected device)
      • 32 kbps (smallest file size)
      • 64 kbps
      • 96 kbps
      • 128 kbps (recommended)
      • 160 kbps
      • 192 kbps (best audio quality)
     
    bug 16248 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.  
    bug 16249 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  
    bug 16250 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  
    bug 16384 P1 2 Implement skeleton Songbird application service Dependent task for bug 16250  
    bug 16385 P1 2 Add device detection support to Songbird application service Dependent task for bug 16250  
    bug 16386 P1 2 Add Songbird launching support to the Songbird application service Dependent task for bug 16250  
    bug 16387 P1 2 Add Songbird application service preference settings Dependent task for bug 16250  
    bug 16388 P1 2 Add Songbird application service to Songbird installer Dependent task for bug 16250  
    bug 16251 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.  

    Sync & manual transfer

    Stories 10(17)

    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.  
    bug 16252 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.  
    bug 16381 P1 3 Transcode media files as needed dependent task for bug 16252 UI bug is bug 16382 and blocks this one.  
    bug 16253 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.  
    bug 16254 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:
    • Media items with DRM
    • Missing files
    • Access denied
    • What else?
     
      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.  
    bug 16255 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.  
    bug 16256 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 bug 16256  
    bug 16380 P1 2 Add watch folder support to the MSC device dependent task for bug 16256  
    bug 16257 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.  

    Device Library Page

    Wireframes

    See original spec.

    Stories 2(6)

    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.
    • Double-click on media items starts playback
    • Slow-double-clicking on text should invoke quick-edit mode if the metadata is editable
     
    bug 16258 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:
    • Drag & drop media item from device Library to elsewhere
    • Right click on media item and use the attached contextual menu to add it to the main Library
     
    bug 16376 P1 3 Add support to the device base for copying media from the device library to the main library. dependent task for bug 16258  
    bug 16377 P1 1 Add support to the MSC device for copying media from the device library to the main library. dependent task for bug 16258  
    bug 16378 P1 1 Add device library context menu item to copy device media to main library. dependent task for bug 16258  
      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.  
    bug 16259 P  1 Contextual menu for media items Right clicking on media items should display a contextual menu with the following menu items:
    • Edit Metadata - opens the metadata editor dialog for the target media item(s)
    • Show File - opens an OS window with the file corresponding to the media item selected.
    • Add to Library - transfers the media item and file to the main Library.
    • Remove - removes the media item and file from device. Should be disabled if the device is set to sync mode.
     

    Main Library Page

    Wireframes

    See original spec.

    Stories 1(0)

    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.  

    Dialogs

    Wireframes

    See original spec.

    Stories 9(9)

    ID Priority Cost Title Details Testcase ID
    bug 16260 P  1 Detailed device info The detailed device dialog should contain the following device information:
    • User-defined device name
    • Serial number
    • Manufacturer
    • Model
    • Capacity
    • Supported playback formats
    • Firmware version
     
    bug 16261 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.  
    bug 16262 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:
    • Device name - the default value is "$(manufacturer) $(model)"
    • Enable sync - default value is true. This maps to "Sync all songs in my Library"
     
    bug 16263 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.  
    bug 16264 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.  
    bug 16265 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.  
    bug 16266 P  1 Remove song from device Library Prompt the user to confirm that they really want to remove the media item from the device.  
    bug 16267 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.  
    bug 16268 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.  

    Webpage API

    Stories 1(3)

    ID Priority Cost Title Details Testcase ID

    bug 16269
    P4  3 Access to device model, manufacturer, capacity, and playback capabilities Expose device information to websites through Songbird's Webpage API.  

    Design/Production Notes

    The following is the system specs required ( pulled from a device manual )
    • Windows XP (SP2 or above) or Vista
    • Pentium III 800MHz processor or higher
    • 128MB RAM
    • 500MB hard disk space
    • Internet connection (preferable)
    • Microsoft Internet Explorer 6.0 or later
    • CD-ROM
    • USB port

    Engineering Notes

    • What is our preference for how to keep up to date on new device models? manufacturer web service APIs or add-on version updates?
      • Required assets on the device
      • Add-on update
      • Web service

    Known Risks

    • Currently there is *NO* device support exposed through the WebpageAPI. Understanding the usecase will help here. Starting to expose devices through that API is possibly a much larger discussion than 3 points of exposing device information implies. (r5 - 4/17)

    Notes/questions

    • Q: What happens when an unsupported device is connected? Eg: older model or device from a manufacturer that isn't supported.

    Future

    • Support for voice recordings
    • Support for FM radio station management
    • Online music service integration
    • Video, audiobook, podcast support
    • Custom directory management for fine tuning Folder View
    • Mac OS support
    • Linux support
    • Backup and restore
    Tag page
    • No tags
    Viewing 2 of 2 comments: view all
    I just want to state that I am really excited for MSC support and would like to thank you guys for adding this feature in. From reading the above, it sounds like it will have quite amazing functionality.

    Also I would like to throw in a vote for linux support. Thanks!
    Posted 16:10, 23 Jun 2009
    Hello
    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
    Posted 05:58, 7 Jul 2009
    Viewing 2 of 2 comments: view all
    You must login to post a comment.
    Powered by MindTouch Core
    Real Time Web Analytics