Page 3 of 6 FirstFirst 123456 LastLast
Results 21 to 30 of 57

Thread: Latest source download via SVN (rev 54)

  1. #21
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Quote Originally Posted by Borte View Post
    The reason why I said I'd keep it more or less empty was that I tought I had to use the ui.dll file since it's hardcoded into the core.

    Sweet.

    Is there somewhere I can look to understand the skin consept of openmobile? I know how it all works and so on I just need to understand your view at skinning so I can "attack it from the right direction". What I'm looking for is something along; yes you can do this, but no you can not do this...
    I'm not sure I understand the question...can you give an example?

    Quote Originally Posted by Borte View Post
    I see that in the PluginHost.getSkinImage you're adding ".png" to the last name of the image to load from the skin folder. Does this mean that OpenMobile can only work with png files?

    Also how do I set the startup size of the screen? The only way to do it as far as I could see was to change the actual size property of the ui usercontrol in the OpenMobile project.
    Well i've been using all png's because jpegs look awful if you try to resize them and bmps can be huge. But for now, any format can have .png added to the end and OM will detect its real type and load it. If theres any other formats you want me to include just let me know and ill make sure to do it.

    As far as the screen size, I could certainly add in an easy way to do that but i'm not sure why it would be needed. The way I saw it, you would either want it full screen or you would want it windowed so you could do something with the desktop.

  2. #22
    Maximum Bitrate Borte's Avatar
    Join Date
    Jan 2006
    Location
    Norway
    Posts
    512
    Quote Originally Posted by justchat_1 View Post
    I'm not sure I understand the question...can you give an example?
    What I meant is that in OpenMobile.Core you're doing this:
    Code:
                Assembly pluginAssembly = Assembly.Load("UI");
                IHighLevel availablePlugin = (IHighLevel)Activator.CreateInstance(pluginAssembly.GetTypes()[0]);
                pluginCollection.Add(availablePlugin);
                availablePlugin.initialize(theHost);
                
                pluginAssembly = Assembly.Load("MainMenu");
                IHighLevel mmPlugin = (IHighLevel)Activator.CreateInstance(pluginAssembly.GetTypes()[0]);
                pluginCollection.Add(mmPlugin);
                mmPlugin.initialize(theHost);
    Which looks for and loads a dll file called UI.dll and another called MainMenu.dll. If I don't want to use the UI.dll (but rather load everyhing from MainMenu.dll) I'll have to clear all the contents out of the UI.dll file to stop it from showing anything.
    Why is the system built so it forces a skin to use both UI.dll and MainMenu.dll. Wouldn't it be more correct if the UI.dll (if wanted) was loaded from MainMenu.dll?


    Quote Originally Posted by justchat_1 View Post
    Well i've been using all png's because jpegs look awful if you try to resize them and bmps can be huge. But for now, any format can have .png added to the end and OM will detect its real type and load it. If theres any other formats you want me to include just let me know and ill make sure to do it.
    Your controls can handle all formats that .net is using so I don't see why they have to be limited in PluginHost.getSkinImage, couldn't the filetype just be a part of the filename that your passing when using it instad?
    Basically just removing the ".png" part from this line:
    Code:
    im.image = Image.FromFile(Path.Combine(SkinPath, imageName + ".png"));
    Quote Originally Posted by justchat_1 View Post
    As far as the screen size, I could certainly add in an easy way to do that but i'm not sure why it would be needed. The way I saw it, you would either want it full screen or you would want it windowed so you could do something with the desktop.
    When testing and devloping a skin it's better to be able to control (simulate) the target resolution so that it's easier to get all the placements and objects in the correct location without any scaling.

    ------

    What about panels? Can I only have (and show) one panel at a screen (screenmanager) at a time?

    ------

    Could the ui form obect be exposed to the skinner trough the pluginhost? Or would this give to much control to the skinner? That way the form itself could be controlled from the skin (if needed).

    ------

    Could the exit animation also be controllable from the skin, like the other transitions?
    Maybe some skins want it and some not. Or at least the actual animation speed should be controllable (this also goes for any other transition).

    ------

    If I wanted to trigg an action on a screen the first time it's shown, how would I detect this? Is an event trigged after it's shown?

    Pew... Lot's of questions but we'll have to call it development...

    Cheers
    Failure is not an option...
    __________________________________________________ ______________________________
    The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

  3. #23
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Ugh....i replied to this and somehow my reply disappeared so here goes round two:
    Quote Originally Posted by Borte View Post
    What I meant is that in OpenMobile.Core you're doing this:
    Code:
                Assembly pluginAssembly = Assembly.Load("UI");
                IHighLevel availablePlugin = (IHighLevel)Activator.CreateInstance(pluginAssembly.GetTypes()[0]);
                pluginCollection.Add(availablePlugin);
                availablePlugin.initialize(theHost);
                
                pluginAssembly = Assembly.Load("MainMenu");
                IHighLevel mmPlugin = (IHighLevel)Activator.CreateInstance(pluginAssembly.GetTypes()[0]);
                pluginCollection.Add(mmPlugin);
                mmPlugin.initialize(theHost);
    Which looks for and loads a dll file called UI.dll and another called MainMenu.dll. If I don't want to use the UI.dll (but rather load everyhing from MainMenu.dll) I'll have to clear all the contents out of the UI.dll file to stop it from showing anything.
    Why is the system built so it forces a skin to use both UI.dll and MainMenu.dll. Wouldn't it be more correct if the UI.dll (if wanted) was loaded from MainMenu.dll?
    Well it comes down to this....UI.dll is the only panel that is guaranteed to always be on top, MainMenu is the only panel loaded at startup that can be hidden and then be brought back. I cant imagine any skin design that wouldn't need both of these plugins and would be willing to bet that while you don't think so now as you get further into your design you will see the need (wifi indicators, status notifications, etc.). So i'll make you this deal, feel free to remove the need for UI.dll completely and if you finish your plugin and still don't have a need for the UI i'll make it optional (the Core will only load UI.dll if it exists).

    Quote Originally Posted by Borte View Post
    Your controls can handle all formats that .net is using so I don't see why they have to be limited in PluginHost.getSkinImage, couldn't the filetype just be a part of the filename that your passing when using it instad?
    Basically just removing the ".png" part from this line:
    Code:
    im.image = Image.FromFile(Path.Combine(SkinPath, imageName + ".png"));
    When testing and devloping a skin it's better to be able to control (simulate) the target resolution so that it's easier to get all the placements and objects in the correct location without any scaling.
    The reason behind it was performance and ease of changing skins (a user can use a jpg, png, gif, etc without needed to recompile the skin). If you can suggest another file format that people would want to use I will add support for it, but the current method helps maintain performance and quality graphics.

    As far as window size, there will always be scaling to some extent. I can give you two choices for window size, a SetSize function that you can call to set the UI windows size or displaying the resolution in the caption bar so when you manually resize the window you know what resolution the window currently represents. Also, the skin designer should already show you the display resolution as well as the amount of scaling (in the title bar scaling values are a float with 1.0 representing no scaling). Keep in mind though that even with no global scaling, any image that is displayed at more/less then its actual size will be scaled.

    Quote Originally Posted by Borte View Post
    What about panels? Can I only have (and show) one panel at a screen (screenmanager) at a time?
    Nope you can show as many panels at a time as you want. Like in an operating system, the newest panel will be layered on top.

    The screenmanager can only handle one panel at a time, but you can use as many of them as you need, even an array of them if you have a lot of panels.

    Quote Originally Posted by Borte View Post
    Could the ui form obect be exposed to the skinner trough the pluginhost? Or would this give to much control to the skinner? That way the form itself could be controlled from the skin (if needed).
    Yes it can, the forms handle is exposed by the UIHandle function of the plugin host, you can create a reference to the form using that. Keep in mind though that this access is not thread safe and should really only be used in development as it could impact stability if not implemented correctly.

    Quote Originally Posted by Borte View Post
    Could the exit animation also be controllable from the skin, like the other transitions?
    Maybe some skins want it and some not. Or at least the actual animation speed should be controllable (this also goes for any other transition).
    Yea I could add an optional argument for exit transition speed (or an optional argument for fade out/close immediately) whichever you think would work better.

    As far as a speed argument for all transitions thats not quite as easy to do. Not all transitions scale linearly, or can be stepped at any speed, so to prevent developers causing stability problems we will most likely just have each function along with a slow and fast version.

    Quote Originally Posted by Borte View Post
    If I wanted to trigg an action on a screen the first time it's shown, how would I detect this? Is an event trigged after it's shown?

    Pew... Lot's of questions but we'll have to call it development...

    Cheers
    The system event transitionToPanel is called when you panel is loaded so you could hook the OnSystemEvent event in the plugin host and respond to that. If you only want something to happen the first time its shown not every time just set a variable the first time its shown and ignore the rest.

    Yea its a lot of questions but a few of them turn into great ideas...so as long as their moving the project in the right direction i'm grateful for them.

  4. #24
    Maximum Bitrate Borte's Avatar
    Join Date
    Jan 2006
    Location
    Norway
    Posts
    512
    Quote Originally Posted by justchat_1 View Post
    Ugh....i replied to this and somehow my reply disappeared so here goes round two:
    Well it comes down to this....UI.dll is the only panel that is guaranteed to always be on top, MainMenu is the only panel loaded at startup that can be hidden and then be brought back. I cant imagine any skin design that wouldn't need both of these plugins and would be willing to bet that while you don't think so now as you get further into your design you will see the need (wifi indicators, status notifications, etc.). So i'll make you this deal, feel free to remove the need for UI.dll completely and if you finish your plugin and still don't have a need for the UI i'll make it optional (the Core will only load UI.dll if it exists).
    I do need a panel on top but not always. And what if I need to change what panel is on top? How would I do that? Can a panel be on top transparent and with clicktrough (like an overlay for an embedded application)?

    Quote Originally Posted by justchat_1 View Post
    The reason behind it was performance and ease of changing skins (a user can use a jpg, png, gif, etc without needed to recompile the skin). If you can suggest another file format that people would want to use I will add support for it, but the current method helps maintain performance and quality graphics.
    How can a user user a jpg, png, gif ets if you're forcing the application to look for a file with a .png ending. That would force the user to rename the file to have an png ending to make it work if it was of a different filetype. Or am I missing something here?`And I do agree that png are by far the best format but there's always the need for jpg...

    Quote Originally Posted by justchat_1 View Post
    As far as window size, there will always be scaling to some extent. I can give you two choices for window size, a SetSize function that you can call to set the UI windows size or displaying the resolution in the caption bar so when you manually resize the window you know what resolution the window currently represents. Also, the skin designer should already show you the display resolution as well as the amount of scaling (in the title bar scaling values are a float with 1.0 representing no scaling). Keep in mind though that even with no global scaling, any image that is displayed at more/less then its actual size will be scaled.
    All that's needed is a initial startup size, there's no need to control it a later stage (at least not for now).

    Quote Originally Posted by justchat_1 View Post
    Nope you can show as many panels at a time as you want. Like in an operating system, the newest panel will be layered on top.

    The screenmanager can only handle one panel at a time, but you can use as many of them as you need, even an array of them if you have a lot of panels.
    Can a panel be on top of another and still be transparent, thereby using different animations/transitions on them?

    Quote Originally Posted by justchat_1 View Post
    Yea I could add an optional argument for exit transition speed (or an optional argument for fade out/close immediately) whichever you think would work better.
    The later is probably better (just like the property for initial transition).

    Quote Originally Posted by justchat_1 View Post
    As far as a speed argument for all transitions thats not quite as easy to do. Not all transitions scale linearly, or can be stepped at any speed, so to prevent developers causing stability problems we will most likely just have each function along with a slow and fast version.
    How about creating a "animationbase" timer or something that can be used if a skinner wants to create his own animations / transitions? This would allow all animations to animate in the same speed regardless of computer speed (at least close to it). Or if timers could be avoided, an animations delay constant of some kind might be better.

    Quote Originally Posted by justchat_1 View Post
    The system event transitionToPanel is called when you panel is loaded so you could hook the OnSystemEvent event in the plugin host and respond to that. If you only want something to happen the first time its shown not every time just set a variable the first time its shown and ignore the rest.
    ok. I was just looking for an event that was trigged when the panel was shown. The rest of the logic I'll handle my self. Is the transitionToPanel event trigged after or before the panel is shown?

    Quote Originally Posted by justchat_1 View Post
    Yea its a lot of questions but a few of them turn into great ideas...so as long as their moving the project in the right direction i'm grateful for them.
    Not all of my questions might be of the helpfull kind but it's the only way I can learn how OpenMobile works (and behaves) so as long as they keep the project moving along then I'm happy too!
    Failure is not an option...
    __________________________________________________ ______________________________
    The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

  5. #25
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Quote Originally Posted by Borte View Post
    I do need a panel on top but not always. And what if I need to change what panel is on top? How would I do that? Can a panel be on top transparent and with clicktrough (like an overlay for an embedded application)?
    The last panel loaded is always loaded on top. Otherwise there would be no way to keep panels from fighting over focus.

    Quote Originally Posted by Borte View Post
    How can a user user a jpg, png, gif ets if you're forcing the application to look for a file with a .png ending. That would force the user to rename the file to have an png ending to make it work if it was of a different filetype. Or am I missing something here?`And I do agree that png are by far the best format but there's always the need for jpg...
    I cant remember if its in code or not but the framework will try both png and gif. The reason I avoid using jpeg is because there will always be quality issues if you try using it for controls, so yes it is intentionally made more difficult to use.

    Quote Originally Posted by Borte View Post
    All that's needed is a initial startup size, there's no need to control it a later stage (at least not for now).
    How about a "-size=" command line option?

    Quote Originally Posted by Borte View Post
    Can a panel be on top of another and still be transparent, thereby using different animations/transitions on them?
    If a panel is transparent why would it even be displayed at all? If you mean transparent background then yes of course. If you mean semi-transparent controls then yes. Otherwise i'm not 100% sure what you mean.

    Quote Originally Posted by Borte View Post
    The later is probably better (just like the property for initial transition).
    Done

    Quote Originally Posted by Borte View Post
    How about creating a "animationbase" timer or something that can be used if a skinner wants to create his own animations / transitions? This would allow all animations to animate in the same speed regardless of computer speed (at least close to it). Or if timers could be avoided, an animations delay constant of some kind might be better.
    Animations are a little more involved then that. You need to consider not just step speed but also step size, minimum and maximum step values and (not implemented yet but will be soon) capabilities of the host computer. Since each plugin has its own thread you are more then welcome to use a simple delay constant. That would be 50ms (or 20fps).

    Quote Originally Posted by Borte View Post
    ok. I was just looking for an event that was trigged when the panel was shown. The rest of the logic I'll handle my self. Is the transitionToPanel event trigged after or before the panel is shown?

    Not all of my questions might be of the helpfull kind but it's the only way I can learn how OpenMobile works (and behaves) so as long as they keep the project moving along then I'm happy too!
    The simple answer is during. Technically the event is fired just before the panel is displayed but since the event is sent at the same time as the panel is being loaded it could come just before or just after.

  6. #26
    Constant Bitrate
    Join Date
    Feb 2007
    Location
    Taylorsville, UT
    Posts
    134
    I think one of my questions kind of got lost in there, do you still need me to work on a Bass.NET plugin? It looks like it can already play music so I dotn know if you already did it or not. Where is the current list of stuff you want other people to look at (or is there one?) I wouldn't mind getting my hands dirty with this soon!

    Keep up the good work as always
    -James
    Car: 2004 GTI VR6 24v Turbo 2.8L, GT35R, 630cc, Unitronic, Bosch 044, etc, etc..
    Main PC:i7 920@4Ghz, 6GB DDR3, MSI X-58 Pro-E, Win 7 x64 RTM, Scythe Mugen2, 128GB G.Skill Falcon, 2x ATI4850 512MB Crossfire, Auzentech X-Fi Forte, Grado Labs SR-80

  7. #27
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Quote Originally Posted by Extide View Post
    I think one of my questions kind of got lost in there, do you still need me to work on a Bass.NET plugin? It looks like it can already play music so I dotn know if you already did it or not. Where is the current list of stuff you want other people to look at (or is there one?) I wouldn't mind getting my hands dirty with this soon!

    Keep up the good work as always
    Sorry about that...I think i looked at your first question and that was it.

    Also, can you please make it so that this thing compiles out of the box? Right now I need to change the output path of all the plugins so they end up in the right place, and that's rather time consuming and not really necessary. Thanks!!
    Yea i'll see what I can do...release mode is never going to just work but i'll try to always make sure debug mode works straight from svn.

    Also, (sorry I hate to be so nitpicky) but can you possibly make sure to name all of your controls? There were some things like Label1 TextBox1
    Yea i've been going through and cleaning that up but ill make sure to finish the job. A lot of those were controls generated automatically by the skin designer.

    Ans, do you still want me to work on a Bass.NET plugin? it looks like it currently can play music, so I dont know what you are using right now.
    Well right now i'm using a media player written from scratch for openMobile but i'm still not 100% happy with its stability. I have VLC and Winamp plugins about 80% done but i'm trying to provide as many options as possible. Bass is great because its very stable, has support for everything without codec packs and is pretty lightweight (plus it should work on linux and mac).

    I don't have an official To Do list but could probably write one up pretty quick, if theres any areas your interested in I could probably make a more specific list?

  8. #28
    Maximum Bitrate Borte's Avatar
    Join Date
    Jan 2006
    Location
    Norway
    Posts
    512
    Quote Originally Posted by justchat_1 View Post
    I cant remember if its in code or not but the framework will try both png and gif. The reason I avoid using jpeg is because there will always be quality issues if you try using it for controls, so yes it is intentionally made more difficult to use.
    I agree about the quality issues but I still think that should be up to the skinner to decide. I think it would be wise to keep support for jpg, especially to help engourage people to convert skins from other frontends.

    Quote Originally Posted by justchat_1 View Post
    How about a "-size=" command line option?
    That would do the trick!

    Quote Originally Posted by justchat_1 View Post
    If a panel is transparent why would it even be displayed at all? If you mean transparent background then yes of course. If you mean semi-transparent controls then yes. Otherwise i'm not 100% sure what you mean.
    I meant transparent background but also click trough. An example would be if I embed an application and want to place an menu on top of it in one of the sides of the screen.

    Quote Originally Posted by justchat_1 View Post
    Animations are a little more involved then that. You need to consider not just step speed but also step size, minimum and maximum step values and (not implemented yet but will be soon) capabilities of the host computer. Since each plugin has its own thread you are more then welcome to use a simple delay constant. That would be 50ms (or 20fps).
    I'm aware of the different issues, what I meant if a "general" way of calculating it could be present in the framwork so people could use this instead of having to figure it out for them self.

    Quote Originally Posted by justchat_1 View Post
    The simple answer is during. Technically the event is fired just before the panel is displayed but since the event is sent at the same time as the panel is being loaded it could come just before or just after.
    Ok. I'll play with it a bit.
    Failure is not an option...
    __________________________________________________ ______________________________
    The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

  9. #29
    Maximum Bitrate Borte's Avatar
    Join Date
    Jan 2006
    Location
    Norway
    Posts
    512
    How's the plan for implementing skin support?

    Is the skin implementation architecture something that's open for discussion?
    Failure is not an option...
    __________________________________________________ ______________________________
    The only full multizone / multiscreen cross platform open source Front End -> OpenMobile

  10. #30
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Quote Originally Posted by Borte View Post
    How's the plan for implementing skin support?

    Is the skin implementation architecture something that's open for discussion?
    Not sure what you mean...

Page 3 of 6 FirstFirst 123456 LastLast

Similar Threads

  1. Alpha Release: XMPC-CAR for XM
    By gork in forum Software & Software Development
    Replies: 88
    Last Post: 01-11-2006, 12:19 PM
  2. GPS:MM shutdown RR when switch skin
    By MatrixPC in forum RR Bug Tracker
    Replies: 5
    Last Post: 05-12-2005, 11:07 AM
  3. master volume doesnīt work
    By free2world8000 in forum RR Bug Tracker
    Replies: 14
    Last Post: 02-17-2005, 12:08 PM
  4. Update: 2-12-05.. Flash Support!...
    By guino in forum Road Runner
    Replies: 163
    Last Post: 02-13-2005, 12:21 PM
  5. Questions for developers
    By SuperG35 in forum ME Archive
    Replies: 28
    Last Post: 08-26-2003, 10:12 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •