Announcement

Collapse
No announcement yet.

Why you should develop your plugin for nGhost3

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Why you should develop your plugin for nGhost3

    nGhost3 is in current development: the SDK is making great progress, nGhost3 has a unique, innovative design. These are a few reasons why you should stop developing for that old, non-innovative, non-free frontend, and write it for nGhost3 instead. Check out the nGhost3 on-screen-keyboard test example:

    [media]http://www.youtube.com/watch?v=BvAyKoRyeh4[/media]

    nGhost3 is unique
    uniqueness doesn't equal better, but in this case, it does. nGhost3 is not a frontend like RR, CF, SD, it's a complete mobile framework. It runs on Linux and Macs, and it looks awesome! That's why it's better to write for nGhost3 than it is for the other three.

    One more, because nGhost3 is Linux based, it runs on everything that Linux runs on. nGhost3 is not only targeting your carpc, but also smart phones and other mobile devices. This means your plugin has multiple avenues to get users.

    nGhost3 has a documented SDK
    Creating a plugin for nGhost is easy. Not only because documentation exists but because the interfaces are nice C++ classes. When you use the toolkit, you automatically have a UI built for mobile use. nGhost takes care of the theme and the skinning for you so you just write code.

    nGhost3 is innovative
    nGhost3 is not like CF, SD, or RR... nGhost3 is an innovative Operating System analogous to Google's Android and Moblin. It's a true, multi-process mobile desktop. Plugins are developed as a plugin, but they run in their own process space. The integration is so tight, you can't even tell that each "plugin" is running in its own window. Look at this demo of moblin2 which demonstrates the idea, and the also shares the same underlying OpenGL graphics accelerated GUI (aka clutter):

    [media]http://www.youtube.com/watch?v=vsCpIeLLoT8[/media]

    Can you tell they are completely different apps? Probably not. You can't reproduce that with windows, you can't copy that unless you own the shell, which MS doesn't want you to own. Silly, but true.

    nGhost3 is free

    nGhost3 is LGPL licensed. This means that it is not only freeware, but also free to hack on, free to change, free as in freedom. It's not going to rip off your code, become closed source and then implement "protective" features that treat you like a thief. nGhost is free and will always be free. It's license guarantees and secures its freeness.

    So upgrade your awesomeness today, start developing for nGhost3!!
    Former author of LinuxICE, nghost, nobdy.
    Current author of Automotive Message Broker (AMB).
    Works on Tizen IVI. Does not represent anyone or anything but himself.

  • #3
    Originally posted by Enforcer View Post
    Do you have an SDK, with some easy Hello World type examples.


    Also can these plugins be built using MS Visual Studio (preferably VB.net)
    Diddo! Looks promising but i'm an absolute nube with anything linux.
    mp3Car.com Senior Tech Blogger (Want a product reviewed? Contact me.)
    Follow Me on Twitter or Facebook
    Live mp3Car Facebook Chat

    Comment


    • #4
      Originally posted by Enforcer View Post
      Do you have an SDK, with some easy Hello World type examples.


      Also can these plugins be built using MS Visual Studio (preferably VB.net)

      There are some c++ examples in the source:
      http://nghost.svn.sourceforge.net/vi.../lib/examples/

      most of the headers are documented. It's still early development, but I hope we will have automatic doc generation into html files soon.

      texture is the simplest and kb is probably the most complex.

      Clutter has bindings for .NET, so VB.NET/C# should be possible. If there is interest in .NET support, I will write the theme engine and skin parser in .NET as well as the harness and plugin interfaces.

      Alternatively, you don't have to use the ng3 theme engine/ skinning engine at all. The beauty of this ideology is that you can use any language and can still talk with the other plugins through the IPC mechanism: DBus.
      Former author of LinuxICE, nghost, nobdy.
      Current author of Automotive Message Broker (AMB).
      Works on Tizen IVI. Does not represent anyone or anything but himself.

      Comment


      • #5
        Hi kev000, great job!

        Where can we get the nGhost3, I found two foled on svn gn3 and nghost3, I guess ng3 is the correct one as it's the most recent one, is this correct?

        I check out ng3 and tried to compile on jaunty but I get the following error:

        Code:
        libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/home/mon/development/workspace/ng3/lib/clutter -I../.. -DQT_SHARED -I/usr/include/qt4 -I/usr/include/qt4/QtCore -pthread -D_REENTRANT -I/usr/include/clutter-0.9 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gtk-2.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT libnghostclutter_la-NClutterActor.moc.lo -MD -MP -MF .deps/libnghostclutter_la-NClutterActor.moc.Tpo -c NClutterActor.moc.cpp  -fPIC -DPIC -o .libs/libnghostclutter_la-NClutterActor.moc.o
        NClutterActor.moc.cpp:13:26: error: qapplication.h: No such file or directory
        NClutterActor.moc.cpp:15:34: error: private/qucomextra_p.h: No such file or directory
        NClutterActor.moc.cpp:17:2: error: #error "This file was generated using the moc from 3.3.8b. It"
        NClutterActor.moc.cpp:18:2: error: #error "cannot be used with the include files from this version of Qt."
        NClutterActor.moc.cpp:19:2: error: #error "(The moc has changed too much.)"
        NClutterActor.moc.cpp:22: error: no ‘const char* nghost::NClutterActor::className() const’ member function declared in class ‘nghost::NClutterActor’
        NClutterActor.moc.cpp:27: error: ‘QMetaObject* nghost::NClutterActor::metaObj’ is not a static member of ‘class nghost::NClutterActor’
        NClutterActor.moc.cpp:28: error: ‘QMetaObjectCleanUp’ does not name a type
        NClutterActor.moc.cpp:31: error: redefinition of ‘static QString nghost::NClutterActor::tr(const char*, const char*)’
        ../../../lib/clutter/NClutterActor.h:13: error: ‘static QString nghost::NClutterActor::tr(const char*, const char*)’ previously defined here
        NClutterActor.moc.cpp:39: error: redefinition of ‘static QString nghost::NClutterActor::trUtf8(const char*, const char*)’
        ../../../lib/clutter/NClutterActor.h:13: error: ‘static QString nghost::NClutterActor::trUtf8(const char*, const char*)’ previously defined here
        NClutterActor.moc.cpp:50: error: no ‘QMetaObject* nghost::NClutterActor::staticMetaObject()’ member function declared in class ‘nghost::NClutterActor’
        NClutterActor.moc.cpp:130: error: no ‘void* nghost::NClutterActor::qt_cast(const char*)’ member function declared in class ‘nghost::NClutterActor’
        NClutterActor.moc.cpp:137: error: ‘QUObject’ has not been declared
        NClutterActor.moc.cpp:137: error: no ‘bool nghost::NClutterActor::qt_invoke(int, int*)’ member function declared in class ‘nghost::NClutterActor’
        NClutterActor.moc.cpp:159: error: ‘QUObject’ has not been declared
        NClutterActor.moc.cpp:159: error: no ‘bool nghost::NClutterActor::qt_emit(int, int*)’ member function declared in class ‘nghost::NClutterActor’
        NClutterActor.moc.cpp:165: error: no ‘bool nghost::NClutterActor::qt_property(int, int, QVariant*)’ member function declared in class ‘nghost::NClutterActor’
        NClutterActor.moc.cpp:170: error: no ‘bool nghost::NClutterActor::qt_static_property(QObject*, int, int, QVariant*)’ member function declared in class ‘nghost::NClutterActor’
        For what I understood is a problem with the qt version, I have qt3 and qt4 installed. Is it possible to compile with qt4? If not how should I force qt3?

        Thank's

        Comment


        • #6
          It should only use Qt4. The base directory may not compile, but lib/ should.

          The problem (as discovered by kshots) is that it's compiling with qt4, but using moc from qt3. kshots just committed a fix that should use the proper moc versions. You'll have to reconfigure, but you should be good after that.
          Former author of LinuxICE, nghost, nobdy.
          Current author of Automotive Message Broker (AMB).
          Works on Tizen IVI. Does not represent anyone or anything but himself.

          Comment


          • #7
            Sounds promising. I do have a question though. The main reason for 'abandoning' my use of nghost was that it was limited how it handled media..of course..maybe I did not give it more of a chance.

            Will nGhost3 be able to perform random playback for music? Is the functionality of media playback limited to configurations of mplayer? Can you configure it to use something like VLC as the backend player? Don't get me wrong mplayer is just fine..Call me spoiled with media handling such as XBMC.

            I know its been a while since I have messed with nGhost and I like the GUI and project...I just wasn't happy with how it handled media..that's all.

            I am definitely going to be giving nGhost3 a whirl.
            "Live Free!!!...It's all about Open Source"
            Recent Proj
            Old Proj II
            Old Proj I
            YouTube:Project Videos
            Homepage: HexxWorld.net
            Twitter:http://twitter.com/hexxamillion

            Comment


            • #8
              Originally posted by hexxamillion View Post
              Sounds promising. I do have a question though. The main reason for 'abandoning' my use of nghost was that it was limited how it handled media..of course..maybe I did not give it more of a chance.

              Will nGhost3 be able to perform random playback for music? Is the functionality of media playback limited to configurations of mplayer? Can you configure it to use something like VLC as the backend player? Don't get me wrong mplayer is just fine..Call me spoiled with media handling such as XBMC.

              I know its been a while since I have messed with nGhost and I like the GUI and project...I just wasn't happy with how it handled media..that's all.

              I am definitely going to be giving nGhost3 a whirl.
              I'm not sure when you used nGhost last, but nGhost2 supported random music playback. The backend supported it, there hasn't been anyone demanding the feature (until now), and thus the UI control wasn't ever put in. nGhost2's media player is pluggable. The mplayer plugin can be replaced with any media backend if you are willing to do the work. Stubs for phonon, gstreamer, and xine plugins are in repository. Again, there hasn't been much demand for other plugins other than mplayer, so none of the others have been finished.

              nGhost3's media engine will likely be based on phonon. Phonon is an abstraction above multiple media playback backends. Gstreamer, Xine, VLC and mplayer (not to mention DirectShow, and Quicktime on those platforms) are currently supported phonon backends.

              I hope you give nGhost2 a second look when we release 2.1. If not, nGhost3 is sure to please.
              Former author of LinuxICE, nghost, nobdy.
              Current author of Automotive Message Broker (AMB).
              Works on Tizen IVI. Does not represent anyone or anything but himself.

              Comment


              • #9
                Windows 7 supported?

                Comment


                • #10
                  Originally posted by DocShay View Post
                  Windows 7 supported?
                  nGhost3 probably won't run well on windows. This is because while other frontends hide/mask the shell, nGhost IS the shell and windows, well, doesn't play nice with others. Someone with a lot more windows knowledge than me could probably explain why killing the windows shell (iirc explorer.exe) is a bad idea.

                  However, as I mentioned in this thread, there is really no reason why someone couldn't write a windows version using the nGhost3 toolkit.

                  UPDATE:

                  We are looking at using several components being developed for Moblin in nGhost3: http://wiki.openice.org/index.php/Nghost3. This greatly reduces the actual work we need to do to get ng3 up and running.

                  cheers,
                  -Kev
                  Former author of LinuxICE, nghost, nobdy.
                  Current author of Automotive Message Broker (AMB).
                  Works on Tizen IVI. Does not represent anyone or anything but himself.

                  Comment


                  • #11
                    @Kev000
                    It looks like nGhost is gaining exposure and interest from mp3car forum users. I think later versions of nGhost (perhaps version 3?) will inspire users to make the jump to linux and ultimately write plug-ins (hence the purpose of this thread).

                    I do have a suggestion for a future thread. Many people continue to use Windows front ends because the best front ends RUN on Windows. In the future, I think it would help users to see a chart/comparison of what nGhost can do compared to, say, Ride Runner or Centrafuse. Once users see a "feature" comparison, I think the switch will be easier. With this increased interest I'm hoping there will be more exposure, user created plug-ins, etc.

                    What do you think?

                    Comment


                    • #12
                      Originally posted by matt11601 View Post
                      @Kev000
                      Many people continue to use Windows front ends because the best front ends RUN on Windows. In the future, I think it would help users to see a chart/comparison of what nGhost can do compared to, say, Ride Runner or Centrafuse. Once users see a "feature" comparison, I think the switch will be easier. With this increased interest I'm hoping there will be more exposure, user created plug-ins, etc.

                      What do you think?
                      I agree, but also disagree. While I have used different flavors of linux in the past - I know Windows inside and out. The amount of time it would take me to get a good setup using linux that I was happy and familiar with - Outweighs the amount of time i'd like to put into it unfortunately.

                      When something breaks or doesn't work in windows - I can fix it in minutes. When somethings not working right, won't install correct or gives me issues - takes me hours/days to figure out.

                      I understand than linux is much more efficient than windows, and everything is endless and open ended - But I just don't have the time or patience to figure it all out. I ran Ubuntu ("arguably" the most newb friendly version of linux) for a solid month before I switched back. I still don't think i'd be able to install an application without some help.

                      Comment


                      • #13
                        Originally posted by kev000 View Post
                        nGhost3 probably won't run well on windows. This is because while other frontends hide/mask the shell, nGhost IS the shell and windows, well, doesn't play nice with others. Someone with a lot more windows knowledge than me could probably explain why killing the windows shell (iirc explorer.exe) is a bad idea.
                        Yes, explorer.exe is the Windows shell. That's configurable though, you can have it start nghost3.exe instead of explorer.exe if you want. Explorer would no longer start up, unless of course you launch it yourself, and killing nghost.exe would then have the same side-effects as killing explorer.exe (haven't messed with this in a long time, but if I recall correctly, Windows will automatically launch a new shell process if the first one dies).

                        Of course that assumes that you first create yourself an nghost.exe for Windows to use as the shell. But if you do that, then you can replace explorer.exe with your own shell pretty easily.

                        I'm guessing that the biggest three factors that guide which front end a developer writes a plug in for are:
                        1) Which front-ends have the most users? (if they're in it for the satisfaction that comes from having people use their code)
                        2) Which front-end does the individual developer like best (if they're in it for the satisfaction of using something that they wrote, or something that has a feature that they particularly want)
                        3) Which front-ends have the most developer-friendly API and documentation? (if speed of development is a big motivator)

                        Any new front end is going to be in a tricky place with regard to (1) because users tend to want the front ends that have their favorite plugsins. Classic chicken-or-egg problem. But (2) and (3) and largely under your control, and I think you're doing the right thing by focusing on the core features (nav, music, phone) and creating APIs for both native code and C#.

                        I'm not using nGhost but I am keeping an eye on it and I look forward to watching it evolve.

                        Comment


                        • #14
                          Originally posted by matt11601 View Post
                          @Kev000
                          It looks like nGhost is gaining exposure and interest from mp3car forum users. I think later versions of nGhost (perhaps version 3?) will inspire users to make the jump to linux and ultimately write plug-ins (hence the purpose of this thread).

                          I do have a suggestion for a future thread. Many people continue to use Windows front ends because the best front ends RUN on Windows. In the future, I think it would help users to see a chart/comparison of what nGhost can do compared to, say, Ride Runner or Centrafuse. Once users see a "feature" comparison, I think the switch will be easier. With this increased interest I'm hoping there will be more exposure, user created plug-ins, etc.

                          What do you think?
                          Another thing that would help is a video walking through the features of nGhost. Start by picking a song or playlist from the music library, placing a call / taking a call, displaying nav, etc, then go into more detail about each feature. Swapping operating systems is a non-trivial undertaking, people are going to need to be convinced that it's worth investing the time.

                          A short video walkthrough would probably help. At least have screenshots. But I think something showing hands-on (literally) usage would help even more than screenshots.

                          Comment


                          • #15
                            I just reworked the animation sublayer in the nghost3 libraries to allow more advanced effects. This is a short demo featuring the "dialer" example and the new click effect:

                            [media]http://www.youtube.com/watch?v=nmKej6GJsTU[/media]
                            Former author of LinuxICE, nghost, nobdy.
                            Current author of Automotive Message Broker (AMB).
                            Works on Tizen IVI. Does not represent anyone or anything but himself.

                            Comment

                            Working...
                            X