[xiph-commits] r17662 - trunk/squishyball

xiphmont at svn.xiph.org xiphmont at svn.xiph.org
Fri Nov 26 08:29:23 PST 2010


Author: xiphmont
Date: 2010-11-26 08:29:22 -0800 (Fri, 26 Nov 2010)
New Revision: 17662

Added:
   trunk/squishyball/main.h
Removed:
   trunk/squishyball/tty.h
Modified:
   trunk/squishyball/Makefile.am
   trunk/squishyball/main.c
   trunk/squishyball/mincurses.c
   trunk/squishyball/mincurses.h
   trunk/squishyball/tty.c
Log:
Get more tty work/bugfixes into SVN



Modified: trunk/squishyball/Makefile.am
===================================================================
--- trunk/squishyball/Makefile.am	2010-11-25 22:26:20 UTC (rev 17661)
+++ trunk/squishyball/Makefile.am	2010-11-26 16:29:22 UTC (rev 17662)
@@ -8,7 +8,7 @@
 mandir = @MANDIR@
 man_MANS = squishyball.1
 
-squishyball_SOURCES = main.c tty.c tty.h mincurses.c mincurses.h
+squishyball_SOURCES = main.c main.h tty.c mincurses.c mincurses.h
 
 debug:
 	$(MAKE) all CFLAGS="@DEBUG@"

Modified: trunk/squishyball/main.c
===================================================================
--- trunk/squishyball/main.c	2010-11-25 22:26:20 UTC (rev 17661)
+++ trunk/squishyball/main.c	2010-11-26 16:29:22 UTC (rev 17662)
@@ -19,7 +19,7 @@
 #include <signal.h>
 #include <ncurses.h>
 #include "mincurses.h"
-#include "tty.h"
+#include "main.h"
 
 #define MAXFILES 10
 static int verbose=0;
@@ -34,19 +34,6 @@
   return 0;
 }
 
-typedef struct pcm_struct pcm_t;
-
-struct pcm_struct {
-  char *path;
-  int rate;
-  int bits; /* negative indicates IEEE754 float */
-  int ch;
-  char *matrix;
-  unsigned char *data;
-  off_t size;
-  int dither;
-};
-
 void free_pcm(pcm_t *pcm){
   if(pcm){
     if(pcm->path)free(pcm->path);
@@ -1409,7 +1396,7 @@
           "  -e --end-time <time>   : Set sample end time for playback\n"
           "  -h --help              : Print this usage information.\n"
           "  -M --mark-flip         : Mark transitions between samples with\n"
-          "                           a short period of silence (default)\n"
+          "                           a short period of silence\n"
           "  -n --trials <n>        : Set desired number of trials\n"
           "                           (default: 10)\n"
           "  -r --restart-after     : Restart playback from sample start\n"
@@ -1420,7 +1407,7 @@
           "  -s --start-time <time> : Set start time within sample for\n"
           "                           playback\n"
           "  -S --seamless-flip     : Do not mark transitions between samples;\n"
-          "                           flip with a seamless crossfade\n"
+          "                           flip with a seamless crossfade (default)\n"
           "  -t --force-truncate    : Always truncate (never dither) when\n"
           "                           down-converting samples to 16-bit for\n"
           "                           playback.\n"
@@ -1458,22 +1445,6 @@
           ,VERSION);
 }
 
-static char timebuffer[80];
-static char *make_time_string(double s){
-  long hrs=s/60/60;
-  long min=s/60-hrs*60;
-  long sec=s-hrs*60*60-min*60;
-  long hsec=(s-(int)s)*100;
-  if(hrs>0){
-    snprintf(timebuffer,80,"%ld:%02ld:%02ld.%02ld",hrs,min,sec,hsec);
-  }else if(min>0){
-    snprintf(timebuffer,80,"%ld:%02ld.%02ld",min,sec,hsec);
-  }else{
-    snprintf(timebuffer,80,"%ld.%02ld",sec,hsec);
-  }
-  return timebuffer;
-}
-
 static int parse_time(char *s,double *t){
   double      secf;
   long        secl;
@@ -1917,7 +1888,7 @@
   int force_dither=0;
   int force_truncate=0;
   int restart_mode=0;
-  int beep_mode=1;
+  int beep_mode=3;
   int tests=10;
   double start=0;
   double end=-1;
@@ -2092,7 +2063,7 @@
       for(i=0;i<test_files;i++){
         if(verbose)
         fprintf(stderr,"\t%s: %s\n",pcm[i]->path,
-                make_time_string((double)pcm[i]->size/pcm[i]->ch/((pcm[i]->bits+7)/8)/pcm[i]->rate));
+                make_time_string((double)pcm[i]->size/pcm[i]->ch/((pcm[i]->bits+7)/8)/pcm[i]->rate,0));
         pcm[i]->size=n;
       }
       if(verbose)
@@ -2105,7 +2076,11 @@
 
   /* set up terminal */
   atexit(min_remove_panel);
-  min_init_panel(5);
+  {
+    double len=pcm[0]->size/((pcm[0]->bits+7)/8)/pcm[0]->ch/(double)pcm[0]->rate;
+    panel_init(pcm, test_files, test_mode, start, end>0 ? end : len, len,
+               beep_mode, restart_mode, tests, "");
+  }
 
   /* set up shared state */
   memset(&state,0,sizeof(state));

Added: trunk/squishyball/main.h
===================================================================
--- trunk/squishyball/main.h	                        (rev 0)
+++ trunk/squishyball/main.h	2010-11-26 16:29:22 UTC (rev 17662)
@@ -0,0 +1,55 @@
+/*
+ *
+ *  squishyball
+ *
+ *      Copyright (C) 2010 Xiph.Org
+ *
+ *  squishyball is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2, or (at your option)
+ *  any later version.
+ *
+ *  squishyball is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with rtrecord; see the file COPYING.  If not, write to the
+ *  Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *
+ */
+
+#ifndef _SB__H_
+#define _SB__H_
+
+typedef struct pcm_struct pcm_t;
+
+struct pcm_struct {
+  char *path;
+  int rate;
+  int bits; /* negative indicates IEEE754 float */
+  int ch;
+  char *matrix;
+  unsigned char *data;
+  off_t size;
+  int dither;
+};
+
+
+extern char *make_time_string(double s,int pad);
+extern void panel_init(pcm_t **pcm, int test_files, int test_mode, double start, double end, double size,
+                       int flip_mode,int repeat_mode,int trials,char *trial_list);
+extern void panel_update_playing(char c);
+extern void panel_update_start(double time);
+extern void panel_update_current(double time);
+extern void panel_update_end(double time);
+extern void panel_update_repeat_mode(int mode);
+extern void panel_update_flip_mode(int mode);
+extern void panel_update_trials(char *trial_list);
+extern void panel_update_sample(int n);
+extern void panel_update_pause(int flag);
+
+
+#endif

Modified: trunk/squishyball/mincurses.c
===================================================================
--- trunk/squishyball/mincurses.c	2010-11-25 22:26:20 UTC (rev 17661)
+++ trunk/squishyball/mincurses.c	2010-11-26 16:29:22 UTC (rev 17662)
@@ -395,9 +395,9 @@
 
 void min_remove_panel(){
   if(initted){
-    if(delete_line){
+    if(parm_delete_line){
       min_mvcur(0,0);
-      min_putp(tparm(delete_line,panel_lines));
+      min_putp(tparm(parm_delete_line,panel_lines));
     }
     min_showcur();
     min_flush();
@@ -454,7 +454,14 @@
     return 1;
 }
 
-static int unset_attributes(){
+static int fg=-1;
+static int bg=-1;
+static int bold=0;
+static int blink=0;
+static int rev=0;
+static int ul=0;
+
+static int unset(){
   if(exit_attribute_mode){
     min_putp(exit_attribute_mode);
     return 0;
@@ -462,25 +469,128 @@
     return 1;
 }
 
+int min_unset(){
+  fg=-1;
+  bg=-1;
+  bold=0;
+  if(ul){
+    min_underline(0);
+    ul=0;
+  }
+  return unset();
+}
+
+static int reset(){
+  int ret=0;
+  if(fg>=0)ret|=min_fg(fg);
+  if(bg>=0)ret|=min_bg(bg);
+  if(bold)ret|=min_bold(1);
+  if(blink)ret|=min_blink(1);
+  if(rev)ret|=min_reverse(1);
+  return ret;
+}
+
 int min_fg(int c){
-  if(set_a_foreground){
-    min_putp(tparm(set_a_foreground,c));
-    return 0;
-  }else
-    return 1;
+  int ret=0;
+  if(c<0 && fg>=0){
+    fg=-1;
+    ret|=unset();
+    ret|=reset();
+  }else{
+    if(set_a_foreground){
+      fg=c;
+      min_putp(tparm(set_a_foreground,c));
+    }else
+      ret=1;
+  }
+  return ret;
 }
 
 int min_bg(int c){
-  if(set_a_background){
-    min_putp(tparm(set_a_background,c));
-    return 0;
-  }else
-    return 1;
+  int ret=0;
+  if(c<0 && bg>=0){
+    bg=-1;
+    ret|=unset();
+    ret|=reset();
+  }else{
+    if(set_a_background){
+      bg=c;
+      min_putp(tparm(set_a_background,c));
+    }else
+      ret=1;
+  }
+  return ret;
 }
 
-void min_color(int f,int b){
-  if(f==-1 || b==-1) unset_attributes();
-  if(f!=-1) min_fg(f);
-  if(b!=-1) min_bg(b);
+int min_bold(int flag){
+  int ret=0;
+  if(!flag && bold){
+    bold=0;
+    ret|=unset();
+    ret|=reset();
+  }else{
+    if(enter_bold_mode){
+      min_putp(enter_bold_mode);
+      bold=1;
+    }else
+      ret=1;
+  }
+  return ret;
 }
 
+int min_color(int f,int b){
+  int ret=0;
+  ret|=min_fg(f);
+  ret|=min_bg(b);
+  return ret;
+}
+
+int min_blink(int flag){
+  int ret=0;
+  if(!flag && blink){
+    blink=0;
+    ret|=unset();
+    ret|=reset();
+  }else{
+    if(enter_blink_mode){
+      min_putp(enter_blink_mode);
+      blink=1;
+    }else
+      ret=1;
+  }
+  return ret;
+}
+
+int min_underline(int flag){
+  if(flag){
+    if(enter_underline_mode){
+      ul=1;
+      min_putp(enter_underline_mode);
+      return 0;
+    }else
+      return 1;
+  }else{
+    if(exit_underline_mode){
+      ul=0;
+      min_putp(exit_underline_mode);
+      return 0;
+    }else
+      return 1;
+  }
+}
+
+int min_reverse(int flag){
+  int ret=0;
+  if(!flag && rev){
+    rev=0;
+    ret|=unset();
+    ret|=reset();
+  }else{
+    if(enter_reverse_mode){
+      min_putp(enter_reverse_mode);
+      rev=1;
+    }else
+      ret=1;
+  }
+  return ret;
+}

Modified: trunk/squishyball/mincurses.h
===================================================================
--- trunk/squishyball/mincurses.h	2010-11-25 22:26:20 UTC (rev 17661)
+++ trunk/squishyball/mincurses.h	2010-11-26 16:29:22 UTC (rev 17662)
@@ -25,6 +25,7 @@
 #ifndef _MINCURSES_H_
 #define _MINCURSES_H_
 
+extern int min_flush();
 extern int min_getch(int nonblock);
 extern int min_putchar(int c);
 extern int min_putp(const char *str);
@@ -39,8 +40,13 @@
 extern int min_clrbol(void);
 extern int min_gfxmode(void);
 extern int min_textmode(void);
+
+extern int min_unset(void);
 extern int min_fg(int c);
 extern int min_bg(int c);
-extern void min_color(int f,int b);
-
+extern int min_color(int f,int b);
+extern int min_bold(int flag);
+extern int min_blink(int flag);
+extern int min_underline(int flag);
+extern int min_reverse(int flag);
 #endif

Modified: trunk/squishyball/tty.c
===================================================================
--- trunk/squishyball/tty.c	2010-11-25 22:26:20 UTC (rev 17661)
+++ trunk/squishyball/tty.c	2010-11-26 16:29:22 UTC (rev 17662)
@@ -31,9 +31,45 @@
 #include <unistd.h>
 #include <math.h>
 #include <errno.h>
+#include "main.h"
 #include "mincurses.h"
 
-#if 0
+/*
+
+- CASUAL COMPARISON MODE ------------------------------------- 2ch 24bit 44100 -
+
+PLAYING A           00:00:00.00 | 00:00:00.00 | 00:00:00.00          00:00:00.00
+OOOOOOOOOOOOOOOOOOOHHHHHHHHHHHHH|HHHHHHHHHHHHHHHHHHHHH00000000000000000000000000
+                                ^
++------------------------------------------------- REPEAT AFTER - SILENT FLIP -+
+| 6/10 trials: ABABAA                                                          |
++------------------------------------------------------------------------------+
+
+*/
+
+static int p_tm,p_ch,p_b,p_r,p_fm,p_rm,pcm_n,p_tr,p_tn,p_pau;
+static double p_st,p_cur,p_end,p_len;
+static char p_pl, *p_tl;
+static pcm_t **pcm_p;
+
+static char timebuffer[80];
+char *make_time_string(double s,int pad){
+  long hrs=s/60/60;
+  long min=s/60-hrs*60;
+  long sec=s-hrs*60*60-min*60;
+  long hsec=(s-(int)s)*100;
+  if(pad){
+    snprintf(timebuffer,80,"%02ld:%02ld:%02ld.%02ld",hrs,min,sec,hsec);
+  }else if(hrs>0){
+    snprintf(timebuffer,80,"%ld:%02ld:%02ld.%02ld",hrs,min,sec,hsec);
+  }else if(min>0){
+    snprintf(timebuffer,80,"%ld:%02ld.%02ld",min,sec,hsec);
+  }else{
+    snprintf(timebuffer,80,"%ld.%02ld",sec,hsec);
+  }
+  return timebuffer;
+}
+
 void fill(char *buf,char c,int cols){
   int i;
   for(i=0;i<cols;i++)
@@ -41,7 +77,7 @@
   buf[i]=0;
 }
 
-void printover(char *buf,int pos, char *s){
+void print_into(char *buf,int pos, char *s){
   int len = strlen(buf);
   int len2 = strlen(s);
   int i;
@@ -49,32 +85,344 @@
     buf[i+pos]=s[i];
 }
 
-void printhline(char *s,int textcolor){
-  int pos=0,last=0;
+void panel_update_playing(char c){
+}
 
-  while(s[pos]){
-    /* draw line */
-    while(s[pos] && s[pos]=='_')pos++;
-    if(pos>last){
-      if(!min_gfxmode()){
-	for(;last<pos;last++)
-	  min_putchar(ACS_HLINE);
-	min_textmode();
-      }else{
-	min_write(s+last,pos-last);
-      }
+void panel_update_start(double time){
+
+}
+void panel_update_current(double time){
+
+}
+void panel_update_end(double time){
+
+}
+
+void panel_update_repeat_mode(int mode){
+
+}
+
+void panel_update_flip_mode(int mode){
+
+}
+
+void panel_update_trials(char *trial_list){
+
+}
+
+void panel_update_sample(int n){
+
+}
+void panel_update_pause(int flag){
+
+}
+
+static void draw_topbar(void){
+  char buf[columns+1];
+  char buf2[columns+1];
+
+  fill(buf,ACS_HLINE,columns);
+  min_mvcur(0,1);
+  min_gfxmode();
+  min_putstr(buf);
+  min_textmode();
+
+  min_mvcur(1,1);
+  switch(p_tm){
+  case 0:
+    min_putstr(" A/B MODE ");
+    break;
+  case 1:
+    min_putstr(" A/B/X MODE ");
+    break;
+  case 2:
+    min_putstr(" X/X/Y MODE ");
+    break;
+  case 3:
+    min_putstr(" CASUAL COMPARISON MODE ");
+    break;
+  }
+
+  sprintf(buf2," %dch %dbit %dHz ",p_ch,p_b,p_r);
+
+  min_mvcur(columns-strlen(buf2)-1,1);
+  min_putstr(buf2);
+}
+
+static void draw_timebar(void){
+  int pre = rint(p_st/p_len*columns);
+  int post = rint((p_len-p_end)/p_len*columns);
+  int cur = rint(p_cur/(p_len-1)*columns);
+  char buf[columns+1];
+  int i;
+
+  /* first line: spacing */
+  min_mvcur(0,2);
+  fill(buf,' ',columns);
+  min_putstr(buf);
+
+  /* second line: timing */
+  min_mvcur(0,3);
+  if(p_pau){
+    min_blink(1);
+    min_putstr("PAUSED   ");
+    min_blink(0);
+  }else{
+    min_putstr("PLAYING ");
+    switch(p_tm){
+    case 0: /* AB */
+    case 1: /* ABX */
+      min_putchar(p_pl+'A');
+      break;
+    case 2: /* XXY*/
+    case 3: /* Casual */
+      min_putchar(p_pl+'1');
+      break;
     }
+  }
 
-    /* draw text */
-    while(s[pos] && s[pos]!='_')pos++;
-    if(pos>last){
-      if(textcolor>=0)
-	min_fg(textcolor);
-      min_write(s+last,pos-last);
-      if(textcolor>=0)
-	min_color(-1,-1);
-      last = pos;
+  for(i=9;i<columns/2-19;i++)
+    min_putchar(' ');
+
+  if(p_st<=0.f){
+    min_fg(COLOR_CYAN);
+    min_putstr("xx:xx:xx.xx");
+    min_fg(-1);
+  }else{
+    char *time=make_time_string(p_st,1);
+    min_putstr(time);
+  }
+  min_putstr(" | ");
+  {
+    char *time=make_time_string(p_cur,1);
+    min_putstr(time);
+  }
+  min_putstr(" | ");
+  if(p_end>=p_len){
+    min_fg(COLOR_CYAN);
+    min_putstr("xx:xx:xx.xx");
+    min_fg(-1);
+  }else{
+    char *time=make_time_string(p_end,1);
+    min_putstr(time);
+  }
+
+  for(i=columns/2+20;i<columns-11;i++)
+    min_putchar(' ');
+  {
+    char *time=make_time_string(p_len,1);
+    min_putstr(time);
+  }
+
+  /* third line: indicator */
+  i=0;
+  min_mvcur(0,4);
+  if(pre>0){
+    min_bg(COLOR_CYAN);
+    while(i<pre){
+      min_putchar(' ');
+      i++;
     }
   }
+  min_color(COLOR_YELLOW,COLOR_BLACK);
+  min_bold(1);
+  while(i<cur){
+    min_putchar(' ');
+    i++;
+  }
+  min_putchar(ACS_VLINE);
+  i++;
+  while(i<(columns-post)){
+    min_putchar(' ');
+    i++;
+  }
+  min_bg(COLOR_CYAN);
+  while(i<columns){
+    min_putchar(' ');
+    i++;
+  }
+  min_bg(-1);
+
+  /* fourth line: spacing with indicator */
+  min_mvcur(0,5);
+  min_fg(COLOR_YELLOW);
+  min_bold(1);
+  i=0;
+  while(i<cur){
+    min_putchar(' ');
+    i++;
+  }
+  min_putchar(ACS_TTEE);
+  i++;
+  while(i<post){
+    min_putchar(' ');
+    i++;
+  }
+  min_unset();
 }
-#endif
+
+static void draw_trials_box(void){
+  char buf[columns+1];
+
+  /* top line of box */
+  fill(buf,ACS_HLINE,columns);
+  buf[0]=ACS_ULCORNER;
+  buf[columns-1]=ACS_URCORNER;
+
+  switch(p_rm){
+  case 0:
+    break;
+  case 1:
+    print_into(buf,columns-31," RESTART AFTER ");
+    break;
+  case 2:
+    print_into(buf,columns-31," RESTART EVERY ");
+    break;
+  }
+  switch(p_fm){
+  case 1:
+    print_into(buf,columns-12," MARK FLIP ");
+    break;
+  case 2:
+    print_into(buf,columns-12," BEEP FLIP ");
+    break;
+  case 3:
+    print_into(buf,columns-14," SILENT FLIP ");
+    break;
+  }
+  min_mvcur(0,6);
+  min_putstr(buf);
+
+  /* trials line */
+  min_mvcur(0,7);
+  min_putchar(ACS_VLINE);
+  {
+    int l = strlen(p_tl);
+    sprintf(buf," %d/%d trials: ",l,p_tn);
+    min_putstr(buf);
+
+    l+=strlen(buf);
+    if(l>columns-4){
+      min_putstr("...");
+      min_putstr(p_tl+l-columns-7);
+      min_putchar(' ');
+    }else{
+      int i;
+      min_putstr(p_tl);
+      for(i=strlen(buf)+strlen(p_tl);i<columns-2;i++)
+        min_putchar(' ');
+    }
+  }
+  min_putchar(ACS_VLINE);
+
+  min_mvcur(0,8);
+  fill(buf,ACS_HLINE,columns);
+  buf[0]=ACS_LLCORNER;
+  buf[columns-1]=ACS_LRCORNER;
+  min_putstr(buf);
+}
+
+static void draw_samples_box(void){
+  char buf[columns+1];
+  int i;
+
+  /* top line of box */
+  fill(buf,ACS_HLINE,columns);
+  buf[0]=ACS_ULCORNER;
+  buf[columns-1]=ACS_URCORNER;
+
+  switch(p_rm){
+  case 0:
+    break;
+  case 1:
+    print_into(buf,columns-31," RESTART AFTER ");
+    break;
+  case 2:
+    print_into(buf,columns-31," RESTART EVERY ");
+    break;
+  }
+  switch(p_fm){
+  case 1:
+    print_into(buf,columns-12," MARK FLIP ");
+    break;
+  case 2:
+    print_into(buf,columns-12," BEEP FLIP ");
+    break;
+  case 3:
+    print_into(buf,columns-14," SILENT FLIP ");
+    break;
+  }
+  min_mvcur(0,6);
+  min_putstr(buf);
+
+  /* one line per sample, highlight the currently played sample */
+  for(i=0;i<pcm_n;i++){
+    min_mvcur(0,7+i);
+    min_putchar(ACS_VLINE);
+    fill(buf,' ',columns-3);
+    if(i==p_pl){
+      min_putchar('>');
+      min_bold(1);
+    }else
+      min_putchar(' ');
+
+    if(strlen(pcm_p[i]->path)>columns-4)
+      print_into(buf,0,pcm_p[i]->path+strlen(pcm_p[i]->path)-columns+4);
+    else
+      print_into(buf,0,pcm_p[i]->path);
+    min_putstr(buf);
+    if(i==p_pl)
+      min_bold(0);
+    min_putchar(ACS_VLINE);
+  }
+  min_mvcur(0,7+pcm_n);
+  fill(buf,ACS_HLINE,columns);
+  buf[0]=ACS_LLCORNER;
+  buf[columns-1]=ACS_LRCORNER;
+  min_putstr(buf);
+}
+
+void panel_redraw_full(void){
+  draw_topbar();
+  draw_timebar();
+
+  if(p_tm==3)
+    draw_samples_box();
+  else
+    draw_trials_box();
+  min_flush();
+}
+
+void panel_init(pcm_t **pcm, int test_files, int test_mode, double start, double end, double size,
+                int flip_mode,int repeat_mode,int trials,char *trial_list){
+  if(min_init_panel(test_mode==3 ? test_files+8:9)){
+    fprintf(stderr,"Unable to initialize terminal\n");
+    exit(101);
+  }
+
+  if(columns<70){
+    fprintf(stderr,"Squishball requires a >=70 column terminal to run.\n");
+    exit(102);
+  }
+
+  p_tm=test_mode;
+  p_ch=pcm[0]->ch;
+  p_b=pcm[0]->bits;
+  p_r=pcm[0]->rate;
+  p_pl=0;
+  p_st=start;
+  p_cur=start;
+  p_end=end;
+  p_len=size;
+  p_fm=flip_mode;
+  p_rm=repeat_mode;
+  p_tr=0;
+  p_tn=trials;
+  p_tl=strdup(trial_list);
+  pcm_n=test_files;
+   pcm_p=pcm;
+  p_pau=0;
+
+  min_hidecur();
+  panel_redraw_full();
+}

Deleted: trunk/squishyball/tty.h
===================================================================
--- trunk/squishyball/tty.h	2010-11-25 22:26:20 UTC (rev 17661)
+++ trunk/squishyball/tty.h	2010-11-26 16:29:22 UTC (rev 17662)
@@ -1,29 +0,0 @@
-/*
- *
- *  squishyball
- *
- *      Copyright (C) 2010 Xiph.Org
- *
- *  squishyball is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2, or (at your option)
- *  any later version.
- *
- *  squishyball is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with rtrecord; see the file COPYING.  If not, write to the
- *  Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- *
- */
-
-#ifndef _SB_TTY_H_
-#define _SB_TTY_H_
-
-
-
-#endif



More information about the commits mailing list