Changeset 28126


Ignore:
Timestamp:
03/31/14 03:53:52 (10 years ago)
Author:
obi
Message:

mipsel add hybrid tuner support

Location:
titan/titan
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/audiodev.h

    r24726 r28126  
    341341                                audioclose(NULL, fd);
    342342                                count++;
    343                                 adddvbdev(buf, i, y, -1, AUDIODEV, NULL, NULL, 0);
     343                                adddvbdev(buf, i, y, -1, AUDIODEV, NULL, NULL, NULL, 0);
    344344                        }
    345345                }
  • titan/titan/cadev.h

    r27447 r28126  
    238238                                caclose(NULL, fd);
    239239                                count++;
    240                                 adddvbdev(buf, i, y, -1, CADEV, NULL, NULL, 0);
     240                                adddvbdev(buf, i, y, -1, CADEV, NULL, NULL, NULL, 0);
    241241                        }
    242242                }
  • titan/titan/cidev.h

    r27577 r28126  
    7474                {
    7575                        count++;
    76                         adddvbdev(buf, i, y, fd, CIDEV, NULL, NULL, 0);
     76                        adddvbdev(buf, i, y, fd, CIDEV, NULL, NULL, NULL, 0);
    7777                }
    7878        }
     
    8787                        {
    8888                                count++;
    89                                 adddvbdev(buf, i, y, fd, CIDEV, NULL, NULL, 0);
     89                                adddvbdev(buf, i, y, fd, CIDEV, NULL, NULL, NULL, 0);
    9090                        }
    9191                }
  • titan/titan/dmxdev.h

    r27397 r28126  
    544544                                count++;
    545545                                for(z = 0; z < MAXDEMUXDEVOPEN; z++)
    546                                         adddvbdev(buf, i, y, -1, DEMUXDEV, NULL, NULL, 0);
     546                                        adddvbdev(buf, i, y, -1, DEMUXDEV, NULL, NULL, NULL, 0);
    547547                                //without this, on atevio7500, if the second tuner is the maintuner
    548548                                //no picture (i don't know why)
  • titan/titan/dvbdev.h

    r26969 r28126  
    44//flag 0: use dvbdev
    55//flag 1: use dvbdevsim
    6 struct dvbdev* adddvbdev(char *dev, int adapter, int devnr, int fd, int type, struct dvb_frontend_info* feinfo, struct dvbdev* last, int flag)
     6struct dvbdev* adddvbdev(char *dev, int adapter, int devnr, int fd, int type, struct dvb_frontend_info* feinfo, struct dvbdev* last, char *fehyprid, int flag)
    77{
    88        struct dvbdev *newnode = NULL, *node = NULL;
     
    2929        newnode->adapter = adapter;
    3030        newnode->devnr = devnr;
     31        newnode->fehyprid = ostrcat(fehyprid, NULL, 0, 0);
    3132
    3233        if(type == CIDEV)
  • titan/titan/dvrdev.h

    r23206 r28126  
    8787                                dvrclose(NULL, fd);
    8888                                count++;
    89                                 adddvbdev(buf, i, y, -1, DVRDEV, NULL, NULL, 0);
     89                                adddvbdev(buf, i, y, -1, DVRDEV, NULL, NULL, NULL, 0);
    9090                        }
    9191                }
  • titan/titan/frontenddev.h

    r24741 r28126  
    16281628{
    16291629        int i, y, fd = -1, count = 0;
    1630         char *buf = NULL, *frontenddev = NULL;
     1630        char *buf = NULL, *buf1 = NULL, *frontenddev = NULL, *hypridtuner = NULL, *fehyprid = NULL;
    16311631        struct dvb_frontend_info* feinfo = NULL;
    16321632        struct dvbdev* dvbnode = NULL;
     
    16451645                return count;
    16461646        }
    1647 
     1647/*
     1648        hypridtuner = getconfig("hypridtuner", NULL);
     1649       
     1650        if(hypridtuner != NULL)
     1651        {
     1652                buf1 = malloc(MINMALLOC);
     1653                if(buf1 == NULL)
     1654                {
     1655                        err("no memory");
     1656                        return count;
     1657                }
     1658        }
     1659*/
    16481660        for(i = 0; i < MAXDVBADAPTER; i++)
    16491661        {
     
    16541666                        if(fd >= 0)
    16551667                        {
     1668//                              sprintf(buf1, hypridtuner, y);
     1669//                              fehyprid = readsys(buf1, 1);
     1670                                fehyprid = gethypridtunerchoicesvalue(y);                               
    16561671                                feinfo = fegetinfo(NULL, fd);
    16571672                                if(feinfo != NULL)
    16581673                                {
     1674                                        printf("add fehyprid: %s i=%d, y=%d\n",fehyprid,i, y);
    16591675                                        count++;
    1660                                         dvbnode = adddvbdev(buf, i, y, fd, FRONTENDDEV, feinfo, NULL, 0);
     1676                                        dvbnode = adddvbdev(buf, i, y, fd, FRONTENDDEV, feinfo, NULL, fehyprid, 0);
    16611677                                        if(dvbnode->feinfo->type == FE_QPSK)
    16621678                                                fesetvoltage(dvbnode, SEC_VOLTAGE_OFF, 15);
     
    16661682        }
    16671683
     1684//      free(buf1);
    16681685        free(buf);
    16691686        return count;
     
    16941711        {
    16951712                sprintf(buf, frontenddev, 0, dvbnode->devnr);
    1696                 adddvbdev(buf, 0, dvbnode->devnr, -1, FRONTENDDEVDUMMY, NULL, NULL, 0);
     1713                adddvbdev(buf, 0, dvbnode->devnr, -1, FRONTENDDEVDUMMY, NULL, NULL, NULL, 0);
    16971714        }
    16981715
  • titan/titan/global.h

    r28011 r28126  
    784784        }
    785785
    786         for(i = 1; !rm && i <= preg.re_nsub; i++)
     786        for(i = 0; !rm && i <= preg.re_nsub; i++)
    787787        {
    788788                len = pmatch[i].rm_eo - pmatch[i].rm_so;
     
    67086708}
    67096709
     6710char* gethypridtunerchoices(int dev)
     6711{
     6712        char *hypridtunerchoices = NULL;
     6713        char *value = NULL;
     6714        char *tmpstr = NULL;
     6715        char *tmpstr1 = NULL;
     6716        char *tmpstr2 = NULL;
     6717        char *tmpstr3 = NULL;
     6718        char* start = NULL;
     6719
     6720        hypridtunerchoices = getconfig("hypridtunerchoices", NULL);
     6721
     6722        if(hypridtunerchoices == NULL)
     6723        {
     6724                err("NULL detect");
     6725                return NULL;
     6726        }
     6727
     6728        tmpstr = readfiletomem(hypridtunerchoices, 1);
     6729        if(tmpstr == NULL)
     6730        {
     6731                err("NULL detect");
     6732                return NULL;
     6733        }
     6734
     6735        start = ostrcat("NIM Socket ", oitoa(dev), 0, 0);
     6736        start = ostrcat(start, ":", 1, 0);
     6737
     6738        tmpstr1 = string_resub(start, "I2C_Device", tmpstr, 0);
     6739        tmpstr2 = string_resub("Mode ", ":", tmpstr1, 0);
     6740        tmpstr3 = oregex(".*Mode ([0-9]{1}):.*", tmpstr1);
     6741
     6742        if(tmpstr2 != NULL)
     6743                value = ostrcat(tmpstr2, "\n", 0, 0);
     6744        if(tmpstr3 != NULL)
     6745                value = ostrcat(value, tmpstr3, 1, 0);
     6746
     6747        free(start), start = NULL;
     6748        free(tmpstr), tmpstr = NULL;
     6749        free(tmpstr1), tmpstr1 = NULL;
     6750        free(tmpstr2), tmpstr2 = NULL;
     6751        free(tmpstr3), tmpstr3 = NULL;
     6752
     6753        printf("gethypridtunerchoices value: %s\n",value);
     6754        return value;
     6755}
     6756
     6757char* gethypridtunerchoicesvalue(int dev)
     6758{
     6759        char* hypridtunerchoices = NULL, *value = NULL, *tmpstr = NULL, *tmpstr1 = NULL, *tmpstr2 = NULL, *hypridlist = NULL, *start = NULL;
     6760
     6761        hypridtunerchoices = getconfig("hypridtunerchoices", NULL);
     6762
     6763        if(hypridtunerchoices == NULL)
     6764        {
     6765                err("NULL detect");
     6766                return NULL;
     6767        }
     6768
     6769        tmpstr = readfiletomem(hypridtunerchoices, 1);
     6770        if(tmpstr == NULL)
     6771        {
     6772                err("NULL detect");
     6773                return NULL;
     6774        }
     6775
     6776        start = ostrcat("NIM Socket ", oitoa(dev), 0, 0);
     6777        start = ostrcat(start, ":", 1, 0);
     6778        tmpstr1 = string_resub(start, "I2C_Device", tmpstr, 0);
     6779        free(start), start = NULL;
     6780
     6781        hypridlist = gethypridtunerchoices(dev);
     6782
     6783        int count = 0;
     6784        int i = 0;
     6785        struct splitstr* ret1 = NULL;
     6786        ret1 = strsplit(hypridlist, "\n", &count);
     6787
     6788        if(ret1 != NULL)
     6789        {
     6790                int max = count;
     6791                for(i = 0; i < max; i++)
     6792                {
     6793                        start = ostrcat("Mode ", ret1[i].part, 0, 0);
     6794                        start = ostrcat(start, ":", 1, 0);
     6795                        tmpstr2 = string_resub(start, "\n", tmpstr1, 0);
     6796               
     6797                        if(i > 0)
     6798                                value = ostrcat(value, "\n", 1, 0);
     6799               
     6800                        if(tmpstr2 != NULL)
     6801                                value = ostrcat(value, tmpstr2, 1, 0);
     6802                               
     6803                        free(tmpstr2), tmpstr2 = NULL;
     6804                        free(start), start = NULL;
     6805                }
     6806        }
     6807        free(ret1), ret1 = NULL;                       
     6808        free(tmpstr1), tmpstr1 = NULL;
     6809        free(hypridlist), hypridlist = NULL;
     6810
     6811        printf("gethypridtunerchoicesvalue value: %s\n",value);
     6812        return value;
     6813}
     6814
     6815char* gethypridtunerchoicesvaluename(int dev, char* hyprid)
     6816{
     6817        char* hypridtunerchoices = NULL, *value = NULL, *tmpstr = NULL, *tmpstr1 = NULL, *tmpstr2 = NULL, *hypridlist = NULL, *start = NULL;
     6818
     6819        hypridtunerchoices = getconfig("hypridtunerchoices", NULL);
     6820
     6821        if(hypridtunerchoices == NULL)
     6822        {
     6823                err("NULL detect");
     6824                return NULL;
     6825        }
     6826
     6827        tmpstr = readfiletomem(hypridtunerchoices, 1);
     6828        if(tmpstr == NULL)
     6829        {
     6830                err("NULL detect");
     6831                return NULL;
     6832        }
     6833
     6834        start = ostrcat("NIM Socket ", oitoa(dev), 0, 0);
     6835        start = ostrcat(start, ":", 1, 0);
     6836        tmpstr1 = string_resub(start, "I2C_Device", tmpstr, 0);
     6837        free(start), start = NULL;
     6838
     6839        start = ostrcat("Mode ", hyprid, 0, 0);
     6840        start = ostrcat(start, ":", 1, 0);
     6841
     6842        tmpstr2 = string_resub(start, "\n", tmpstr1, 0);
     6843       
     6844        if(tmpstr2 != NULL)
     6845                value = ostrcat(value, tmpstr2, 1, 0);
     6846
     6847        free(tmpstr1), tmpstr1 = NULL;
     6848        free(tmpstr2), tmpstr2 = NULL;
     6849        free(start), start = NULL;
     6850
     6851        printf("gethypridtunerchoicesvaluename value: %s\n",value);
     6852        return value;
     6853}
     6854
     6855char* gethypridtuner()
     6856{
     6857        char* hypridtuner = NULL, *value = NULL;
     6858
     6859        hypridtuner = getconfig("hypridtuner", NULL);
     6860
     6861        if(hypridtuner == NULL)
     6862        {
     6863                err("NULL detect");
     6864                return NULL;
     6865        }
     6866
     6867        value = readsys(hypridtuner, 1);
     6868        if(value == NULL)
     6869        {
     6870                err("NULL detect");
     6871                return NULL;
     6872        }
     6873
     6874        return value;
     6875}
     6876
     6877int sethypridtuner(int dev, char* value)
     6878{
     6879        char* buf = NULL, *hypridtuner = NULL, *tmpstr = NULL;
     6880        int ret = 0;
     6881printf("1sethypridtuner dev %d to %s\n", dev, value);
     6882        hypridtuner = getconfig("hypridtuner", NULL);
     6883       
     6884        if(hypridtuner != NULL)
     6885        {
     6886                buf = malloc(MINMALLOC);
     6887                if(buf == NULL)
     6888                {
     6889                        err("no memory");
     6890                        return 0;
     6891                }
     6892        }
     6893printf("2hypridtuner %s\n",hypridtuner);
     6894        sprintf(buf, hypridtuner, dev);
     6895printf("3sethypridtuner buf %s\n", buf);
     6896        if(buf != NULL)
     6897        {
     6898                debug(100, "set %s to %s\n", buf, value);
     6899                printf("4set %s to %s\n", buf, value);
     6900//              tmpstr = oitoa(value);
     6901//              printf("tmpstr %s", tmpstr);
     6902                ret = writesys(buf, value, 0);
     6903                free(tmpstr); tmpstr = NULL;
     6904                return ret;
     6905        }
     6906printf("5sethypridtuner dev %d to %d\n", dev, value);
     6907        return 0;
     6908}
     6909
    67106910#endif
  • titan/titan/rectimer.h

    r25892 r28126  
    8484                if(dvbnode->type == FRONTENDDEV)
    8585                {
    86                         adddvbdev(ostrcat(dvbnode->dev, NULL, 0, 0), dvbnode->adapter, dvbnode->devnr, dvbnode->fd, FRONTENDDEV, dvbnode->feinfo, NULL, 1);
     86                        adddvbdev(ostrcat(dvbnode->dev, NULL, 0, 0), dvbnode->adapter, dvbnode->devnr, dvbnode->fd, FRONTENDDEV, dvbnode->feinfo, NULL, dvbnode->fehyprid, 1);
    8787                }
    8888                dvbnode = dvbnode->next;
  • titan/titan/scdev.h

    r23286 r28126  
    394394                        scclose(NULL, fd);
    395395                        count++;
    396                         adddvbdev(buf, 0, y, -1, SCDEV, NULL, NULL, 0);
     396                        adddvbdev(buf, 0, y, -1, SCDEV, NULL, NULL, NULL, 0);
    397397                }
    398398        }
Note: See TracChangeset for help on using the changeset viewer.