MP-II Developers System Documentation
Introduction
This is a sort of index page for architectural documents and coding HOWTOs for the MediaPortal-II development. It contains architectural overview pictures, interface descriptions, and some descriptions of important code parts such as the plugin system. If you are a MP-II developer, please feel free to improve this page and add additional developer documentation.
The MediaPortal2 Development page gives a more general overview of information about the MediaPortal II development.
Architectural overview
This section contains architectural documents giving an overview of the complete MediaPortal II system.
Organization of the MP-II directories
Executable applications
- Describes all executables built from the MP-II sources and used to support the development.
MP-II executable applications
- Those executables are built by the MP-II build process. They make up the MP-II application which gets installed.
MediaPortal.exe (this is the main application of the MediaPortal-II client)
- ...
Development support applications
?BuildReport (Creates HTML reports for an MP-II build)
?StringManager (Manages all localization strings used in MP-II)
- ...
Module description
Core services/modules
Those services are present in the MediaPortal-II core part:
TaskScheduler (to be added)
Threading (to be added)
FileEventNotifier (to be added)
Core services are exposed through the ?ServiceScope by their core interface.
Media management modules
- The media management subsystem contains the following modules:
(to be added)
UI services/modules
- Services and modules which are additionally present in the MP-II client:
UserManagement (to be added)
Writing plugins
Describes the plugin interface and the way how to write plugins (to be added)
MP-II skinning
The Skinning wiki page describes how to create MediaPortal-II skins
The SkinEngine page gives some technical background
The MP-II UI concept page describes the new UI concept
Important application parts and their usage
- This section will focus on some very important application parts and give helpful information for understanding and using them.
Logging
to be continued
ServiceScope - getting instances of application services
The ServiceScope class is responsible for holding all application-wide accessible service instances. A service in this context is a piece of code which fulfills a specific function, defined by an interface. A service can be responsible for logging (interface ILogger), messaging (IMessageBroker) or other application tasks. The ServiceScope class supplies methods to get, set and remove a service for a special interface.
Another important feature of this class is that a new instance of ServiceScope can be stacked upon the current one. When a new ServiceScope instance is created, this one becomes the current service scope, and it inherits all services registered at the former service scope, except those services are registered at the new ServiceScope instance.
So it is possible to temporarily blend in other service instances for future calls to ServiceScope<...>.Get().
For more information, see the docs for class MediaPortal.Core.ServiceScope.
Messaging
to be continued
Localization
to be continued
MediaPortal Wiki 