[[BackLinksMenu]] [[TicketQuery(summary=MEDIA_ENGINE_IMPL_COMMON_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == Sophie2 needs to support various media playback engines. Document the various engines we can use so the other tasks can refer to this information. Also we need to have a way to change the engine easily without changing much code, so build a factory to creating an engine and a module for the media engine factory. == Task requirements == * Document the various media engines we can use in Java, such as the JML * Write a module for media engines * Have extension points so an engine plugin can register itself * Have an api that can return an instance of current media engine class * Have an API for changing the default media engine * Add a debug menu * Add a "media engine" submenu, which is hierarchical and lists all registered media engines. Choosing one will change the current default for new media loaded. == Task result == The task result is documentation and code == Implementation idea == * Try to keep this simple for now; Being able to add/remove/list media engines will likely be sufficient == Related == [wiki:MEDIA_ENGINE_IMPL_MAIN_R0] [wiki:MEDIA_ENGINE_IMPL_ALTERNATIVE_R0] == How to demo == Show the media engine menu, or if that didn't get done, show the code and documentation that shows how to use this module = Design = = Implementation = = Testing = = Comments = common research and library how to change the engine