[MN-dev] [mndiff]: r57 - in trunk/2010: 2010.cpp 2_all.h 2_crypt.cpp 2_grafix.cpp 2_txt.cpp 2_txt.h makefile

michael subversion at mplayerhq.hu
Wed Jul 4 10:10:37 CEST 2007


Author: michael
Date: Wed Jul  4 10:10:37 2007
New Revision: 57

Log:
next version from unknown date


Modified:
   trunk/2010/2010.cpp
   trunk/2010/2_all.h
   trunk/2010/2_crypt.cpp
   trunk/2010/2_grafix.cpp
   trunk/2010/2_txt.cpp
   trunk/2010/2_txt.h
   trunk/2010/makefile

Modified: trunk/2010/2010.cpp
==============================================================================
--- trunk/2010/2010.cpp	(original)
+++ trunk/2010/2010.cpp	Wed Jul  4 10:10:37 2007
@@ -520,7 +520,7 @@ int main(int argc, char **argv){
                                    setStdScale();
                                    contGrab();
                        break;
-#ifndef NO_CRYPT
+#ifdef CRYPT
                        case '5'  : TVStd= PAL;
                                    cryptStd= vc;
                                    if(yuvMode==0) yuvMode=1;

Modified: trunk/2010/2_all.h
==============================================================================
--- trunk/2010/2_all.h	(original)
+++ trunk/2010/2_all.h	Wed Jul  4 10:10:37 2007
@@ -2,8 +2,6 @@
 #ifndef n2_all_h
 #define n2_all_h
 
-#define NO_CRYPT
-
 #define mabs(a) ((a)<0 ? -(a) : (a))
 #define sign(a)   ((a)<0 ? -1 :  1)
 #define is_neg(a) ((a)<0 ?  0 : -1)

Modified: trunk/2010/2_crypt.cpp
==============================================================================
--- trunk/2010/2_crypt.cpp	(original)
+++ trunk/2010/2_crypt.cpp	Wed Jul  4 10:10:37 2007
@@ -51,9 +51,12 @@ void decrypt(void){
    T1=T2;
  }
 
+#ifdef CRYPT
  if(cryptStd==vc)       vc_decrypt();
  else if(cryptStd==nag) nag_decrypt();
- else if(TVStd==TXTPAL) txt_decrypt();
+#endif
+
+ if(TVStd==TXTPAL) txt_decrypt();
 
  if(iState){
    T2=uclock();

Modified: trunk/2010/2_grafix.cpp
==============================================================================
--- trunk/2010/2_grafix.cpp	(original)
+++ trunk/2010/2_grafix.cpp	Wed Jul  4 10:10:37 2007
@@ -71,7 +71,7 @@ void showStuff(void){
  }
 
  if(menuLevel==mLTVStd){
-#ifdef NO_CRYPT
+#ifndef CRYPT
    char text[3][256]={ "1. PAL   4. PAL-TeleText",
                        "2. NTSC",
                        "3. SECAM"};

Modified: trunk/2010/2_txt.cpp
==============================================================================
--- trunk/2010/2_txt.cpp	(original)
+++ trunk/2010/2_txt.cpp	Wed Jul  4 10:10:37 2007
@@ -4,6 +4,7 @@
 #include <stdio.h>
 #include <math.h>
 #include <ctype.h>
+#include <time.h>
 #include "2_all.h"
 #include "2010.h"
 #include "2_crypt.h"
@@ -131,20 +132,54 @@ void txt_decrypt(void){
 
 //  byte rawMagic[16]={255,   0, 255,   0, 255,   0, 255,   0,
 //                     255, 255, 255,   0,   0, 255,   0,   0 };
+  int clocks= clock();
 
   static CACHE1 *cache1=new CACHE1[1024];
   static int cache1Size=0;
   static bool first=true;
   static color txtColor[8];
   static MAG mag[8];
+  static GETTAB *getTab=new GETTAB[1024];
+  static getTabNum=0;
   if(first){
     FILE *f= fopen("chaninf.txt", "rb");
     if(f==NULL) error(TxtFile);
     while(!feof(f)){
-      fscanf(f, "%11[^\n]\n", cache1[cache1Size].chan);
+      int s=fscanf(f, "%27[^\n\r]%*[\n\r]", cache1[cache1Size].chan);
+      if(s==0) break;
+//      printf("%s\n", cache1[cache1Size].chan);
       cache1[cache1Size].pt= NULL;
       cache1Size++;
     }
+    fclose(f);
+
+    f= fopen("get.txt", "rb");
+    if(f!=NULL){
+      while(!feof(f)){
+        int s=fscanf(f, "%X %d %14[^\n\r]%*[\n\r]", &getTab[getTabNum].page,
+                                                    &getTab[getTabNum].clockDelta,
+                                                     getTab[getTabNum].name);
+        if(s==0) break;
+
+        getTab[getTabNum].nextClock=0;
+        getTab[getTabNum].clockDelta*=60*CLOCKS_PER_SEC;;
+
+        for(int i=0; getTab[getTabNum].name[i]!=0; i++)
+          if(getTab[getTabNum].name[i]=='.') getTab[getTabNum].name[i]=' ';
+
+        char name[127];
+        sprintf(name, "%s.txt", getTab[getTabNum].name);
+        getTab[getTabNum].f= fopen(name, "ab");
+        if(getTab[getTabNum].f==NULL) error(error_code(-999));
+        if(ftell(getTab[getTabNum].f)==0)
+          fprintf(getTab[getTabNum].f, "5 1 1 %s\n", getTab[getTabNum].name);
+
+//        printf("%X %d  %d %s\n", getTab[getTabNum].page, getTab[getTabNum].nextClock,  getTab[getTabNum].clockDelta,
+//        getTab[getTabNum].name);
+        getTabNum++;
+      }
+    }
+    fclose(f);
 
     for(int i=0; i<256; i++){
       int j=i&0x7F;                 
@@ -253,7 +288,7 @@ void txt_decrypt(void){
     const int magAddr= d0 & 0x7;
     const int rowAddr= (d0>>3) | (d1<<1);       
 
-    printf("lrm %d %d %d\n", line, rowAddr, magAddr);
+//    printf("lrm %d %d %d\n", line, rowAddr, magAddr);
 
     if(rowAddr==0){
       mag[magAddr].pt=NULL;
@@ -295,8 +330,7 @@ void txt_decrypt(void){
               break;
             }
             if(   toupper(cache1[cache1Ndx].chan[pos]) != toupper(data[tryp+pos])
-               && cache1[cache1Ndx].chan[pos] != 0x20
-               && cache1[cache1Ndx].chan[pos] != 0x0D) break;
+               && cache1[cache1Ndx].chan[pos] != 0x20) break;
           }
         }
       }
@@ -350,6 +384,7 @@ void txt_decrypt(void){
 
       mag[magAddr].pt->land=mag[magAddr].land;
       mag[magAddr].pt->sub=subPage;
+      mag[magAddr].pt->page=page;
       mag[magAddr].order=0;
       txtCpy(&mag[magAddr].pt->text[rowAddr*40], data+10, 32);
 
@@ -365,9 +400,67 @@ void txt_decrypt(void){
       }
       txtCpy(&mag[magAddr].pt->text[rowAddr*40], data+2, 40);
 
-    }
+      char temp[40];
+      reMapCpy(temp, &mag[magAddr].pt->text[rowAddr*40], 40, mag[magAddr].pt->land);
+      for(int i=0; i<40; i++){
+        if(temp[i]==',') temp[i]='.';
+      }
 
+      for(int getTabNdx=0; getTabNdx<getTabNum; getTabNdx++){
+        if(mag[magAddr].pt->page!=getTab[getTabNdx].page) continue;
+
+        if(clocks<getTab[getTabNdx].nextClock) continue;
 
+        int len=strlen(getTab[getTabNdx].name);
+        int p;
+        for(p=0; p<40-len; p++){
+          if(!strnicmp(&temp[p], getTab[getTabNdx].name, len)) break;
+        }
+        if(p==40) continue;
+
+        float val=-1;
+        int skip=0;
+        for(p+=len; p<40; p++){
+          const char c= temp[p];
+
+          if(c=='+' || c=='-') skip++;
+          else if(c>='0' && c<='9'){
+            if(skip>0) skip=-skip;
+            if(skip==0){
+              sscanf(&temp[p], "%f", &val);
+              break;
+            }
+          }
+          else if(c!='.'){
+            if(skip<0) skip=-skip-1;
+          }
+        }
+        if(val==-1 || val==0.0) continue;
+
+
+        for(;p<40; p++) if(temp[p]==':') break;
+        int h=-1, m=-1;
+        if(p<40){
+          sscanf(&temp[p - 2], "%d:%d", &h, &m);
+        }
+
+
+        printf("%s, %f\n", getTab[getTabNdx].name, val );
+
+        time_t t;
+        time(&t);
+        tm *tim= gmtime(&t);
+        if(h!=-1) tim->tm_hour=h;
+        if(m!=-1) tim->tm_min=m;
+
+        fprintf(getTab[getTabNdx].f, "%04d %02d %02d  %02d %02d    %f\n",
+          tim->tm_year+1900, tim->tm_mon+1, tim->tm_mday, tim->tm_hour, tim->tm_min ,val);
+
+        getTab[getTabNdx].nextClock= clocks + getTab[getTabNdx].clockDelta;
+
+        break;
+      }
+    }
   }
 
 
@@ -418,8 +511,8 @@ void txt_decrypt(void){
     while(page!=start){
       p=cache1[reqChanNum].pt[page];
       while(p!=NULL){
-        for(int i=0; i<LINES*40; i++)
-          if(!strnicmp(&findTxt[1], &p->text[i], min(LINES*40-i, len))){
+        for(int i=0; i<LINES*40-len; i++)
+          if(!strnicmp(&findTxt[1], &p->text[i], len)){
             found=true;
             break;
           }
@@ -602,6 +695,6 @@ void txt_decrypt(void){
   if(parities>9999) parities-=9000;
 
 }
-
+      
 
 

Modified: trunk/2010/2_txt.h
==============================================================================
--- trunk/2010/2_txt.h	(original)
+++ trunk/2010/2_txt.h	Wed Jul  4 10:10:37 2007
@@ -5,6 +5,7 @@
 #define LINES 25
 
 struct CACHE2{
+  int page;
   int sub;
   bool seen;
   char text[LINES*40];
@@ -13,7 +14,7 @@ struct CACHE2{
 };
 
 struct CACHE1{
-  char chan[12];
+  char chan[28];
   CACHE2 **pt;
 };
 
@@ -23,6 +24,15 @@ struct MAG{
   int land;
 };
 
+struct GETTAB{
+  int page;
+  char name[15];
+  FILE *f;
+  int clockDelta;
+  int nextClock;
+};
+
+
 void txt_decrypt(void);
 
 #endif

Modified: trunk/2010/makefile
==============================================================================
--- trunk/2010/makefile	(original)
+++ trunk/2010/makefile	Wed Jul  4 10:10:37 2007
@@ -1,38 +1,49 @@
-.SUFFIXES: .c .cc .h .o .asm .S .s
+.SUFFIXES: .c .cc .cpp .h .o .asm .S .s
 
-CFLAGS = -g
-CFLAGS = -O3 -mpentium -fomit-frame-pointer -g -Wall -Wstrict-prototypes -malign-double -ffast-math -funroll-loops -fno-default-inline
+OPTS = -g
+OPTS = -O3 -mpentium -fomit-frame-pointer -g -Wall -Wstrict-prototypes -malign-double -ffast-math -funroll-loops -fno-default-inline
 AFLAGS = -f coff
 
 .c.o:   ; gcc $(CFLAGS) -c $<
 
 .cc.o:  ; gcc $(CFLAGS) -c $<
 
+.cpp.o: ; gcc $(CFLAGS) -c $<
+
 .S.o:   ; gcc $(CFLAGS) -c $<
 
 .asm.o: ; nasm $(AFLAGS) $<
 
 O = 2010.o 2_file.o 2_grafix.o 2_hw.o 2_gfunc.o \
-    2_hw_asm.o 2_71x6.o 2_hw_mem.o 2_crypt.o 2_vc.o 2_nag.o\
-    2_nag_a.o 2_vc_a.o 2_glob_a.o 2_txt.o
+    2_hw_asm.o 2_71x6.o 2_hw_mem.o 2_crypt.o\
+    2_glob_a.o 2_txt.o
 
-2010 : $(O) ; gcc $(CFLAGS) -o 2010 $(O)
+OC = 2010.o 2_file.o 2_grafix.o 2_hw.o 2_gfunc.o \
+     2_hw_asm.o 2_71x6.o 2_hw_mem.o 2_crypt.o 2_vc.o 2_nag.o\
+     2_nag_a.o 2_vc_a.o 2_glob_a.o 2_txt.o
+
+default: ;$(MAKE) 2010 CFLAGS="$(OPTS)"
+
+crypt:   ;$(MAKE) 2010C CFLAGS="$(OPTS) -DCRYPT"
+
+2010  : $(O)  ; gcc $(CFLAGS) -o 2010  $(O)
+2010C : $(OC) ; gcc $(CFLAGS) -o 2010C $(OC)
 clean: ; del $(O) 2010
 
-2010.o     : 2010.cc     2_all.h 2010.h 2_file.h 2_hw.h 2_grafix.h\
+2010.o     : 2010.cpp     2_all.h 2010.h 2_file.h 2_hw.h 2_grafix.h\
                              2_71x6.h 2_hw_mem.h 2_nag.h
-2_file.o   : 2_file.cc   2_all.h 2_file.h 2010.h 2_hw.h
-2_gfunc.o  : 2_gfunc.cc  2_all.h 2_gfunc.h 2010.h 
-2_grafix.o : 2_grafix.cc 2_all.h 2_grafix.h 2010.h 2_gfunc.h 2_hw.h 2_file.h
-2_hw.o     : 2_hw.cc     2_all.h 2_hw.h 2010.h 2_hw_asm.h 2_hw_mem.h\
+2_file.o   : 2_file.cpp   2_all.h 2_file.h 2010.h 2_hw.h
+2_gfunc.o  : 2_gfunc.cpp  2_all.h 2_gfunc.h 2010.h 
+2_grafix.o : 2_grafix.cpp 2_all.h 2_grafix.h 2010.h 2_gfunc.h 2_hw.h 2_file.h
+2_hw.o     : 2_hw.cpp     2_all.h 2_hw.h 2010.h 2_hw_asm.h 2_hw_mem.h\
                              2_71x6.h 2_mmx.h
-2_hw_mem.o : 2_hw_mem.cc 2_all.h 2_hw_mem.h 2010.h 
-2_71x6.o   : 2_71x6.cc   2_all.h 2_71x6.h 2_hw.h 2_hw_mem.h 2010.h 2_hw_asm.h
-2_crypt.o  : 2_crypt.cc  2_all.h 2_crypt.h 2_71x6.h 2_vc.h 2_nag.h 2_txt.h
-2_vc.o     : 2_vc.cc     2_all.h 2_vc.h 2_crypt.h 2_gfunc.h 2_vc_a.h
-2_nag.o    : 2_nag.cc    2_all.h 2_nag.h 2_crypt.h 2_gfunc.h 2_mmx.h 2_nag_a.h\
+2_hw_mem.o : 2_hw_mem.cpp 2_all.h 2_hw_mem.h 2010.h 
+2_71x6.o   : 2_71x6.cpp   2_all.h 2_71x6.h 2_hw.h 2_hw_mem.h 2010.h 2_hw_asm.h
+2_crypt.o  : 2_crypt.cpp  2_all.h 2_crypt.h 2_71x6.h 2_vc.h 2_nag.h 2_txt.h
+2_vc.o     : 2_vc.cpp     2_all.h 2_vc.h 2_crypt.h 2_gfunc.h 2_vc_a.h
+2_nag.o    : 2_nag.cpp    2_all.h 2_nag.h 2_crypt.h 2_gfunc.h 2_mmx.h 2_nag_a.h\
                              2010.h 2_hw_mem.h
-2_txt.o    : 2_txt.cc    2_all.h 2_txt.h 2_crypt.h 2_gfunc.h 2010.h
+2_txt.o    : 2_txt.cpp    2_all.h 2_txt.h 2_crypt.h 2_gfunc.h 2010.h 2_71x6.h
 
 2_hw_asm.o : 2_hw_asm.s
 



More information about the Mndiff-dev mailing list