亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tchord.cpp

?? 在linux下多媒體開發實例linux下多媒體開發
?? CPP
字號:
//  tchord.cpp// guitar chord database and sound functions#include <fstream.h>#include <string.h>#include <v/vdebug.h>#include "tchord.h"#include "tutils.h"// Constructor. Just calls load routine.tutChords::tutChords(char *fileName){  UserDebug1(Constructor, "tutChords::tutChords(%s)\n", fileName);  load(fileName);}// Load chord database file. Returns -1 on error.int tutChords::load(char *fileName){  UserDebug1(Misc, "tutChords::load(%s)\n", fileName);  fstream fs(fileName, ios::in);  if (fs.bad()) {    UserDebug1(BadVals, "tutChords::load(%s) can't open file\n", fileName);    /*    return -1; */  }  // check for "magic number" at top of file  char tmp[255];  fs >> tmp;  if (strcmp(tmp, "#GuitarTutor")) {    UserDebug1(BadVals, "tutChords::load(%s) not a valid data file\n", fileName);    return -1;  }  strcpy(tutChords::fileName, fileName);  numChords = 0;  char longName[255], shortName[255], strings[255], sampleFile[255];         do {    fs >> longName >> shortName >> strings >> sampleFile;    if (strlen(sampleFile)) {      // sanity check on strings field      if ((strlen(strings) != numStrings) ||	  (strspn(strings, "X012345678") != numStrings)) {	UserDebug1(BadVals, "tutChords::load(%s) bad data in file\n",		   fileName);	return -1;      }      // input file uses underscore to indicate space      StrSub(longName, '_', ' ');      StrSub(shortName, '_', ' ');      strcpy(chord[numChords].longName, longName);      strcpy(chord[numChords].shortName, shortName);      strcpy(chord[numChords].strings, strings);      strcpy(chord[numChords].sampleFile, sampleFile);      chordList[numChords] = chord[numChords].longName;      numChords++;      if (numChords >= maxChords) { // check for array overflow	UserDebug1(BadVals, "tutChords::load(%s) too many chords in file\n",		   fileName);	return -1;      }      chordList[numChords] = 0; // clear next entry    }  }  while (!fs.eof());  UserDebug1(Misc, "tutChords::load() read %d chords\n", numChords);  fs.close();  if (numChords == 0)    return -1;  else    return 0;}// Given chord name, return fingering info. Returns -1 on error.int tutChords::fingering(char *longName, strings_t &strings){  UserDebug1(Misc, "tutChords::fingering(%s)\n", longName);  for (int i = 0 ; i < numChords ; i++) {    if (!strcmp(longName, chord[i].longName)) {      strings = chord[i].strings;      return 0;    }  }  UserDebug1(BadVals, "tutChords::fingering(%s) can't find chord\n", longName);  return -1;}// Save chord database to file.int tutChords::save(char *filename){  UserDebug1(Misc, "tutChords::save(%s)\n", fileName);  fstream fs(filename, ios::out);  if (fs.bad()) {    UserDebug1(BadVals, "tutChords::save(%s) can't open file\n", fileName);    return -1;  }    // write "magic number" at top of file  fs << "#GuitarTutor" << endl;  for (int i = 0 ; i < numChords ; i++) {    char longName[255], shortName[255];    strcpy(longName, chord[i].longName);    strcpy(shortName, chord[i].shortName);    // convert spaces to underscore    StrSub(longName, ' ', '_');    StrSub(shortName, ' ', '_');    fs << longName << " " << shortName << " " <<      chord[i].strings[0] << chord[i].strings[1] <<      chord[i].strings[2] << chord[i].strings[3] <<      chord[i].strings[4] << chord[i].strings[5] <<      " " << chord[i].sampleFile << endl;  }  fs.close();  return 0;}// Play a chord. Returns -1 on error.int tutChords::play(char *chordName){  UserDebug1(Misc, "tutChords::play(%s)\n", chordName);  char *sampleFile = 0;  const char *sound = "/dev/dsp"; // sound device  // find the sample  for (int i = 0 ; i < numChords ; i++) {    if (!strcmp(chordName, chord[i].longName)) {      sampleFile = chord[i].sampleFile;      break;    }  }  // this chord was not found  if (sampleFile == 0) {    UserDebug1(BadVals, "tutChords::play(%s) can't find chord\n", chordName);    return -1;  }  // open sample file for read  fstream in(sampleFile, ios::in);  if (in.bad()) {    UserDebug1(BadVals, "tutChords::play() can't open %s\n", sampleFile);    return -1;  }  // open DSP for write  fstream out(sound, ios::out);  if (out.bad()) {    UserDebug1(BadVals, "tutChords::play() can't open %s\n", sound);    return -1;  }  // read sample file, write to DSP  unsigned char buf;  while (!in.eof()) {    in >> buf;    out << buf;  }  // close files  out.close();  in.close();  return 0;}// return array of chord namesvoid tutChords::chordNames(chordList_t list){  UserDebug(Misc, "tutChords::chordNames()\n");  int i;  for (i = 0 ; i < numChords ; i++)    list[i] = chordList[i];  list[i] = 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91原创在线视频| 日韩一区二区三区av| 国产黄色成人av| 狠狠v欧美v日韩v亚洲ⅴ| 久久国产精品区| 精品一区二区三区在线视频| 免费高清在线一区| 日本成人在线一区| 日本美女视频一区二区| 美女网站色91| 国内精品伊人久久久久av一坑| 捆绑调教美女网站视频一区| 久久电影网电视剧免费观看| 久久99精品国产麻豆婷婷洗澡| 蜜臂av日日欢夜夜爽一区| 精品一区免费av| 粉嫩aⅴ一区二区三区四区| 成人精品视频网站| 色综合欧美在线| 欧美日韩精品一区二区三区蜜桃| 欧美片网站yy| 精品理论电影在线观看| 国产亚洲欧美激情| 中文字幕一区二区三区视频| 亚洲综合免费观看高清完整版在线| 天天操天天综合网| 久久成人18免费观看| 国产**成人网毛片九色 | 欧美区视频在线观看| 日韩午夜精品视频| 久久久久久久综合日本| 亚洲视频一区在线观看| 午夜久久电影网| 精品无码三级在线观看视频| 成人免费观看视频| 欧亚洲嫩模精品一区三区| 制服丝袜中文字幕一区| 国产午夜亚洲精品理论片色戒| 综合精品久久久| 婷婷久久综合九色综合绿巨人 | 一本久道久久综合中文字幕| 欧美日韩一区二区电影| 精品福利一区二区三区| √…a在线天堂一区| 爽爽淫人综合网网站| 丁香婷婷深情五月亚洲| 欧美日韩久久一区二区| 国产色一区二区| 亚洲国产精品久久久久婷婷884| 蜜桃av噜噜一区二区三区小说| 91在线视频免费91| 日韩欧美一区二区免费| 亚洲美女在线一区| 国产一区二区三区av电影| 欧美性xxxxx极品少妇| 久久亚洲欧美国产精品乐播| 亚洲综合色网站| 国产精品综合在线视频| 在线播放一区二区三区| 国产精品少妇自拍| 麻豆一区二区在线| 一本一本大道香蕉久在线精品 | 久久久影视传媒| 亚洲成av人片在线观看无码| 成人涩涩免费视频| 日韩一区二区免费视频| 亚洲精品久久7777| 国产麻豆欧美日韩一区| 欧美日本免费一区二区三区| 国产精品丝袜91| 精品综合久久久久久8888| 欧美丝袜丝nylons| 亚洲日本丝袜连裤袜办公室| 国产综合色产在线精品| 欧美精品久久一区二区三区| 日韩美女视频一区| 国产91在线|亚洲| 欧美成人综合网站| 日韩国产精品久久久久久亚洲| 91在线丨porny丨国产| 国产色婷婷亚洲99精品小说| 蜜臀精品久久久久久蜜臀| 欧美性猛交一区二区三区精品| 中文字幕制服丝袜成人av| 国模无码大尺度一区二区三区| 欧美一级专区免费大片| 日韩精品午夜视频| 欧美人xxxx| 香蕉加勒比综合久久| 在线观看不卡一区| 国产精品美女一区二区在线观看| 麻豆精品一二三| 色悠久久久久综合欧美99| 欧美这里有精品| 国产精品免费看片| 美女免费视频一区| 91麻豆精品国产91久久久久久| 亚洲午夜视频在线| 成人ar影院免费观看视频| 国产日产欧产精品推荐色| 国产美女精品一区二区三区| 欧美成人三级电影在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 777欧美精品| 中文字幕在线一区二区三区| 精品国产免费视频| 国产欧美一区二区精品性| 国产一区啦啦啦在线观看| 久久综合色之久久综合| 精品一区二区在线视频| 精品国产一区二区三区av性色| 另类中文字幕网| 精品少妇一区二区三区在线视频| 国产在线不卡一卡二卡三卡四卡| 久久众筹精品私拍模特| 国精产品一区一区三区mba桃花| 26uuu精品一区二区三区四区在线| 久久av资源站| 国产丝袜美腿一区二区三区| 99在线热播精品免费| 一区二区三区免费在线观看| 欧美性受xxxx黑人xyx性爽| 亚洲一级二级三级在线免费观看| 欧美日韩在线三级| 麻豆精品一区二区三区| 国产亲近乱来精品视频| 91色在线porny| 午夜激情久久久| 精品电影一区二区三区| 成人黄色小视频在线观看| 亚洲精品乱码久久久久久久久| 欧美日本高清视频在线观看| 麻豆91精品视频| 欧美激情中文字幕一区二区| 色8久久人人97超碰香蕉987| 日韩黄色免费电影| 国产日产欧产精品推荐色| 91看片淫黄大片一级在线观看| 午夜视频久久久久久| 久久久久久久综合日本| 日本久久电影网| 久久精品国产999大香线蕉| 国产精品免费视频网站| 欧美三区在线视频| 激情文学综合插| 中文字幕一区免费在线观看 | 久久人人爽人人爽| 91在线免费播放| 奇米在线7777在线精品| 国产欧美日韩激情| 欧美人牲a欧美精品| 成人在线综合网| 亚洲成av人片在线| 欧美激情一区不卡| 678五月天丁香亚洲综合网| 国产91丝袜在线播放0| 亚欧色一区w666天堂| 久久精品一区二区三区av| 欧美性xxxxxxxx| 国产91精品一区二区麻豆亚洲| 五月天网站亚洲| 亚洲国产精品二十页| 日韩丝袜情趣美女图片| 一本大道久久a久久综合婷婷| 看片的网站亚洲| 一区二区久久久久久| 久久先锋影音av| 欧美日韩大陆在线| 99在线精品视频| 精品亚洲成av人在线观看| 亚洲一区二区三区四区不卡| 日本一区二区三区dvd视频在线| 欧美日韩国产美| 99久久夜色精品国产网站| 久久国产精品第一页| 午夜免费久久看| 亚洲黄色av一区| 国产精品久久久久一区二区三区共 | 国产精品2024| 日韩中文字幕91| 亚洲乱码国产乱码精品精98午夜 | 91国在线观看| 麻豆精品一区二区| 亚洲精品在线观看视频| 国产在线看一区| 秋霞午夜av一区二区三区| 一区二区欧美视频| 日本一区二区三区在线不卡| 777久久久精品| 欧美网站一区二区| 在线看不卡av| 91在线国内视频| 国产99久久久国产精品潘金网站| 国产一区二区主播在线| 美女脱光内衣内裤视频久久影院| 午夜电影网一区| 亚洲v精品v日韩v欧美v专区| 亚洲自拍偷拍欧美| 亚洲在线观看免费| 亚洲午夜一二三区视频|