rename main class
[chaz/yoink] / src / client.cc
similarity index 81%
rename from src/Main.cc
rename to src/client.cc
index 8b011638735b48061d32fdafcdbf8096095bbfaa..aa7d5273a071fa07f3643caa6f488f37cf5a06a3 100644 (file)
@@ -7,25 +7,17 @@
 *
 *****************************************************************************/
 
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif
-
 #include <cstdlib>     // atexit
 #include <exception>
 #include <functional>
 #include <iostream>
+#include <sstream>
 #include <string>
 
-#if PLATFORM_POSIX
-#include <termios.h>
-#else
-inline int isatty(int dummy) { return 0; }
-#endif
-
 #include <stlplus/portability/file_system.hpp>
 #include <stlplus/portability/subprocesses.hpp>
 
+#include <moof/compression.hh>
 #include <moof/image.hh>
 #include <moof/log.hh>
 #include <moof/modal_dialog.hh>
@@ -35,7 +27,18 @@ inline int isatty(int dummy) { return 0; }
 #include <moof/string.hh>
 #include <moof/video.hh>
 
-#include "Main.hh"
+#include "client.hh"
+
+       
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#if PLATFORM_POSIX
+#include <termios.h>
+#else
+inline int isatty(int dummy) { return 0; }
+#endif
 
 
 Main::Main(moof::settings& settings) :
@@ -43,16 +46,51 @@ Main::Main(moof::settings& settings) :
 {
        moof::dispatcher& dispatcher = moof::dispatcher::global();
        video_reloaded_ = dispatcher.add_target("video.newcontext",
-                                                                                       boost::bind(&Main::setup_opengl));
+                       boost::bind(&Main::setup_opengl));
        setup_opengl();
 
 #if ENABLE_HOTLOADING
        hotload_timer_.init(boost::bind(&moof::resource::reload_as_needed),
-                                               SCALAR(0.25),
-                                               moof::timer::repeat);
+                       SCALAR(0.25), moof::timer::repeat);
 #endif
 }
 
+void Main::setup_opengl()
+{
+       glEnable(GL_TEXTURE_2D);
+       glEnable(GL_DEPTH_TEST);
+       //glEnable(GL_CULL_FACE);
+
+       //glEnable(GL_POINT_SMOOTH);
+       //glEnable(GL_LINE_SMOOTH);
+       //glEnable(GL_POLYGON_SMOOTH);
+       //glShadeModel(GL_SMOOTH);
+
+       //glEnable(GL_BLEND);
+       //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+       glEnable(GL_ALPHA_TEST);
+       glAlphaFunc(GL_GREATER, 0.0);
+
+       glEnable(GL_MULTISAMPLE);
+
+       glClearColor(1.0, 0.0, 0.0, 1.0);
+
+       //glEnable(GL_LIGHTING);
+       //glEnable(GL_LIGHT0);
+
+       //glEnable(GL_COLOR_MATERIAL);
+       //glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
+
+       float amb[] = {0.1f, 0.1f, 0.1f, 1.0f};
+       float dif[] = {0.6f, 0.6f, 0.6f, 1.0f};
+       //glLightModelfv(GL_LIGHT_MODEL_AMBIENT, light);
+       glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
+       glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
+
+       float spec[] = {1.0f, 1.0f, 1.0f, 1.0f};
+       glLightfv(GL_LIGHT0, GL_SPECULAR, spec);
+}
+
 void Main::update(moof::scalar t, moof::scalar dt)
 {
        yoink.update(t, dt);
@@ -80,12 +118,12 @@ void Main::handle_event(const moof::event& event)
        case SDL_KEYUP:
                if (event.key.keysym.sym == SDLK_f)
                {
-                       moof::video::current()->toggle_fullscreen();
+                       moof::video::current().toggle_fullscreen();
                }
                else if (event.key.keysym.sym == SDLK_l)
                {
-                       moof::video::current()->toggle_cursor_captured();
-                       moof::video::current()->toggle_cursor_visible();
+                       moof::video::current().toggle_cursor_captured();
+                       moof::video::current().toggle_cursor_visible();
                }
                else if (event.key.keysym.sym == SDLK_ESCAPE)
                {
@@ -102,7 +140,8 @@ void Main::handle_event(const moof::event& event)
        }
 }
 
-std::string Main::search_paths()
+
+static std::string search_paths()
 {
        // Add search paths; they should be searched in this order:
        // 1. YOINK_DATADIR (environment)
@@ -122,7 +161,7 @@ std::string Main::search_paths()
        return path;
 }
 
-std::string Main::config_paths()
+static std::string config_paths()
 {
        // Build the list of config files to search for, in this order:
        // 1. YOINK_DATADIR/yoinkrc
@@ -147,41 +186,7 @@ std::string Main::config_paths()
        return path;
 }
 
-void Main::setup_opengl()
-{
-       glEnable(GL_TEXTURE_2D);
-       glEnable(GL_DEPTH_TEST);
-       //glEnable(GL_CULL_FACE);
-
-       glEnable(GL_POINT_SMOOTH);
-       glEnable(GL_LINE_SMOOTH);
-       glEnable(GL_POLYGON_SMOOTH);
-       glShadeModel(GL_SMOOTH);
-
-       //glEnable(GL_BLEND);
-       //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-       glEnable(GL_ALPHA_TEST);
-       glAlphaFunc(GL_GREATER, 0.0);
-
-       glClearColor(1.0, 0.0, 0.0, 1.0);
-
-       //glEnable(GL_LIGHTING);
-       glEnable(GL_LIGHT0);
-
-       glEnable(GL_COLOR_MATERIAL);
-       glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
-
-       float amb[] = {0.1f, 0.1f, 0.1f, 1.0f};
-       float dif[] = {0.6f, 0.6f, 0.6f, 1.0f};
-       //glLightModelfv(GL_LIGHT_MODEL_AMBIENT, light);
-       glLightfv(GL_LIGHT0, GL_AMBIENT, amb);
-       glLightfv(GL_LIGHT0, GL_DIFFUSE, dif);
-
-       float spec[] = {1.0f, 1.0f, 1.0f, 1.0f};
-       glLightfv(GL_LIGHT0, GL_SPECULAR, spec);
-}
-
-void Main::print_usage()
+static void print_usage()
 {
        std::cout << "Usage: "
                  << PACKAGE" [-h|--help] [-i|--info] [OPTION=VALUE]..."
@@ -203,18 +208,20 @@ void Main::print_usage()
                  << "See documentation for more options." << std::endl;
 }
 
-void Main::print_info(int argc, char* argv[])
+static void print_info(int argc, char* argv[])
 {
 #if INCLUDE_CONFIG_FILE
-       extern char data_config_mk[];
-       std::cout << data_config_mk;
+       extern size_t   data_config_gz_size;
+       extern char     data_config_gz[];
+       moof::inflate(data_config_gz, data_config_gz_size, std::cout);
 #else
-       std::cout << std::endl << "Configuration not included." << std::endl;
+       std::cout << std::endl << "No configuration available. :-("
+                 << std::endl;
 #endif
 }
 
 
-void hello()
+static void hello()
 {
        if (isatty(1) == 1) std::cout << "\033[94m";
        std::cout << std::endl << PACKAGE_STRING << std::endl
@@ -223,7 +230,7 @@ void hello()
                  << std::endl << moof::log::endl;
 }
 
-void goodbye()
+static void goodbye()
 {
        if (isatty(1) == 1) std::cout << "\033[94m";
        std::cout << std::endl << "Goodbye." << std::endl << moof::log::endl;
@@ -237,12 +244,12 @@ int main(int argc, char* argv[])
                std::string arg(argv[1]);
                if (arg == "-h" || arg == "--help")
                {
-                       Main::print_usage();
+                       print_usage();
                        return 0;
                }
                else if (arg == "-i" || arg == "--info")
                {
-                       Main::print_info(argc, argv);
+                       print_info(argc, argv);
                        return 0;
                }
        }
@@ -252,14 +259,16 @@ int main(int argc, char* argv[])
 
        moof::backend backend;
 
-       moof::resource::set_search_paths(Main::search_paths());
+       moof::resource::set_search_paths(search_paths());
 
-       moof::settings settings(argc, argv, Main::config_paths());
+       moof::settings settings(argc, argv, config_paths());
 
        enum moof::log::level logLevel = moof::log::info;
        settings.get("loglevel", logLevel);
        moof::log::level(logLevel);
 
+       std::cout.precision(10);
+
        try
        {
                moof::image_handle icon("yoink", "png");
@@ -269,7 +278,10 @@ int main(int argc, char* argv[])
 
                class moof::video::attributes attributes(settings);
                moof::video video(PACKAGE_STRING, attributes);
-               video.show_fps(true);
+
+               bool showfps = false;
+               settings.get("showfps", showfps);
+               video.show_fps(showfps);
 
                Main app(settings);
                return app.run();
This page took 0.024163 seconds and 4 git commands to generate.