NextPVR Forums
  • ______
  • Home
  • New Posts
  • Wiki
  • Members
  • Help
  • Search
  • Register
  • Login
  • Home
  • Wiki
  • Members
  • Help
  • Search
NextPVR Forums Public Developers v
« Previous 1 … 31 32 33 34 35 … 93 Next »
What plugins can do

 
  • 0 Vote(s) - 0 Average
What plugins can do
NeBlackCat
Offline

Junior Member

Posts: 6
Threads: 2
Joined: Jun 2008
#1
2008-06-03, 12:44 PM
Is there a high level overview on what a plugin is able to do, anywhere?

I've seen a few on the mechanics of writing one, but not the executive summary on what can be done in a plugin.

For example, the obvious one is implementing new functionality via a new "main menu" option.

But I was wondering to what extent it's possible for a plugin to (for example) modify the behavior of other plugins (and in what way), control access to them, monitor what is going on in them, etc?
fluffykeith
Offline

Senior Member

Posts: 398
Threads: 69
Joined: Nov 2007
#2
2008-06-03, 01:33 PM
There is no summary that I have found.

I am trying to put together an understanding. There is a lack of docs / info but if you ask here then there is always someone that knows.

My summary (and correct me / enhance it as required).

Plugin - can cause emulated keypresses, receive notifications, access the database and do any normal program stuff. So probably not much limit, except the documentation!

I think it is not possible to modify behaviour on existing plugins, apart from send them keypresses.

I am trying finding info on the classes a plugin can use. IMenu is defined in the wiki but there is no doc for UITask, notifications, or anything else, except the plugin examples.
Old broken setup - Zalman HD160+ box,  AMD Athlon 5400+, 3GB DDR2, Motherboard Gigabyte GA-M61P-S3
Hauppauge Nova-T PCI
Hauppauge Nova-S PCI
BlackGold Dual T2, S2 PCI
1x 2TB SATA
Windows 7 Pro
pastro
Offline

Posting Freak

Posts: 1,885
Threads: 128
Joined: Jul 2006
#3
2008-06-03, 02:58 PM
fluffykeith Wrote:There is no summary that I have found.

I am trying to put together an understanding. There is a lack of docs / info but if you ask here then there is always someone that knows.

My summary (and correct me / enhance it as required).

Plugin - can cause emulated keypresses, receive notifications, access the database and do any normal program stuff. So probably not much limit, except the documentation!

I think it is not possible to modify behaviour on existing plugins, apart from send them keypresses.

I am trying finding info on the classes a plugin can use. IMenu is defined in the wiki but there is no doc for UITask, notifications, or anything else, except the plugin examples.


I have found it easier to use javawiz's tools. He includes examples of most of the stuff you will likely want to do as well
GBpvr PC: Intel Celeron 1.8 Ghz. 768 Mb WinXp Home Sp2
Video: Diamond 128 Mb 9550
Capture Cards: PVR-150 & PVR-150 MCE w/fm + 2x MVP
Author of: BurnDVDX2 and Skiptool
fluffykeith
Offline

Senior Member

Posts: 398
Threads: 69
Joined: Nov 2007
#4
2008-06-03, 04:02 PM
I was hoping to be able to create a basic plugin then if needed add in the extensions that others have done.
I've been looking at the plugin examples - and I have a few questions.

Is there an example using notifications?

Can someone give an insight into how the GbpvrUiElement fits together with the skin?

Also is the GbpvrUiElements as on http://gbpvr.com/pmwiki/pmwiki.php/Devel...UiElements
the same or is this something extra.

Is the BaseButtonUiTask the basic standard screen with a menu on the left and a list box on the right? Am I right in thinking that if you want more that that then you supply a list of GbpvrUiElement items to render.

How is one GbpvrUiElement removed to give the effect of a new screen, eg the different views in the weather plugin - assuming they partially cover each other one will need removing when the other is shown.

Am I barking up the wrong tree (or just barking - no answer required!)

Thanks for any overview you can give.
Old broken setup - Zalman HD160+ box,  AMD Athlon 5400+, 3GB DDR2, Motherboard Gigabyte GA-M61P-S3
Hauppauge Nova-T PCI
Hauppauge Nova-S PCI
BlackGold Dual T2, S2 PCI
1x 2TB SATA
Windows 7 Pro
McBainUK
Offline

Posting Freak

Posts: 4,711
Threads: 429
Joined: Sep 2005
#5
2008-06-03, 08:20 PM
The GbpvrUiElements library is no longer supported (by me). For PVRX2 plugin development I recommended JavaWiz's excellent tool-kit: http://forums.nextpvr.com/showthread.php?t=28469
Wiki profile
My Projects
Programs Plugin [SIZE=2](retired)
| Volume OSD Plugin (retired) | Documentation Wiki (retired)
[/SIZE]
psycik
Offline

Posting Freak

Posts: 5,210
Threads: 424
Joined: Sep 2005
#6
2008-06-03, 08:37 PM
fluffykeith Wrote:I was hoping to be able to create a basic plugin then if needed add in the extensions that others have done.
I've been looking at the plugin examples - and I have a few questions.

Is there an example using notifications?

Prob not, There's not much to it. Implement the interface and then see the messages come out, basically they're things like audio track started, stopped, video started, stopped. I use them for ML2.

fluffykeith Wrote:Can someone give an insight into how the GbpvrUiElement fits together with the skin?

A GBpvrUIElement is normally a skin Placement and composite image. So a placement for specifying where (and size) and a composite image for specifying size again, and what's in it, image, text etc.

fluffykeith Wrote:Is the BaseButtonUiTask the basic standard screen with a menu on the left and a list box on the right? Am I right in thinking that if you want more that that then you supply a list of GbpvrUiElement items to render.

Yes, it's a cut down all in one task for a simple list and button based plugin (ie subs netradio etc. It works well for that task, but if you need other windows then you tend to find it easier to start with a blank IMenuTask and the other one(?!? can't remembr name) and populate the GetRenderList by hand.


fluffykeith Wrote:How is one GbpvrUiElement removed to give the effect of a new screen, eg the different views in the weather plugin - assuming they partially cover each other one will need removing when the other is shown.

Probably by not drawing it. In the GetRenderList you'd you a "Middle" screen, or element, or group of elements. Then depending on what youre displaying you would call up the group and display them as needed.

I'm not sure how JavaWiz does it in his tools, but i split everything into "Panels" and "Screens" my ML2 for example has two "screens" the library and the playlists - the library is made up of three panels (each panel being a list UISimpleLIst I think it's called), the playlist screen two panels with two lists.

The GBPVRUIElement tends to be for the other things on the screen, the coloured buttons and descriptions, the album art box.


Bit rambley but hopefully useful.
JavaWiz
Offline

Posting Freak

Jacksonville, FL. USA
Posts: 2,522
Threads: 141
Joined: Dec 2006
#7
2008-06-03, 09:32 PM
At this point I believe there are basically three approaches to creating a plugin.

1) Use subs built-in helper classes and extend to suite your needs. Extend BaseButtonUiTask which implements most of the basic stuff a plugin has. The nice thing is the built in list functionality allows you to switch between Icon/List/Details and Filmstrip mode. This thread should get you started. There is also some information here.

2) Use WizTools. Wiz tools supply a list of controls that you are probably familiar with (button, list, textbox, label), that expose properties that are also familiar (enabled, visible, text, itemList,...). The constructors for each control tie the plugin to the skin.xml. It contains a tutorial and sample plugin to help you get started. It hides alot of the details for creating and showing elements in the controls themselves.


3) Roll your own. Basically implement the necessary interfaces (IMenuTask, IUiTask) and create each screen element (GBpvrUiElement) manually and all the logic needed to render and manipulate the elements.


At first it seems a bit overwhelming, but start with a simple HelloWorld type plugin, and work up from there. In a week or two it will all gel and the pieces will start to make sense.

Good luck!
fluffykeith
Offline

Senior Member

Posts: 398
Threads: 69
Joined: Nov 2007
#8
2008-06-04, 08:22 AM
Thanks for the info.

I guess WizTools is used quite a bit and fairly mature and well tested. It does seem the sensible approach. Are there any overheads with using it for simple plugins?

Basically I have two plugins that I want to create:
1. very basic one, a few buttons on the left and on the right a text window that scrolls (a log window), plus a list window with check marks, or highlighting or something.

2. This is where I suspect I will need the low level stuff but if WixTools can do it that would be great. Essentially I want a set of icons (arbitrary shape, transparent bits a big bonus) that act as buttons preferably different on/off images that can be located in arbitrary positions on a background image. The positions can be fixed, ie they don't dynamically move.

I guess my question should really be, If I go the WizTools route will using it hide some of the detail that I may need access to?

Thanks again for all the info.

Keith
Old broken setup - Zalman HD160+ box,  AMD Athlon 5400+, 3GB DDR2, Motherboard Gigabyte GA-M61P-S3
Hauppauge Nova-T PCI
Hauppauge Nova-S PCI
BlackGold Dual T2, S2 PCI
1x 2TB SATA
Windows 7 Pro
fluffykeith
Offline

Senior Member

Posts: 398
Threads: 69
Joined: Nov 2007
#9
2008-06-04, 08:30 AM
JavaWiz Wrote:This thread should get you started.
Good luck!

This link does not seem to work for me - it says something about permissions :confused:

The other link is very useful, thanks.
Old broken setup - Zalman HD160+ box,  AMD Athlon 5400+, 3GB DDR2, Motherboard Gigabyte GA-M61P-S3
Hauppauge Nova-T PCI
Hauppauge Nova-S PCI
BlackGold Dual T2, S2 PCI
1x 2TB SATA
Windows 7 Pro
fluffykeith
Offline

Senior Member

Posts: 398
Threads: 69
Joined: Nov 2007
#10
2008-06-04, 11:54 AM
Ah - JavaWiz - I found you documentation Smile

I guess the skeleton example covers most things and if I want less I just delete it so I'm not creating a bloated plugin.

I've been reading bits here and there - can't play at the moment (at work!!) - but I have what is probably the most basic question. But just to confirm I have figured out at least one small bit.

In the skin part I see this kind of thing:
<Placement name="TextBox" loc="5.0, 70.0" size="20.0,5.0" />

new WizUiTextBox(skinHelper, "TextBox", "An ....

The name TextBox can be anything, eg "fred"? and the composite image part is just specifying the style used which can be specified in the WizUiTextBox constructor.

If I don't add controls to the control manager I will have a blank screen, right?

What specifies the image / color or whatever of this blank screen / background?

I think I am warming to WizTools!
Old broken setup - Zalman HD160+ box,  AMD Athlon 5400+, 3GB DDR2, Motherboard Gigabyte GA-M61P-S3
Hauppauge Nova-T PCI
Hauppauge Nova-S PCI
BlackGold Dual T2, S2 PCI
1x 2TB SATA
Windows 7 Pro
« Next Oldest | Next Newest »

Users browsing this thread: 1 Guest(s)

Pages (2): 1 2 Next »


Possibly Related Threads…
Thread Author Replies Views Last Post
  Plugins and NPVR. Where do we start? sub 80 70,120 2020-11-26, 10:02 PM
Last Post: mandai
  I want to start developing plugins...but how? OrenShapir 6 4,165 2014-11-18, 10:38 PM
Last Post: mvallevand
  Tuner plugins and client id mvallevand 2 2,119 2013-07-03, 01:39 AM
Last Post: mvallevand
  Tuner Plugins - Output folders mvallevand 2 2,081 2013-02-19, 07:45 PM
Last Post: mvallevand
  .NET 4 plugins? McBainUK 20 7,890 2012-12-11, 08:48 PM
Last Post: sub
  Integrated Development Environment (IDE) for plugins osx-addict 5 2,850 2012-10-18, 08:35 PM
Last Post: osx-addict
  Tuner plugins mvallevand 4 2,510 2012-08-05, 11:19 PM
Last Post: mvallevand
  Recorder plugins - Deleting tuners mvallevand 1 1,564 2012-03-29, 12:51 AM
Last Post: sub
  Recorder plugins - scheduling mvallevand 4 2,486 2012-03-26, 05:09 PM
Last Post: mvallevand
  Client - Tuner plugins mvallevand 53 13,792 2011-09-17, 07:19 PM
Last Post: mvallevand

  • View a Printable Version
  • Subscribe to this thread
Forum Jump:

© Designed by D&D, modified by NextPVR - Powered by MyBB

Linear Mode
Threaded Mode