home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
MediaPortal 1 Talk
Guicontrolsdemo ? come out, come out, whereever you are?
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="mm1352000" data-source="post: 1201512" data-attributes="member: 82144"><p>Honestly I didn't think C# and VB were so wildly different that this would present a serious barrier. Obviously C# to VB converters exist. We do also have a <a href="http://wiki.team-mediaportal.com/1_MEDIAPORTAL_1/18_Contribute/6_Plugins/Plugin_Developer%27s_Guide/1_Develop_a_Plugin/Visual_Basic" target="_blank">VB-specific guide</a> with full plugin code in the wiki. If you found that guide to be inadequate, perhaps you could say how/why so that it could be improved.</p><p></p><p>To more directly address your point...</p><p>I'm not a plugin developer myself, so I'm not the best authority on this. AFAIK most MP plugins are written in C#. However a quick look at the <a href="https://sourceforge.net/p/mp-plugins/" target="_blank">plugin repo</a> does turn up a few VB results. Were they also inadequate?</p><p></p><p></p><p>It's not very complex, especially if you're starting from an appropriate base/example. I suggest you take a look at the <a href="https://github.com/MediaPortal/MediaPortal-1/blob/master/mediaportal/Core/guilib/GUIWindow.cs" target="_blank">GUIWindow class</a> (ie. the base class for all window plugins) virtual methods and their comments. If it still isn't clear enough, please feel free to ask specific questions.</p><p></p><p></p><p>Yes I'm familiar.</p><p></p><p></p><p>Please keep in mind that we're a much smaller organisation than Microsoft. We're not able to match Microsoft's documentation standards. If you were expecting that level of documentation, you're bound to be disappointed.</p><p></p><p></p><p>Note that MP1 and MP2 are <em>totally </em>different. If you're developing an MP1 plugin, crawling the MP2 code is a waste of time.</p><p></p><p></p><p>As it says in the GUIWindow Init() comment (and as you'd see from every plugin implementation), you must call Load() to load the skin file. Other than that it's completely up to you. Do whatever is relevant/appropriate for the function of your plugin.</p><p></p><p></p><p>Which specific documentation are you referring to (please provide a link and/or quote), and why do you think it's obsolete and wrong?</p><p></p><p></p><p>None that I'm aware of. As with WinForms, it's up to you to decide what is relevant for your implementation.</p><p></p><p></p><p>From OnAction():</p><p><a href="https://github.com/MediaPortal/MediaPortal-1/blob/master/mediaportal/Core/guilib/Action.cs" target="_blank">https://github.com/MediaPortal/MediaPortal-1/blob/master/mediaportal/Core/guilib/Action.cs</a></p><p></p><p>From OnMessage():</p><p><a href="https://github.com/MediaPortal/MediaPortal-1/blob/master/mediaportal/Core/guilib/GUIMessage.cs" target="_blank">https://github.com/MediaPortal/MediaPortal-1/blob/master/mediaportal/Core/guilib/GUIMessage.cs</a></p><p></p><p>This info is easily found using Visual Studio "go to definition" on the OnAction() and OnMessage() parameter types.</p><p>Obviously there are other event handler methods provided by GUIWindow too (OnClicked() etc.). You can see these for yourself by examining the GUIWindow method list.</p><p></p><p></p><p>Init() is definitely called. If you're not receiving the call, I'd <em>guess </em>that you're not overriding it correctly or MP is treating your plugin as incompatible because you haven't assigned compatibility info. Can't know for sure without access to full code.</p><p></p><p></p><p>Correct, Init() is called once.</p><p></p><p></p><p>Yes, OnPageLoad(). That's two for two; it's really not that hard! <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /></p><p></p><p></p><p>Produce a message when... ?</p><p></p><p></p><p>Do you mean that focus doesn't move, or just that you don't get a notification that the focus has moved?</p><p>Are you handling the corresponding actions (ACTION_MOVE_LEFT/UP/RIGHT/DOWN etc.)?</p><p></p><p></p><p>This behaviour is as designed. If you want to be notified when an item is clicked on (or equivalently: when OK/enter is pressed while an item is highlighted), override GUIWindow OnClicked().</p><p></p><p></p><p>No need to apologise. I just honestly don't understand why you think the learning curve is so steep. You only have to override one class (GUIWindow). The code is fully available with examples (albeit mostly in C# rather than VB), and if the documentation isn't clear enough, you can check how it all hangs together using VS "find all references" or "view call hierarchy". Naturally there is human help available too. <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /></p><p></p><p></p><p>For the sorts of questions you're currently asking (about initialisation/loading and event handling), I would have thought that almost every single plugin that's ever been created would be relevant. The built-in videos, music and pictures plugins all have lists, as does the TV plugin (recorded TV and radio). Granted those lists may not be as complex as you want yours to be, but they'll certainly answer all your questions about item selection.</p><p></p><p></p><p>Sure there is! As ajs said, the standard video and music plugins (and pictures, and TV... etc.) use the exact same strategy for presenting multi-aspect/detail items that he so kindly described for you. Granted if you personally haven't used those plugins then you might not know to look at them... but respectfully, to say that there are no examples at all isn't accurate.</p><p></p><p>Please don't hesitate to ask if you have any further questions. The more specific you can be, the easier it is to answer.</p></blockquote><p></p>
[QUOTE="mm1352000, post: 1201512, member: 82144"] Honestly I didn't think C# and VB were so wildly different that this would present a serious barrier. Obviously C# to VB converters exist. We do also have a [URL='http://wiki.team-mediaportal.com/1_MEDIAPORTAL_1/18_Contribute/6_Plugins/Plugin_Developer%27s_Guide/1_Develop_a_Plugin/Visual_Basic']VB-specific guide[/URL] with full plugin code in the wiki. If you found that guide to be inadequate, perhaps you could say how/why so that it could be improved. To more directly address your point... I'm not a plugin developer myself, so I'm not the best authority on this. AFAIK most MP plugins are written in C#. However a quick look at the [URL='https://sourceforge.net/p/mp-plugins/']plugin repo[/URL] does turn up a few VB results. Were they also inadequate? It's not very complex, especially if you're starting from an appropriate base/example. I suggest you take a look at the [URL='https://github.com/MediaPortal/MediaPortal-1/blob/master/mediaportal/Core/guilib/GUIWindow.cs']GUIWindow class[/URL] (ie. the base class for all window plugins) virtual methods and their comments. If it still isn't clear enough, please feel free to ask specific questions. Yes I'm familiar. Please keep in mind that we're a much smaller organisation than Microsoft. We're not able to match Microsoft's documentation standards. If you were expecting that level of documentation, you're bound to be disappointed. Note that MP1 and MP2 are [I]totally [/I]different. If you're developing an MP1 plugin, crawling the MP2 code is a waste of time. As it says in the GUIWindow Init() comment (and as you'd see from every plugin implementation), you must call Load() to load the skin file. Other than that it's completely up to you. Do whatever is relevant/appropriate for the function of your plugin. Which specific documentation are you referring to (please provide a link and/or quote), and why do you think it's obsolete and wrong? None that I'm aware of. As with WinForms, it's up to you to decide what is relevant for your implementation. From OnAction(): [URL]https://github.com/MediaPortal/MediaPortal-1/blob/master/mediaportal/Core/guilib/Action.cs[/URL] From OnMessage(): [URL]https://github.com/MediaPortal/MediaPortal-1/blob/master/mediaportal/Core/guilib/GUIMessage.cs[/URL] This info is easily found using Visual Studio "go to definition" on the OnAction() and OnMessage() parameter types. Obviously there are other event handler methods provided by GUIWindow too (OnClicked() etc.). You can see these for yourself by examining the GUIWindow method list. Init() is definitely called. If you're not receiving the call, I'd [I]guess [/I]that you're not overriding it correctly or MP is treating your plugin as incompatible because you haven't assigned compatibility info. Can't know for sure without access to full code. Correct, Init() is called once. Yes, OnPageLoad(). That's two for two; it's really not that hard! :) Produce a message when... ? Do you mean that focus doesn't move, or just that you don't get a notification that the focus has moved? Are you handling the corresponding actions (ACTION_MOVE_LEFT/UP/RIGHT/DOWN etc.)? This behaviour is as designed. If you want to be notified when an item is clicked on (or equivalently: when OK/enter is pressed while an item is highlighted), override GUIWindow OnClicked(). No need to apologise. I just honestly don't understand why you think the learning curve is so steep. You only have to override one class (GUIWindow). The code is fully available with examples (albeit mostly in C# rather than VB), and if the documentation isn't clear enough, you can check how it all hangs together using VS "find all references" or "view call hierarchy". Naturally there is human help available too. :) For the sorts of questions you're currently asking (about initialisation/loading and event handling), I would have thought that almost every single plugin that's ever been created would be relevant. The built-in videos, music and pictures plugins all have lists, as does the TV plugin (recorded TV and radio). Granted those lists may not be as complex as you want yours to be, but they'll certainly answer all your questions about item selection. Sure there is! As ajs said, the standard video and music plugins (and pictures, and TV... etc.) use the exact same strategy for presenting multi-aspect/detail items that he so kindly described for you. Granted if you personally haven't used those plugins then you might not know to look at them... but respectfully, to say that there are no examples at all isn't accurate. Please don't hesitate to ask if you have any further questions. The more specific you can be, the easier it is to answer. [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
MediaPortal 1 Talk
Guicontrolsdemo ? come out, come out, whereever you are?
Contact us
RSS
Top
Bottom