//___________________________________________________________________________________
void ReadTT_timestamps(char* fn, int nSpikes, double *t)
{
    double t0;
    double wv0[128];

    // open file
    FILE *fp = fopen(fn, "rb");
    if (!fp)
        mexErrMsgTxt("ERROR: Could not open file.");

    // skip header
    int new_NT_format = SkipHeader(fp);  // flag for new NT_format TT files (0=old SUN, 1=new NT)
    if (!new_NT_format)
        mexErrMsgTxt("Old sun format not supported by this loading engine.");
    SkipCheetahNTHeader(fp);     // Skip standard Neuralynx header if present (Cheetah versions >= 1.3)
    long postHeaderPos = ftell(fp);

    // read records and convert all to double
    fseek(fp, postHeaderPos, SEEK_SET);
    for (int i = 0; i < nSpikes; i++)
    {
        GetOneRecord(fp,t0,wv0);
        t[i] = t0;
    }
    fclose(fp);
}
//___________________________________________________________________________________
int GetNumberOfSpikes(char* fn) {

    // open file
    FILE* fp = fopen(fn, "rb");
    if (!fp)
        mexErrMsgTxt("Could not open file.");

    //skip header and determine file record size
    int new_NT_format = SkipHeader(fp);
    if (!new_NT_format)
        mexErrMsgTxt("Old SunOS formats are not supported by this loading engine.");
    SkipCheetahNTHeader(fp);     // Skip standard Neuralynx header if present (Cheetah versions >= 1.3)

    // get filesize
    int postHeaderPos = ftell(fp);     // beginnig of file after header (if any)
    fseek(fp,0,2);                     // goto end of file
    int nbytes = ftell(fp) - postHeaderPos;

    int nSpikes = nbytes/recSize; // no need to skip last record for NT_cheetah files
    mexPrintf("Reading file %s:\nRecordSize = %d,  %d spikes, %d bytes.\n",
              fn, recSize, nSpikes, nbytes);

    // cleanup
    fclose(fp);

    return nSpikes;
}
//_________________________________________________________________________________________________
void ReadTTByRecord(char* fn, double *records_to_get, int n_records_to_get, double *t, double *wv)
// Open the file and fseek to just those record number passed in
// in the array: records_to_get. The last record of records to get
// indicates the end of records. It's code is END_OF_RECORDS.
{
    int i = 0;
    double t0;
    double wv0[128];

    // open file
    FILE *fp = fopen(fn, "rb");
    if (!fp)
        mexErrMsgTxt("ERROR: Could not open file.");

    // skip header
    int new_NT_format = SkipHeader(fp);  // flag for new NT_format TT files (0=old SUN, 1=new NT)
    if (!new_NT_format)
        mexErrMsgTxt("Old sun format not supported by this loading engine.");
    SkipCheetahNTHeader(fp);     // Skip standard Neuralynx header if present (Cheetah versions >= 1.3)
    long postHeaderPos = ftell(fp);

    // read records and convert all to double
    while(i < n_records_to_get)
    {
        // Go directly to the record in question. Do not pass go. NO $200.
        fseek(fp, postHeaderPos+sizeof(char)*(recSize)*((long)records_to_get[i] - 1), SEEK_SET);
        GetOneRecord(fp,t0,wv0);
        t[i] = t0;
        for (int j = 0; j<4; j++)
            for(int k = 0; k<32; k++)
                wv[i + n_records_to_get*j + n_records_to_get*4*k] = (double) wv0[j + 4*k];
        i++;
    }
    fclose(fp);
}
Exemplo n.º 4
0
   ln = lat->lnodes; ln->word = wd; ln->n=0; ln->v=0;

   ln = lat->lnodes+1; ln->word = wd; ln->n=0; ln->v=0;

   ln = lat->lnodes+nNode-1; ln->word = wd; ln->n=0; ln->v=0;

   ln = lat->lnodes+nNode-2; ln->word = wd; ln->n=0; ln->v=0;



   ln = lat->lnodes+2;

   for (i = 0; i< VHASHSIZE; i++)

      for ( wd = voc->wtab[i]; wd != NULL; wd = wd->next ) 

         if ((wd != voc->nullWord) && (wd != voc->subLatWord)) {

            ln->word = wd;

            ln++;

         }



   la =lat->larcs;

   la->start = lat->lnodes;  

   la->end = lat->lnodes+1; 

   la->lmlike = 0.0;

   la = lat->larcs+1;

   la->start = lat->lnodes+nNode-2;  

   la->end = lat->lnodes+nNode-1;

   la->lmlike = 0.0;

   la = lat->larcs+2;

   la->start = lat->lnodes+nNode-2;   

   la->end = lat->lnodes+1;

   la->lmlike = 0.0;



   la = lat->larcs+3;

   for (i = 0; i < voc->nwords; i++) {

      la->start = lat->lnodes+1;