http://wiki.linuxmce.org/index.php?title=Creating_a_Media_Plug-in&feed=atom&action=history
Creating a Media Plug-in - Revision history
2024-03-29T14:49:31Z
Revision history for this page on the wiki
MediaWiki 1.24.1
http://wiki.linuxmce.org/index.php?title=Creating_a_Media_Plug-in&diff=36032&oldid=prev
Phenigma at 00:52, 28 September 2015
2015-09-28T00:52:10Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 00:52, 28 September 2015</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[[Category: Development]]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[[Category: Development]]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">{{Needs Peer Review}}</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>To create the Media Plug-In, you must  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>To create the Media Plug-In, you must  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
</table>
Phenigma
http://wiki.linuxmce.org/index.php?title=Creating_a_Media_Plug-in&diff=21072&oldid=prev
Ray N: fixing templates and category, didn't touch page contents
2009-08-27T13:55:26Z
<p>fixing templates and category, didn't touch page contents</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 13:55, 27 August 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Category: Development]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{{Needs Peer Review}}</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>To create the Media Plug-In, you must  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>To create the Media Plug-In, you must  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 124:</td>
<td colspan="2" class="diff-lineno">Line 126:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*continue*</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*continue*</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">{{Needs Programmer Review}}</del></div></td><td colspan="2"> </td></tr>
</table>
Ray N
http://wiki.linuxmce.org/index.php?title=Creating_a_Media_Plug-in&diff=21071&oldid=prev
Ray N: Reverted edit of Ray N, changed back to last version by Tschak909
2009-08-27T13:54:45Z
<p>Reverted edit of Ray N, changed back to last version by Tschak909</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 13:54, 27 August 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">{{Needs Peer Review}}</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>To create the Media Plug-In, you must  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>To create the Media Plug-In, you must  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 125:</td>
<td colspan="2" class="diff-lineno">Line 124:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*continue*</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*continue*</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{{Needs Programmer Review}}</ins></div></td></tr>
</table>
Ray N
http://wiki.linuxmce.org/index.php?title=Creating_a_Media_Plug-in&diff=21069&oldid=prev
Ray N: fixing templates, didn't touch page contents
2009-08-27T13:48:21Z
<p>fixing templates, didn't touch page contents</p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">←Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 13:48, 27 August 2009</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">{{Needs Peer Review}}</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>To create the Media Plug-In, you must  </div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>To create the Media Plug-In, you must  </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 124:</td>
<td colspan="2" class="diff-lineno">Line 125:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*continue*</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>*continue*</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del style="font-weight: bold; text-decoration: none;">{{Needs Programmer Review}}</del></div></td><td colspan="2"> </td></tr>
</table>
Ray N
http://wiki.linuxmce.org/index.php?title=Creating_a_Media_Plug-in&diff=8735&oldid=prev
Tschak909: Initial Content.
2008-02-03T19:57:44Z
<p>Initial Content.</p>
<p><b>New page</b></p><div>To create the Media Plug-In, you must <br />
<br />
* Create the DCE Skeleton<br />
* Implement the methods. at very least, the base plugin subclass, and a media stream subclass.<br />
<br />
== Implementing DCE Skeleton ==<br />
<br />
First, you must create the appropriate information in the database so that the [[DCEGen]] tool can create a C++ skeleton for you. The new templates can be created using the [[Device Templates]] menu.<br />
<br />
=== The Necessary DCE Parameters ===<br />
<br />
* Create a DCE device implemented in C++, make sure to use the category "Media Router Plugins < Plugins for the Router"<br />
* Plug-ins traditionally have the name of the paired media player and the name "Plug-In" i.e. "[[MAME Plug-In]]"<br />
* Use the following form as a template:<br />
** This Device is Controlled by Category: DCERouter<br />
** Is PlugIn should be selected<br />
** Device Data should have the following added to it:<br />
*** #85 Priority - set a default value of 70, check Allowed to Modify<br />
** Events should have the following added to it: <br />
*** Playback Info Changed<br />
<br />
Once this is done, use [[DCEGen]] to create the appropriate devices.<br />
<br />
Now that the code is created, you need to implement the following methods:<br />
<br />
This is inside MAME_Plugin.h<br />
<br />
<pre><br />
<br />
//<-dceag-d-b-><br />
#ifndef MAME_PlugIn_h<br />
#define MAME_PlugIn_h<br />
<br />
// DCE Implemenation for #1906 MAME Plug-In<br />
<br />
#include "Gen_Devices/MAME_PlugInBase.h"<br />
//<-dceag-d-e-><br />
<br />
#include "../Media_Plugin/Media_Plugin.h"<br />
#include "../Media_Plugin/MediaStream.h"<br />
#include "../Media_Plugin/MediaHandlerBase.h"<br />
<br />
#include "MAMEMediaStream.h"<br />
<br />
//<-dceag-decl-b-><br />
namespace DCE<br />
{<br />
class MAME_PlugIn : public MAME_PlugIn_Command, public MediaHandlerBase<br />
{<br />
//<-dceag-decl-e-><br />
<br />
pluto_pthread_mutex_t m_MAMEMediaMutex; //protect us from ourselves<br />
<br />
//<-dceag-const-b-><br />
public:<br />
// Constructors/Destructor<br />
MAME_PlugIn(int DeviceID, string ServerAddress,bool bConnectEventHandler=true,bool bLocalMode=false,class Router *pRouter=NULL);<br />
virtual ~MAME_PlugIn();<br />
virtual bool GetConfig();<br />
virtual bool Register();<br />
virtual void ReceivedCommandForChild(DeviceData_Impl *pDeviceData_Impl,string &sCMD_Result,Message *pMessage);<br />
virtual void ReceivedUnknownCommand(string &sCMD_Result,Message *pMessage);<br />
//<-dceag-const-e-><br />
<br />
// Private member variables<br />
<br />
protected:<br />
<br />
class Orbiter_Plugin *m_pOrbiter_Plugin;<br />
<br />
<br />
/** Mandatory implementations */<br />
<br />
/**<br />
* @brief<br />
*/<br />
virtual class MediaStream *CreateMediaStream( class MediaHandlerInfo *pMediaHandlerInfo, int iPK_MediaProvider, vector<class EntertainArea *> &vectEntertainArea, MediaDevice *pMediaDevice, int iPK_Users, deque<MediaFile *> *dequeFilenames, int StreamID );<br />
<br />
/**<br />
* @brief Start media playback<br />
*/<br />
virtual bool StartMedia( class MediaStream *pMediaStream,string &sError );<br />
<br />
/**<br />
* @brief Stop media playback<br />
*/<br />
virtual bool StopMedia( class MediaStream *pMediaStream );<br />
<br />
virtual MediaDevice *FindMediaDeviceForEntertainArea(EntertainArea *pEntertainArea);<br />
/**<br />
* @brief We need to see all media inserted events so we can start the appropriate media devices<br />
*/<br />
<br />
MAMEMediaStream *ConvertToMAMEMediaStream(MediaStream *pMediaStream, string callerIdMessage = "");<br />
<br />
//<-dceag-h-b-><br />
/*<br />
AUTO-GENERATED SECTION<br />
Do not change the declarations<br />
*/<br />
<br />
/*<br />
*****DATA***** accessors inherited from base class<br />
int DATA_Get_Priority();<br />
<br />
*****EVENT***** accessors inherited from base class<br />
void EVENT_Playback_Info_Changed(string sMediaDescription,string sSectionDescription,string sSynposisDescription);<br />
<br />
*****COMMANDS***** we need to implement<br />
*/<br />
<br />
//<-dceag-h-e-><br />
};<br />
<br />
//<-dceag-end-b-><br />
}<br />
#endif<br />
//<-dceag-end-e-><br />
//<-dceag-const2-b->!<br />
<br />
</pre><br />
<br />
Some notes here, basically, these are the methods you need to get a working media plugin. <br />
<br />
*continue*<br />
<br />
{{Needs Programmer Review}}</div>
Tschak909