Changeset 4777 for libcaca


Ignore:
Timestamp:
Mar 6, 2011, 9:17:14 AM (8 years ago)
Author:
Jean-Yves Lamoureux
Message:
  • Added command line parsing (--dateformat, --font, --help, --version)
  • Center font
Location:
libcaca/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/XCode/libcacaXCode.xcodeproj/project.pbxproj

    r4156 r4777  
    3434                E64A33E410DA861600325A66 /* klibc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = klibc.c; sourceTree = "<group>"; };
    3535                E68A871110CD1F040047EB17 /* mouse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mouse.c; path = ../examples/mouse.c; sourceTree = SOURCE_ROOT; };
     36                E68B916D13237280006B282B /* cacaclock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cacaclock.c; path = ../src/cacaclock.c; sourceTree = SOURCE_ROOT; };
    3637                E6A7681710B560BB008B6DEC /* caca++.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "caca++.cpp"; path = "../cxx/caca++.cpp"; sourceTree = SOURCE_ROOT; };
    3738                E6A7681810B560BB008B6DEC /* caca++.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "caca++.h"; path = "../cxx/caca++.h"; sourceTree = SOURCE_ROOT; };
     
    100101                E6DB663310AECCD700B6F924 /* common-image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "common-image.h"; path = "../src/common-image.h"; sourceTree = SOURCE_ROOT; };
    101102                E6DB663410AECCD700B6F924 /* img2txt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = img2txt.c; path = ../src/img2txt.c; sourceTree = SOURCE_ROOT; };
    102                 E6DB663510AECCD700B6F924 /* mygetopt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mygetopt.c; path = ../src/mygetopt.c; sourceTree = SOURCE_ROOT; };
    103                 E6DB663610AECCD700B6F924 /* mygetopt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mygetopt.h; path = ../src/mygetopt.h; sourceTree = SOURCE_ROOT; };
    104103                E6DB663710AECCD700B6F924 /* texture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = texture.h; path = ../src/texture.h; sourceTree = SOURCE_ROOT; };
    105104                E6DB663910AECD1F00B6F924 /* trifiller.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = trifiller.c; path = ../examples/trifiller.c; sourceTree = SOURCE_ROOT; wrapsLines = 0; };
     
    300299                        isa = PBXGroup;
    301300                        children = (
     301                                E68B916D13237280006B282B /* cacaclock.c */,
    302302                                E6DB66FF10B17BEA00B6F924 /* Makefile.am */,
    303303                                E6DB662C10AECCD700B6F924 /* aafire.c */,
     
    310310                                E6DB663310AECCD700B6F924 /* common-image.h */,
    311311                                E6DB663410AECCD700B6F924 /* img2txt.c */,
    312                                 E6DB663510AECCD700B6F924 /* mygetopt.c */,
    313                                 E6DB663610AECCD700B6F924 /* mygetopt.h */,
    314312                                E6DB663710AECCD700B6F924 /* texture.h */,
    315313                        );
  • libcaca/trunk/configure.ac

    r4686 r4777  
    269269      MACOSX_SDK="${MACOSX_SDK:-/Developer/SDKs/MacOSX10.5.sdk}"
    270270      GCC_VERSION="${GCC_VERSION:-4.0}"
    271       ARCH="${ARCH:--arch i386}"
     271      ARCH="${ARCH:--arch x86_64}"
    272272      MACOSX_SDK_CFLAGS="${MACOSX_SDK_CFLAGS:--isysroot ${MACOSX_SDK}}"
    273273      MACOSX_SDK_CXXFLAGS="${MACOSX_SDK_CXXFLAGS:-${MACOSX_SDK_CFLAGS}}"
     
    276276      MACOSX_SDK="${MACOSX_SDK:-/Developer/SDKs/MacOSX10.6.sdk}"
    277277      GCC_VERSION="${GCC_VERSION:-4.0}"
    278       ARCH="${ARCH:--arch i386}"
     278      ARCH="${ARCH:--arch x86_64}"
    279279      MACOSX_SDK_CFLAGS="${MACOSX_SDK_CFLAGS:--isysroot ${MACOSX_SDK}}"
    280280      MACOSX_SDK_CXXFLAGS="${MACOSX_SDK_CXXFLAGS:-${MACOSX_SDK_CFLAGS}}"
     
    285285    MACOSX_SDK_FRAMEWORKS="${MACOSX_SDK_FRAMEWORKS:--F${MACOSX_SDK}/System/Library/Frameworks}"
    286286    CPPFLAGS="${CPPFLAGS} ${ARCH} ${MACOSX_SDK_FRAMEWORKS}"
    287     CFLAGS="${CFLAGS} ${MACOSX_SDK_CFLAGS}"
    288     CXXFLAGS="${CXXFLAGS} ${MACOSX_SDK_CXXFLAGS}"
    289     OBJCFLAGS="${OBJCFLAGS} ${MACOSX_SDK_CFLAGS}"
     287    CFLAGS="${CFLAGS} ${MACOSX_SDK_CFLAGS} -mmacosx-version-min=10.5"
     288    CXXFLAGS="${CXXFLAGS} ${MACOSX_SDK_CXXFLAGS} -mmacosx-version-min=10.5"
     289    OBJCFLAGS="${OBJCFLAGS} ${MACOSX_SDK_CFLAGS} -mmacosx-version-min=10.5"
    290290    LDFLAGS="${ARCH} ${MACOSX_SDK_LDFLAGS} ${LDFLAGS}"
    291291    AC_DEFINE(USE_COCOA, 1, Define to 1 to activate the Cocoa backend driver)
  • libcaca/trunk/src/cacaclock.c

    r4775 r4777  
    2424#define CACACLOCKVERSION "0.1"
    2525
     26static void usage(int argc, char **argv)
     27{
     28        char const * const * list;
    2629
    27 static char* get_date(void) {
     30        fprintf(stderr, "Usage: %s [OPTIONS]... <IMAGE>\n", argv[0]);
     31        fprintf(stderr, "Convert IMAGE to any text based available format.\n");
     32        fprintf(stderr, "Example : %s -w 80 -f ansi ./caca.png\n\n", argv[0]);
     33        fprintf(stderr, "Options:\n");
     34        fprintf(stderr, "  -h, --help\t\t\tThis help\n");
     35        fprintf(stderr, "  -v, --version\t\t\tVersion of the program\n");
     36        fprintf(stderr, "  -f, --font=FONT\t\tUse FONT for time display\n");
     37        fprintf(stderr, "  -d, --dateformat=FORMAT\tUse FORMAT as strftime argument (default %%R:%%S)\n");
     38}
     39
     40
     41static void version(void)
     42{
     43        printf(
     44                        "cacaclock Copyright 2011 Jean-Yves Lamoureux\n"
     45                        "Internet: <jylam@lnxscene.org> Version: %s (libcaca %s), date: %s\n"
     46                        "\n"
     47                        "cacaclock, along with its documentation, may be freely copied and distributed.\n"
     48                        "\n"
     49                        "The latest version of cacaclock is available from the web site,\n"
     50                        "        http://caca.zoy.org/wiki/libcaca in the libcaca package.\n"
     51                        "\n",
     52                        CACACLOCKVERSION, caca_get_version(), __DATE__);
     53}
     54
     55
     56
     57static char* get_date(char *format) {
    2858        time_t  currtime;                                                   
    2959        char *charTime = malloc(101);                                     
    3060
    3161        time(&currtime);                                                     
    32         strftime(charTime, 100,"%R:%S",localtime(&currtime));
     62        strftime(charTime, 100,format,localtime(&currtime));
    3363
    3464        return charTime;
     
    4070        caca_canvas_t *figcv;
    4171        caca_display_t *dp;
    42         uint32_t w, h;
     72        uint32_t w, h, fw, fh;
     73
     74        char *format = "%R:%S";
     75        char *font   = "/usr/share/figlet/mono12.tlf";
    4376
    4477
    45         char *font = "/usr/share/figlet/mono12.tlf";
    46         if(argc==2) font = argv[1];
     78        for(;;)
     79        {
     80                int option_index = 0;
     81                static struct caca_option long_options[] =
     82                {
     83                        { "font",        1, NULL, 'f' },
     84                        { "dateformat",  1, NULL, 'd' },
     85                        { "help",        0, NULL, 'h' },
     86                        { "version",     0, NULL, 'v' },
     87                };
     88                int c = caca_getopt(argc, argv, "f:d:hv",
     89                                long_options, &option_index);
     90                if(c == -1)
     91                        break;
     92
     93                switch(c)
     94                {
     95                        case 'h': /* --help       */
     96                                usage(argc, argv);
     97                                return 0;
     98                                break;
     99                        case 'v': /* --version    */
     100                                version();
     101                                return 0;
     102                                break;
     103                        case 'f': /* --font       */
     104                                font = caca_optarg;
     105                                break;
     106                        case 'd': /* --dateformat */
     107                                format = caca_optarg;
     108                                break;
     109                        default:
     110                                return 1;
     111                                break;
     112                }
     113        }
     114
    47115
    48116
     
    68136        }
    69137
    70         w = caca_get_canvas_width (cv);
    71         h = caca_get_canvas_height(cv);
    72 
     138        caca_set_color_ansi(figcv, CACA_DEFAULT, CACA_DEFAULT);
     139        caca_clear_canvas(cv);
    73140        for(;;) {
    74141                caca_event_t ev;
     
    80147                                goto end;
    81148                }
    82                 char *d = get_date();
     149                char *d = get_date(format);
    83150                uint32_t o = 0;
    84151
     
    91158                while(d[o])
    92159                { 
    93                         caca_set_color_ansi(figcv, CACA_WHITE, CACA_TRANSPARENT);
    94160                        caca_put_figchar(figcv, d[o++]);
    95161                }
    96162                caca_flush_figlet (figcv);
     163                fw = caca_get_canvas_width (figcv);
     164                fh = caca_get_canvas_height(figcv);     
     165
    97166                free(d);
    98                 //TODO center etc.
    99                 caca_blit(cv, 0, 0, figcv, NULL);
     167
     168                w = caca_get_canvas_width (cv);
     169                h = caca_get_canvas_height(cv);
     170                uint32_t x = (w/2) - (fw/2);
     171                uint32_t y = (h/2) - (fh/2);
     172
     173                caca_blit(cv, x, y, figcv, NULL);
    100174                caca_refresh_display(dp);
    101175                usleep(250000);
Note: See TracChangeset for help on using the changeset viewer.