Difference between revisions of "Media Plugin"
(Stubs to expand upon) |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Programmer's Guide]] | [[Category:Programmer's Guide]] | ||
+ | [[Category:LinuxMCE_Plugins]] | ||
− | This Page still needs to be written with appropriate information as of --[[User:Tschak909|Tschak909]] 04:56, 10 February 2011 (CET) | + | This Page still needs to be written with appropriate information as of --[[User:Tschak909|Tschak909]] 04:56, 10 February 2011 (CET) --[[User:Uplink|Uplink]] 00:09, 26 July 2011 (CEST) |
== TODO == | == TODO == | ||
Line 7: | Line 8: | ||
== Description == | == Description == | ||
− | Media Plugin is a plug-in in the [[ | + | Media Plugin is a plug-in in the [[DCERouter]] that is responsible for media management in LinuxMCE. Extension plug-ins can register with it to provide control for media types that Media Plugin doesn't handle itself. |
== Events == | == Events == | ||
Line 14: | Line 15: | ||
=== Playback Completed === | === Playback Completed === | ||
=== Playback Started === | === Playback Started === | ||
+ | ==== Description ==== | ||
+ | When playback of a media stream starts, this event is emitted by the player. When this event is received by the Media Plugin, it updates the playback status of the corresponding stream. If the stream is a DVD, it also updates the section descriptions. | ||
+ | ==== Parameters ==== | ||
+ | {|border="1" cellspacing="0" | ||
+ | !Name!!Description | ||
+ | |- | ||
+ | |Stream ID||The ID of the stream this message refers to. | ||
+ | |- | ||
+ | |MRL||The MRL of the stream. Not used. | ||
+ | |- | ||
+ | |SectionDescription||If the stream is a DVD, this parameter should contain the description for the DVD sections. | ||
+ | Each section description is given on a separate line ended with LF (\n).<br/> | ||
+ | The format of each line is as follows:<br/> | ||
+ | <i>Description</i> <u>tab</u> <i>ChapterNumber</i> <u>tab</u> <i>TitleNumber</i> | ||
+ | |} | ||
+ | |||
=== Follow Me Media === | === Follow Me Media === | ||
=== Device OnOff === | === Device OnOff === | ||
=== AV Input Changed === | === AV Input Changed === | ||
=== Media Description Changed === | === Media Description Changed === | ||
+ | ==== Description ==== | ||
+ | This event specified new details for an existing stream. | ||
+ | ==== Parameters ==== | ||
+ | {|border="1" cellspacing="0" | ||
+ | !Name!!Description | ||
+ | |- | ||
+ | |Text||The description of the stream. This is used by the Orbiter where the stream description is needed. As an example, watching TV on a STB that provides data about the current channel/program over a serial connection would update the description on your remote when the show changes or you change the channel. | ||
+ | |} | ||
+ | |||
=== Volume Changed === | === Volume Changed === | ||
== Commands == | == Commands == | ||
Line 69: | Line 95: | ||
==== Live AV Path ==== | ==== Live AV Path ==== | ||
==== Retransmit AV Commands ==== | ==== Retransmit AV Commands ==== | ||
+ | == API == | ||
+ | === StartMedia === | ||
+ | This function has four signatures: | ||
+ | ==== Signature 1 ==== | ||
+ | <u>void</u> Media_Plugin::StartMedia( | ||
+ | <u>int</u> iPK_MediaType, | ||
+ | <u>int</u> iPK_MediaProvider, | ||
+ | <u>unsigned int</u> iPK_Device_Orbiter, | ||
+ | <u>vector<EntertainArea *></u> &vectEntertainArea, | ||
+ | <u>int</u> iPK_Device, | ||
+ | <u>int</u> iPK_DeviceTemplate, | ||
+ | <u>deque<MediaFile *></u> *p_dequeMediaFile, | ||
+ | <u>bool</u> bQueue, | ||
+ | <u>bool</u> bResume, | ||
+ | <u>int</u> iRepeat, | ||
+ | <u>string</u> sStartingPosition, | ||
+ | <u>vector<MediaStream *></u> *p_vectMediaStream = NULL | ||
+ | ) | ||
+ | |||
+ | ==== Signature 2 ==== | ||
+ | <u>MediaStream *</u> Media_Plugin::StartMedia( | ||
+ | <u>MediaHandlerInfo</u> *pMediaHandlerInfo, | ||
+ | <u>int</u> iPK_MediaProvider, | ||
+ | <u>unsigned int</u> PK_Device_Orbiter, | ||
+ | <u>vector<EntertainArea *></u> &vectEntertainArea, | ||
+ | <u>int</u> PK_Device_Source, | ||
+ | <u>deque<MediaFile *></u> *dequeMediaFile, | ||
+ | <u>bool</u> bQueue, | ||
+ | <u>bool</u> bResume, | ||
+ | <u>int</u> iRepeat, | ||
+ | <u>string</u> sStartingPosition, | ||
+ | <u>int</u> iPK_Playlist = 0, | ||
+ | <u>map<int, pair<MediaDevice *,MediaDevice *> ></u> *p_mapEntertainmentArea_OutputZone = NULL | ||
+ | ) | ||
+ | |||
+ | ==== Signature 3 ==== | ||
+ | <u>bool</u> Media_Plugin::StartMedia( | ||
+ | <u>MediaStream</u> *pMediaStream, | ||
+ | <u>map<int, pair<MediaDevice *,MediaDevice *> ></u> *p_mapEntertainmentArea_OutputZone | ||
+ | ) | ||
+ | |||
+ | ==== Signature 4 ==== | ||
+ | <u>bool</u> Media_Plugin::StartMedia( | ||
+ | <u>MediaStream</u> *pMediaStream | ||
+ | ) | ||
+ | |||
+ | === RegisterMediaPlugin === |
Latest revision as of 16:28, 25 August 2014
This Page still needs to be written with appropriate information as of --Tschak909 04:56, 10 February 2011 (CET) --Uplink 00:09, 26 July 2011 (CEST)
Contents
- 1 TODO
- 2 Description
- 3 Events
- 4 Commands
- 4.1 Intercepted
- 4.2 Normal DCE
- 4.2.1 MH Play Media
- 4.2.2 MH Stop Media
- 4.2.3 MH Move Media
- 4.2.4 MH Set Volume
- 4.2.5 Save playlist
- 4.2.6 Load Playlist
- 4.2.7 Remove playlist
- 4.2.8 Move Playlist entry Up
- 4.2.9 Move Playlist entry Down
- 4.2.10 Remove playlist entry
- 4.2.11 Jump Position In Playlist
- 4.2.12 Shuffle
- 4.2.13 Add Media Attribute
- 4.2.14 Set Media Attribute Text
- 4.2.15 Get Attribute
- 4.2.16 Get Attributes For Media
- 4.2.17 Save Bookmark
- 4.2.18 Delete Bookmark
- 4.2.19 Rename Bookmark
- 4.2.20 Rip Disk
- 4.2.21 Get Default Ripping Info
- 4.2.22 Update Ripping Status
- 4.2.23 Abort Task
- 4.2.24 Get Ripping Status
- 4.2.25 Bind to Media Remote
- 4.2.26 Get EntAreas For Device
- 4.2.27 Set Media Private
- 4.2.28 Set Media Position
- 4.2.29 Set Auto Resume Options
- 4.2.30 Media Identified
- 4.2.31 Get ID from Filename
- 4.2.32 Specify Media Provider
- 4.2.33 Specify Capture Card Port
- 4.2.34 Refresh List of Online Devices
- 4.2.35 Check For New Files
- 4.2.36 Delete File
- 4.2.37 Make Thumbnail
- 4.2.38 Live AV Path
- 4.2.39 Retransmit AV Commands
- 5 API
TODO
Provide a technical explanation of the Media Plugin, its purpose, and how to use it to extend and add additional media types to LinuxMCE.
Description
Media Plugin is a plug-in in the DCERouter that is responsible for media management in LinuxMCE. Extension plug-ins can register with it to provide control for media types that Media Plugin doesn't handle itself.
Events
Media Plugin handles the following events:
Media Inserted
Playback Completed
Playback Started
Description
When playback of a media stream starts, this event is emitted by the player. When this event is received by the Media Plugin, it updates the playback status of the corresponding stream. If the stream is a DVD, it also updates the section descriptions.
Parameters
Name | Description |
---|---|
Stream ID | The ID of the stream this message refers to. |
MRL | The MRL of the stream. Not used. |
SectionDescription | If the stream is a DVD, this parameter should contain the description for the DVD sections.
Each section description is given on a separate line ended with LF (\n). Description tab ChapterNumber tab TitleNumber |
Follow Me Media
Device OnOff
AV Input Changed
Media Description Changed
Description
This event specified new details for an existing stream.
Parameters
Name | Description |
---|---|
Text | The description of the stream. This is used by the Orbiter where the stream description is needed. As an example, watching TV on a STB that provides data about the current channel/program over a serial connection would update the description on your remote when the show changes or you change the channel. |
Volume Changed
Commands
Intercepted
Set Volume
Mute
Normal DCE
MH Play Media
MH Stop Media
MH Move Media
MH Set Volume
Save playlist
Load Playlist
Remove playlist
Move Playlist entry Up
Move Playlist entry Down
Remove playlist entry
Jump Position In Playlist
Shuffle
Add Media Attribute
Set Media Attribute Text
Get Attribute
Get Attributes For Media
Save Bookmark
Delete Bookmark
Rename Bookmark
Rip Disk
Get Default Ripping Info
Update Ripping Status
Abort Task
Get Ripping Status
Bind to Media Remote
Get EntAreas For Device
Set Media Private
Set Media Position
Set Auto Resume Options
Media Identified
Get ID from Filename
Specify Media Provider
Specify Capture Card Port
Refresh List of Online Devices
Check For New Files
Delete File
Make Thumbnail
Live AV Path
Retransmit AV Commands
API
StartMedia
This function has four signatures:
Signature 1
void Media_Plugin::StartMedia( int iPK_MediaType, int iPK_MediaProvider, unsigned int iPK_Device_Orbiter, vector<EntertainArea *> &vectEntertainArea, int iPK_Device, int iPK_DeviceTemplate, deque<MediaFile *> *p_dequeMediaFile, bool bQueue, bool bResume, int iRepeat, string sStartingPosition, vector<MediaStream *> *p_vectMediaStream = NULL )
Signature 2
MediaStream * Media_Plugin::StartMedia( MediaHandlerInfo *pMediaHandlerInfo, int iPK_MediaProvider, unsigned int PK_Device_Orbiter, vector<EntertainArea *> &vectEntertainArea, int PK_Device_Source, deque<MediaFile *> *dequeMediaFile, bool bQueue, bool bResume, int iRepeat, string sStartingPosition, int iPK_Playlist = 0, map<int, pair<MediaDevice *,MediaDevice *> > *p_mapEntertainmentArea_OutputZone = NULL )
Signature 3
bool Media_Plugin::StartMedia( MediaStream *pMediaStream, map<int, pair<MediaDevice *,MediaDevice *> > *p_mapEntertainmentArea_OutputZone )
Signature 4
bool Media_Plugin::StartMedia( MediaStream *pMediaStream )