Announcement

Collapse
No announcement yet.

Starting Front End From Scratch

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

  • Starting Front End From Scratch

    I'm very new to the linux system but I understand how the file system works and other absolute basics. I've decided that I'm going to program a complete front end from scratch as a project for myself. Don't worry - I have lots of time on my hands to complete it.

    What I'm having major difficulties in understanding at the moment is how to go about making the front end GUI. I will/have been learning C at uni so i know enopugh of that to write a "hello world" script at the moment. Preferrebly would like to program in C as its more familiar to me than other things like perl and python. Is it possible to make a frontend GUI without running a nix desktop program like GNOME or X or whatever its called.

    What suggestions for distro and language do you have??? Any links to places that can help me decide for myself? No information i've come across makes sense to a newbie like myself.

    I basically want the front end to just be able to play mp3's and have a media library - no movie playback - no GPS etc etc - although i'd like to possibly update it late with power window controls etc etc

    Any help is greatly appreciated

    Spuzzdawg

  • #2
    Good luck man - sounds like you're going to have a ton or learning and growing to do as a programmer. I've done a super small amount of programming in Linux, so I can't offer any suggestions.

    I just wanted to wish you well - and can't wait to see some results.
    www.mobile-effects.com

    Free file hosting, picture gallery hosting for installs, PM me.

    Internet's first Front End Skin browser, featured installs, downloads, links, informative articles - all free to registered users.

    Comment


    • #3
      Check out DirectFB (www.directfb.org) for GUI without X. It is a C API, so that will fit right in with your desired language.

      --m

      Comment


      • #4
        Direct FB looks good but it seems to be very limited in the hardware that it supports and i don't think i can guarantee that the computer i use to program my frontend and the car pc are compatable with it.

        Does QT require a windowing system to be running?

        Comment


        • #5
          "X" is a gui server.
          "Gnome" and "KDE" are window managers, i.e. how the "X" gui looks to you as the user.

          I've been experimenting in this area as well, even though I'm a clueless Linux monkey... and I found "glade" and "glade2" to be interesting to play with, as far as making a gui.

          Comment


          • #6
            So does that mean that its possible to have X running but not something like Gnome which means that i could program my own GUI without having a desktop and all that???

            A little confused as to how it all works

            Comment


            • #7
              Originally posted by spuzzdawg
              Direct FB looks good but it seems to be very limited in the hardware that it supports and i don't think i can guarantee that the computer i use to program my frontend and the car pc are compatable with it.

              Does QT require a windowing system to be running?
              I second the vote for DirectFB, the api is not bad at all to learn, and there are several tutorials to get you going.

              The acceleration is hardware dependent, but DirectFB also supports hardware generically using VESA (without acceleration). I believe pretty much most any video card available today supports VESA. The way the software works is it uses the framebuffer, which, as I understand it, means it writes directly to video card RAM, and makes calls to the video card cpu to execute drawing, etc.

              There are a couple other framebuffer api's available, such as SDL. Do a search on framebuffer. A version of QT is supported as well, I believe. X has several features that may not be as useful for an in-vehicle application.

              Comment


              • #8
                spuzzdawg: I am working on a GUI Toolkit that runs on X, Windows, DirectFB, and VFD screens. It's been under development for around a year. The backend is very solid and I'm currently working on adding more widgets and doing more testing. You may want to consider using it. You could use QT or Gnome, but you will be forced to run X. If you don't want to run X then (currently) you have to do the gui from scratch. A TON of work..

                Writing a media player is not as straightforward as it sounds. A frontend is a bit easier. But still, if you can only do a "hello world" program (and basic logic) then there is still alot of learning to do.

                Comment


                • #9
                  Not that i'm promoting Qt. (I'd go DirectFB), but there is an embedded version that will run on a framebuffer. So no X.

                  --Zims
                  --------------------------------------------------------------------------------
                  Now, Where are my Pants?

                  Comment


                  • #10
                    Originally posted by spuzzdawg
                    So does that mean that its possible to have X running but not something like Gnome which means that i could program my own GUI without having a desktop and all that???

                    A little confused as to how it all works

                    Yes actually, your front-end could be the only application running, and therefore would not need a window manager...ie, if there are not multiple windows to manage there is not a true need for a window manager.

                    --m

                    Comment


                    • #11
                      Originally posted by spuzzdawg
                      So does that mean that its possible to have X running but not something like Gnome which means that i could program my own GUI without having a desktop and all that???

                      A little confused as to how it all works
                      Yes, and you can still use a toolkit such as Qt, gtk, or Xaw. Going by your experience I would recommend using X and Qt (or QtEmbedded without X). Three obvious advantages of using an existing toolkit with X are ease of use, support offered by these technologies, and the ability to run X applications (web browsers, etc..) Two disadvantages are startup speed and overall bulk.

                      Comment


                      • #12
                        First thing to look at is PyGame, designed to build games in Python. PyGame is built on top of SDL, which in turn is built on top of Direct FB (and also, conveniently enough, Windows)

                        BTW, PyCar is built using PyGame, so that's a good place to see what the system is capable of, even it it doesn't do what you want.

                        -g.

                        Comment


                        • #13
                          TheLLama - I know i have a ton of learning to do - Time isn't a problem as I'm not allowed to modify the car until its paid off - So i was thinking of getting the hardware and programming the front end then doing the install as the very last step.

                          I posted the question so that i could hopefully get a place to start looking into different things - my own research was sorta going nowhere - you've given many different options to think about - thankyou

                          Comment


                          • #14
                            Originally posted by spuzzdawg
                            TheLLama - I know i have a ton of learning to do - Time isn't a problem as I'm not allowed to modify the car until its paid off - So i was thinking of getting the hardware and programming the front end then doing the install as the very last step.

                            I posted the question so that i could hopefully get a place to start looking into different things - my own research was sorta going nowhere - you've given many different options to think about - thankyou
                            I don't know how much C++ knowledge you have. If you are familiar with it, or if you are willing to learn how Object-oriented languages work then I would just say use Qt. Tutorial-style examples are available here: http://doc.trolltech.com/4.0/examples.html

                            If you want to stick with C then maybe you would like gtk. The tutorial is here: http://www.gtkmm.org/docs/gtkmm-2.4/...tml/index.html

                            Take a look at the examples, see what is more comfortable with you. BTW, you can get to those pages by clicking Documentation on the main site.

                            Comment


                            • #15
                              After loking briefly over each of the options pointed out to me - I'd have to say that using Python with Pygame seems to be easiest option. It would appear that Python can achieve the same thing as other languages with smaller amounts of code. As far as I understand it I'll have no issue getting Python to run GUI without X and I think python is fairly cross platform so i can program on my win32 machine. It seems at a glance that i would be able to use Pymedia for playing audio and that easily - just like pycar.

                              Please correct me if I'm wrong or you think you should make a suggestion. My decision to use python is by no means set in concrete. Thanks in the mean time for all your help

                              Comment

                              Working...
                              X