Ejemplo n.º 1
0
void PlayerSource::run()
{
    // initial data
    if (m_player == QString("mpd")) {
        // mpd
        QHash<QString, QVariant> data = getPlayerMpdInfo(m_mpdAddress);
        for (auto key : data.keys())
            values[key] = data[key];
    } else if (m_player == QString("mpris")) {
        // players which supports mpris
        QString mpris = m_mpris == QString("auto") ? getAutoMpris() : m_mpris;
        QHash<QString, QVariant> data = getPlayerMprisInfo(mpris);
        for (auto key : data.keys())
            values[key] = data[key];
    }

    // dymanic properties
    // solid
    values[QString("player/salbum")]
        = stripString(values[QString("player/album")].toString(), m_symbols);
    values[QString("player/sartist")]
        = stripString(values[QString("player/artist")].toString(), m_symbols);
    values[QString("player/stitle")]
        = stripString(values[QString("player/title")].toString(), m_symbols);
    // dynamic
    values[QString("player/dalbum")]
        = buildString(values[QString("player/dalbum")].toString(),
                      values[QString("player/album")].toString(), m_symbols);
    values[QString("player/dartist")]
        = buildString(values[QString("player/dartist")].toString(),
                      values[QString("player/artist")].toString(), m_symbols);
    values[QString("player/dtitle")]
        = buildString(values[QString("player/dtitle")].toString(),
                      values[QString("player/title")].toString(), m_symbols);
}
Ejemplo n.º 2
0
void readAllSts(FILE *asf) 
/* Read in current sequences for sts markers */
{
  struct dnaSeq *ds;
  struct sts *s;
  char *words[8], *acc=NULL, *line;
  int wordCount;

  while (faReadMixedNext(asf, 0, "default", TRUE, &line, &ds))
    {
      /* Determine the UCSC id */
      wordCount = chopByWhite(line, words, ArraySize(words));
      stripString(words[0], ">");
      if (wordCount == 3)
	acc = cloneString(words[2]);
      else
	acc = NULL;
      /* Find the record and attach */
      if (hashLookup(stsHash, ds->name))
	{
	  s = hashMustFindVal(stsHash, ds->name);
	  s->fa = ds;
	  s->faAcc = acc;
	  s->si->sequence = 1;
	}
      else 
	{
	  dnaSeqFree(&ds);
	  freez(&line);
	  if (acc != NULL)
	    freez(&acc);
	}
    }
}
struct hash *getUniqueStringHash(char *columnName, char *tableName)
/* Read tableName.  Store column as string, unique values only. */
/* Remove 'rs'. */
{
struct hash *ret;
char query[512];
struct sqlConnection *conn = hAllocConn();
struct sqlResult *sr;
char **row;
struct hashEl *helName = NULL;
int count = 0;

ret = newHash(18);
safef(query, sizeof(query), "select %s from %s", columnName, tableName);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
    {
    stripString(row[0], "rs");
    helName = hashLookup(ret, row[0]);
    if (helName == NULL)
        {
        hashAdd(ret, cloneString(row[0]), NULL);
	count++;
	}
    }
sqlFreeResult(&sr);
hFreeConn(&conn);
verbose(1, "%d unique %s in %s\n", count, columnName, tableName);
return ret;
}
struct hash *readFasta(char *chromName)
/* read moltype from chrN_fasta into hash. */
/* Read again for random */
/* Also called to create the chrN_multi hash. */
{
char query[512];
struct sqlConnection *conn = hAllocConn();
struct sqlResult *sr;
char **row;
char fastaTableName[64];
struct hash *newChromHash = NULL;
char *adjustedChromName = cloneString(chromName);
char *randomSubstring = NULL;

newChromHash = newHash(0);

randomSubstring = strstr(chromName, "random");
if (randomSubstring != NULL) 
    stripString(adjustedChromName, "_random");

safef(fastaTableName, ArraySize(fastaTableName), "%s_snpFasta", adjustedChromName);
if(!hTableExistsDb(snpDb, fastaTableName)) 
    errAbort("can't get table %s\n", fastaTableName);

safef(query, sizeof(query), "select rsId, molType from %s", fastaTableName);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
    /* could check for duplicates here */
    hashAdd(newChromHash, cloneString(row[0]), cloneString(row[1]));

sqlFreeResult(&sr);
hFreeConn(&conn);

return newChromHash;
}
Ejemplo n.º 5
0
char *abbreviateSummary(char *summary)
/* Get rid of some repetitious stuff. */
{
char *pattern =
"Publication Note:  This RefSeq record includes a subset "
"of the publications that are available for this gene. "
"Please see the Entrez Gene record to access additional publications.";
stripString(summary, pattern);
return summary;
}
Ejemplo n.º 6
0
/** @brief Read a file and return non-comment output string 

Call the first time with 0 lineNumber to get the number of lines to read
Then call with each lineNumber to get one camera parameter. There should
be one property=value entry on each line, i.e. "exposure=auto"

 * @param inputFile filename to read
 * @param outputString one string
 * @param lineNumber if 0, return number of lines; else return that line number
 * @return int number of lines or -1 if error
 **/
int processFile(char *inputFile, char *outputString, int lineNumber)
{
	FILE *infile;
	int stringSize = 80;		// max size of one line in file 
	char inputStr[stringSize];
	int lineCount=0;
	  
	if (lineNumber < 0)
		  return (-1);

	if ((infile = fopen (inputFile, "r")) == NULL) {
	    printf ("Fatal error opening file %s\n",inputFile);
	    return (0);
	}

  while (!feof(infile)) {
    if (fgets (inputStr, stringSize, infile) != NULL) {
      // Skip empty lines
      if (emptyString(inputStr))
        continue;
      // Skip comment lines
      if (inputStr[0] == '#' || inputStr[0] == '!')
        continue;

      lineCount++;
      if (lineNumber == 0)
        continue;
      else
      {
    	  if (lineCount == lineNumber)
    		  break;
      }
    }
  }

  // close file 
  fclose (infile);
  // if number lines requested return the count
  if (lineNumber == 0)
	  return (lineCount);
  // check for input out of range
  if (lineNumber > lineCount)
	  return (-1);
  // return the line selected
  if (lineCount) {
    stripString(inputStr);
    strcpy(outputString, inputStr);
    return(lineCount);
  } 
  else {
    return(-1);
  }
}
Ejemplo n.º 7
0
float edfa::EDFAReadPh2(){
    QString message;

    if(ready){
        writeSerial("Ph 2\r\n");
        message=readSerial();
        if (message.contains("PDM2: ",Qt::CaseInsensitive)){
            message = stripString(message, "PDM2:");
        }
    }

    return message.toFloat();
}
void doMiddle(struct cart *theCart)
/* Set up globals and make web page */
{
char *db = NULL;
char *ignored;
struct trackDb *tracks;
struct trackRef *tr;
struct group *group, *groups = NULL;

cart = theCart;
cartWebStart(cart, NULL, "ENCODE Track Data Versions (%s)", db);
getDbAndGenome(cart, &db, &ignored, NULL);
tracks = hTrackDb(db);
groups = groupTracks(db, tracks);
for (group = groups; group != NULL; group = group->next)
    {
    if (group->tracks == NULL || !startsWith("encode", group->name))
        continue;
    hTableStart();
    puts("<TR>");
    puts("<TH align=LEFT colspan=3 BGCOLOR=#536ED3>");
    printf("<B>&nbsp;%s</B> ", wrapWhiteFont(group->label));
    printf("&nbsp;&nbsp;&nbsp; ");
    puts("</TH>\n");
    puts("</TR>");
    for (tr = group->tracks; tr != NULL; tr = tr->next)
        {
        char *version = trackDbSetting(tr->track, "dataVersion");
        if (version)
            stripString(version, "ENCODE ");
	puts("<TR><TD>");
	printf(" %s", tr->track->shortLabel);
	puts("</TD><TD>");
	printf(" %s", version ? version : "&nbsp;");
	puts("</TD><TD>");
	printf(" %s", tr->track->longLabel);
	puts("</TD></TR>");
	}
    /*
        printf("\t%s\t%s\t%s\n", version, 
                tr->track->shortLabel, tr->track->longLabel);
                */
    hTableEnd();
    puts("<BR>");
    }
cartWebEnd();
}
Ejemplo n.º 9
0
bool edfa::getEmission(){
    bool emission = false; //This needs to be made better so that the method will return something if no emission is found.
    QString message;

    if(ready){
        writeSerial("OM\r\n");
        message = readSerial();
        qDebug() << "get EDFA emission message " << message;
        if (message.contains("OM ",Qt::CaseInsensitive)){
            message = stripString(message, "OM");
            qDebug() << "message contains OM";
            qDebug() << "New message " << message;
        }
    }
    if(message == "O"){
        emission = false;
    }
    if(message == "2"){
        emission = true;
    }

return emission;
}
Ejemplo n.º 10
0
/*
 * readConnectionMatrix
 *
 * This function reads the network settings and place them in the
 * connection matrix (float array with size "len" x "len".
 *
 * @param pointer to begin of connection matrix
 * @param pointer to filename
 * @param number of elements in each connection matrix line
 * @return 0 if function was successfull, 1 if an error happened
 */
int
readConnectionMatrix(float *connectionMatrix, char *filename, int len)
{
  FILE *file = fopen(filename, "r");
  if (!file) {
    return 1;
  }

  char buffer[1024];
  while (fgets(buffer, 1024, file)) {
    int from, to;
    float propability;

    char *line = stripString(buffer);
    DPRINT("%s\n", line);

    if (line[0] == '#' || line[0] == 0) {
      continue;
    }

    if (sscanf(line, "%d %d %f", &from, &to, &propability) != 3) {
      continue;
    }

    if (from < 0 || from >= len || to < 0 || to >= len || from == to) {
      continue;
    }

    connectionMatrix[GRID(from, to, len)] = propability;
    if (connectionMatrix[GRID(to, from, len)] == 0) {
      connectionMatrix[GRID(to, from, len)] = propability;
    }
  }
  fclose(file);
  return 0;
}
Ejemplo n.º 11
0
int
main(int argc, char** argv)
{
  if (argc == 1) {
    fprintf(stderr, "Usage: %s (save|load|add|delete|rename|select|list|statusbar|toggle_statusbar|checkupdate|set_checkupdate) [params]\n", argv[0]);
    return 1;
  }

  bool isSuccess = false;

  if (strcmp(argv[1], "select") == 0) {
    if (argc < 3) {
      fprintf(stderr, "Usage: %s select index\n", argv[0]);
      goto finish;
    }
    int index = atoi(argv[2]);
    isSuccess = setSelectedIndex(index);

  } else if (strcmp(argv[1], "add") == 0) {
    isSuccess = appendConfig();

  } else if (strcmp(argv[1], "delete") == 0) {
    if (argc < 3) {
      fprintf(stderr, "Usage: %s delete index\n", argv[0]);
      goto finish;
    }
    int index = atoi(argv[2]);
    isSuccess = removeConfig(index);

  } else if (strcmp(argv[1], "rename") == 0) {
    // sysctl_ctl rename "index" "newname"
    if (argc < 4) {
      fprintf(stderr, "Usage: %s rename index newname\n", argv[0]);
      goto finish;
    }
    int index = atoi(argv[2]);
    char buf[512];
    snprintf(buf, sizeof(buf), "%s", argv[3]);
    stripString(buf, sizeof(buf));
    if (buf[0] == '\0') {
      snprintf(buf, sizeof(buf), "(null)");
    }
    isSuccess = renameConfig(index, buf);

  } else if (strcmp(argv[1], "list") == 0) {
    outputConfigList();
    return 0;

  } else if (strcmp(argv[1], "statusbar") == 0) {
    printf("%ld\n", getValue(CFSTR("isStatusbarEnable")));
    return 0;

  } else if (strcmp(argv[1], "toggle_statusbar") == 0) {
    CFStringRef name = CFSTR("isStatusbarEnable");
    CFIndex value = getValue(name);
    isSuccess = setValue(name, ! value);

  } else if (strcmp(argv[1], "checkupdate") == 0) {
    printf("%ld\n", getValue(CFSTR("isCheckUpdate")));
    return 0;

  } else if (strcmp(argv[1], "set_checkupdate") == 0) {
    if (argc < 3) {
      fprintf(stderr, "Usage: %s set_checkupdate value\n", argv[0]);
      goto finish;
    }

    CFStringRef name = CFSTR("isCheckUpdate");
    CFIndex value = atoi(argv[2]);
    isSuccess = setValue(name, value);

  } else if ((strcmp(argv[1], "save") == 0) || (strcmp(argv[1], "load") == 0)) {
    CFIndex value = getSelectedIndex();
    CFStringRef identify = getIdentify(value);

    const char* targetFiles[] = {
      "/Library/org.pqrs/KeyRemap4MacBook/prefpane/checkbox.xml",
      "/Library/org.pqrs/KeyRemap4MacBook/prefpane/number.xml",
      NULL,
    };
    if (strcmp(argv[1], "save") == 0) {
      isSuccess = saveToFile(targetFiles, identify);
    }
    if (strcmp(argv[1], "load") == 0) {
      system("/Library/org.pqrs/KeyRemap4MacBook/bin/KeyRemap4MacBook_sysctl_reset");
      isSuccess = loadFromFile(targetFiles, identify);
    }
  }

  CFPreferencesAppSynchronize(applicationID);

finish:
  if (isSuccess) {
    fprintf(stderr, "[DONE]\n");
  } else {
    fprintf(stderr, "[ERROR]\n");
  }

  return 0;
}
	void LobbyGUI::newNotification(const std::string& notif) {
		mLobbyOverlay->addAction( stripString(notif) );
	}
	void LobbyGUI::newMessage(const std::string& user, const std::string& line) {
		mLobbyOverlay->addText( stripString(user), stripString(line) );
	}
Ejemplo n.º 14
0
void gensatImageDownload(char *gensatXml, char *outDir, char *outLog)
/* gensatImageDownload - Download images from gensat guided by xml file.. */
{
struct xap *xap;
struct gsGensatImage *image;
char *ftpUri = "ftp://ftp.ncbi.nih.gov/pub/gensat";
char *jpgCgiUri = "http://www.ncbi.nlm.nih.gov/projects/gensat/gensat_img.cgi?action=image&mode=full&fmt=jpeg&id=";
char finalJpg[PATH_LEN];
char finalDir[PATH_LEN];
char wgetSource[PATH_LEN];
struct hash *dirHash = newHash(16);
struct dyString *mkdir = dyStringNew(0);
int imageIx = 0;

fLog = mustOpen(outLog, "a");
fprintf(fLog, "starting gensatImageDownload from %s to %s\n", gensatXml, outDir);
xap = xapListOpen(gensatXml, "GensatImageSet", gsStartHandler, gsEndHandler);


while ((image = xapListNext(xap, "GensatImage")) != NULL)
    {
    int id = image->gsGensatImageId->text;
    char *imageFile = image->gsGensatImageImageInfo->gsGensatImageImageInfoFullImg
    			->gsGensatImageInfo->gsGensatImageInfoFilename->text;

    /* Mangle file name a little */
    subChar(imageFile, '(', '_');
    stripChar(imageFile, ')');

    /* Figure out name of jpeg file in outDir. */
    verbose(1, "image %d, id %d\n", ++imageIx, id);
    safef(finalJpg, sizeof(finalJpg), "%s/%s", outDir, imageFile);
    stripString(finalJpg, ".full"); /* Image magick can't handle two suffixes */
    chopSuffix(finalJpg);
    strcat(finalJpg, ".jpg");

    /* Create directory that it goes in if necessary */
    splitPath(finalJpg, finalDir, NULL, NULL);
    if (!hashLookup(dirHash, finalDir))
        {
	hashAdd(dirHash, finalDir, NULL);
	dyStringClear(mkdir);
	dyStringPrintf(mkdir, "mkdir -p %s", finalDir);
	if (system(mkdir->string) != 0)
	    errAbort("Couldn't %s", mkdir->string);
	}

    /* Download it - either directly via ftp, or indirectly via cgi. */
    if (fileExists(finalJpg))
	{
	verbose(1, "already have %s\n", imageFile);
	fprintf(fLog, "%s already downloaded\n", finalJpg);
	}
    else
        {
	if (endsWith(imageFile, ".jpg"))
	    {
	    safef(wgetSource, sizeof(wgetSource), "%s/%s", ftpUri, imageFile);
	    if (safeGetOne(wgetSource, finalJpg))
	        fprintf(fLog, "Got via ftp %s\n", finalJpg);
	    }
	else
	    {
	    safef(wgetSource, sizeof(wgetSource), "%s%d", jpgCgiUri, id);
	    if (safeGetOne(wgetSource, finalJpg))
	        fprintf(fLog, "Got via cgi %s\n", finalJpg);
	    }
	}
    }
carefulClose(&fLog);
}
Ejemplo n.º 15
0
void Songs::setData(std::string *dataInput)
{
		
	dataString = dataInput->substr(0,dataInput->length());
		
	std::string substring;
		
	substring = getParent(dataInput);
	stripString(&substring, "[],");
	
	// std::cout << "OUTPUT>"<< dataString << std::endl;
	
	std::istringstream s(substring);
		
	s >> data.id;
	
	substring = getParent(dataInput);
	stripString(&substring, "[]");
	
	data.Title = substring;
	
	substring = getParent(dataInput);
	stripString(&substring, "[]");
		
	data.Artists = substring;
	// data.Artists.append("\0");
		
	substring = getParent(dataInput);
	
	// std::cout << substring << std::endl;
	
	stripString(&substring, "[]");
	
	// std::cout << substring << std::endl;
		
	int i;
		
	std::string subSubString;
	std::string token;
	
	data.rCount = 0;
	
	for(i = 0; ((int)substring.find("("))  != -1; i++)
	{
		// std::cout << "INPUT>" << substring << std::endl;
		
		subSubString = getChild(&substring);
		
		// std::cout << "OUTPUT>"<< subSubString << std::endl;
		// std::cout << "STRLEN>" << substring.size() << std::endl;
		// std::cout << "MASTER>" << substring << std::endl;
		
		stripString(&subSubString, "()");
		
		// std::cout << "SEARCH>" << (((int)substring.find("("))  == -1) << std::endl;
		
		// std::cout << "CLEANED>" << subSubString << std::endl;
		
		//std::cout << std::count(substring.begin(), substring.end(), ')') << std::endl;
		
		//std::cout << substring << std::endl;
		
		// std::cout << subSubString << std::endl;
			
		token = getCSV(&subSubString);
		
		// std::cout << "TOKEN1>" << token << std::endl;
		// std::cout << "OUTPUT>"<< subSubString << std::endl;
		
		data.ratings[i].User = token;
		
		token = getCSV(&subSubString);
		
		// std::cout << "TOKEN2>" << token << std::endl;
		// std::cout << "OUTPUT>"<< subSubString << std::endl;
		
		std::istringstream r(token);
		
		// std::cout << "INT>" << integer << std::endl;
		
		r >> data.ratings[i].rating;
		
		data.rCount++;
	}
}
Ejemplo n.º 16
0
static void hgPositionsJson(struct jsonWrite *jw, char *db, struct hgPositions *hgp, struct cart *cart)
/* Write out JSON description of multiple position matches. */
{
struct hgPosTable *table;
jsonWriteListStart(jw, "positionMatches");
struct trackDb *tdbList = NULL;
for (table = hgp->tableList; table != NULL; table = table->next)
    {
    if (table->posList != NULL)
	{
	char *tableName = table->name;
	// clear the tdb cache if this track is a hub track
	if (isHubTrack(tableName))
	    tdbList = NULL;
	struct trackDb *tdb = tdbForTrack(db, tableName, &tdbList);
	if (!tdb && startsWith("all_", tableName))
            tdb = tdbForTrack(db, tableName+strlen("all_"), &tdbList);
        if (!tdb)
            errAbort("no track for table \"%s\" found via a findSpec", tableName);
	char *trackName = tdb->track;
	jsonWriteObjectStart(jw, NULL);
	jsonWriteString(jw, "name", table->name);
	jsonWriteString(jw, "trackName", trackName);
	jsonWriteString(jw, "description", table->description);
	jsonWriteString(jw, "vis", hCarefulTrackOpenVis(db, trackName));
	jsonWriteListStart(jw, "matches");
	struct hgPos *pos;
	for (pos = table->posList; pos != NULL; pos = pos->next)
	    {
	    char *encMatches = cgiEncode(pos->browserName);
	    jsonWriteObjectStart(jw, NULL); // begin one match
	    if (pos->chrom != NULL)
		jsonWriteStringf(jw, "position", "%s:%d-%d",
				 pos->chrom, pos->chromStart+1, pos->chromEnd);
	    else
		// GenBank results set position to GB accession instead of chr:s-e position.
		jsonWriteString(jw, "position", pos->name);
	    // this is magic to tell the browser to make the
	    // composite and this subTrack visible
	    if (tdb->parent)
		{
		if (tdbIsSuperTrackChild(tdb))
		    jsonWriteStringf(jw, "extraSel", "%s=show&", tdb->parent->track);
		else
		    {
		    // tdb is a subtrack of a composite or a view
		    jsonWriteStringf(jw, "extraSel", "%s_sel=1&%s_sel=1&",
				     trackName, tdb->parent->track);
		    }
		}
	    jsonWriteString(jw, "hgFindMatches", encMatches);
	    jsonWriteString(jw, "posName", htmlEncodeText(pos->name, FALSE));
	    if (pos->description)
		{
		stripString(pos->description, "\n");
		jsonWriteString(jw, "description", stripAnchor(pos->description));
		}
	    jsonWriteObjectEnd(jw); // end one match
	    }
	jsonWriteListEnd(jw); // end matches
	jsonWriteObjectEnd(jw); // end one table
	}
    }
    jsonWriteListEnd(jw); // end positionMatches
}
Ejemplo n.º 17
0
/** main: initialize our shell, and loop until user specifies
 *		  exit with the appropriate commands.
 * @param c - user input (beginning with "cd ")
 */
int main(int argc, char * argv[]) {
	char input[SIZE];
	int fk = 0;
	fillPathStack();
	int OopsOrNah = -1;
	bool bg = false;

	if(argc == 2){
		OopsOrNah = open(argv[1], O_RDWR);
		if( OopsOrNah >= 0){
			dup2(OopsOrNah, STDIN_FILENO);
		} else {
			return throwError();
		}
	}
	// loop until user exits
	while (1) {

		if (OopsOrNah < 0){
			char* prompt = "CShell> ";
			write(STDOUT_FILENO, (void*) prompt, sizeof(prompt)-1);
		}
		fgets(input, SIZE, stdin);
		stripString(input);

		if(OopsOrNah >=0){puts(input);}

		int lastcharidx = lastChar(input);
		if (lastcharidx >= 0) {
			if (input[lastcharidx] == '&') {
				stripChar(input, '&');
				stripEndSpace(input);
				fk = fork();
				bg = true;
			}
		}

		//fork failed; exit
		if (fk < 0) {
			fprintf(stderr, "fork failed\n");
			exit(1);
		}

		// child process: runs bash
		else if (fk == 0) {

			if (bg) {
				strcat(input, " &");
				bg = false;
			}
			int result = parse(input);
			

			if (result == ERROR_CODE) {
				continue;
			} if (result == FORCE_EXIT) {
				return SUCCESS;
			} 
		}

		//parent does nothing
		else {
			wait(NULL);
			exit(0);
		}
	}

	return SUCCESS;
}