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

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

?? mm_util.c

?? 在linux下多媒體開發實例linux下多媒體開發
?? C
字號:
/* * Utility functions for Music Machine application */#include <unistd.h>#include <signal.h>#include <stdio.h>#include <string.h>#include <assert.h>#include <forms.h>#include "soundit.h"#include "mm.h"#include "mm_util.h"/* bitmaps for the buttons */#include "bitmaps/stop.xbm"#include "bitmaps/loop.xbm"#include "bitmaps/rest.xbm"#include "bitmaps/zero.xbm"#include "bitmaps/one.xbm"#include "bitmaps/two.xbm"#include "bitmaps/three.xbm"#include "bitmaps/four.xbm"#include "bitmaps/five.xbm"#include "bitmaps/six.xbm"#include "bitmaps/seven.xbm"#include "bitmaps/eight.xbm"#include "bitmaps/nine.xbm"#include "bitmaps/ten.xbm"#include "bitmaps/eleven.xbm"#include "bitmaps/twelve.xbm"#include "bitmaps/thirteen.xbm"#include "bitmaps/fourteen.xbm"#include "bitmaps/fifteen.xbm"/* array containing sound sample data */Sample snd[NUM_SAMPLES];/* load in sound sample files and initialize SoundIt library */void init_samples(void){  int i, status, rate;  const char *device;  char file[256];  /* stop playing and clear previous sound samples, if any */  Snd_restore();  /*   * free up any memory previously allocated - otherwise we'll have a   * major memory leak   */  for (i = 0 ; i < NUM_SAMPLES ; i++)    if (snd[i].data != 0) {      free(snd[i].data);      snd[i].data = 0;    }    /* load each sample file */  for (i = 0 ; i < NUM_SAMPLES ; i++) {    /* check for empty filename */    if (!strcmp(fl_get_input(sample_file[i]), "")) {      fl_show_alert("Error",		    "One or more sample files are empty.",		    "Enter valid sample file names and try again.",		    0);      return;    }        /* get directory and add filename to it */    strcpy(file, fl_get_input(sample_dir));    strcat(file, "/");    strcat(file, fl_get_input(sample_file[i]));        /* make sure file exists */    if (!file_exists(file)) {      char msg[256];      sprintf(msg, "Sample file \"%s\" does not exist.", file);      fl_show_alert("Warning:",		    msg,		    "Enter a valid sample file name and try again.", 0);      return;    }    status = Snd_loadRawSample(file, &snd[i]);    if (status) {      char msg[256];      sprintf(msg, "Sample file \"%s\" could not be loaded.", file);      fl_show_alert("Error:",		    msg,		    "Check the sample file and try again.",		    0);      return;    }  }  /* get sampling rate and sound device from window */  rate = atoi(fl_get_input(sampling_rate));  device = fl_get_input(audio_device);  /* initialize sound library */  status = Snd_init(NUM_SAMPLES, snd, rate, NUM_CHANNELS, device);  if (status == EXIT_FAILURE)    fl_show_alert("Error",		  "Unable to initialize SoundIt library",		  "Check parameters in options menu and try again", 		  0);}/* update bitmaps for one channel to reflect current page of sound data */void update_bitmap(FL_OBJECT *ob, int i){  switch (i) {  case STOP:    fl_set_bitmapbutton_data(ob, stop_width, stop_height, stop_bits);    break;  case LOOP:    fl_set_bitmapbutton_data(ob, loop_width, loop_height, loop_bits);    break;  case REST:    fl_set_bitmapbutton_data(ob, rest_width, rest_height, rest_bits);    break;  case 1:    fl_set_bitmapbutton_data(ob, one_width, one_height, zero_bits);    break;  case 2:    fl_set_bitmapbutton_data(ob, one_width, one_height, one_bits);    break;  case 3:    fl_set_bitmapbutton_data(ob, two_width, two_height, two_bits);    break;  case 4:    fl_set_bitmapbutton_data(ob, three_width, three_height, three_bits);    break;  case 5:    fl_set_bitmapbutton_data(ob, four_width, four_height, four_bits);    break;  case 6:    fl_set_bitmapbutton_data(ob, five_width, five_height, five_bits);    break;  case 7:    fl_set_bitmapbutton_data(ob, six_width, six_height, six_bits);    break;  case 8:    fl_set_bitmapbutton_data(ob, seven_width, seven_height, seven_bits);    break;  case 9:    fl_set_bitmapbutton_data(ob, eight_width, eight_height, eight_bits);    break;  case 10:    fl_set_bitmapbutton_data(ob, nine_width, nine_height, nine_bits);    break;  case 11:    fl_set_bitmapbutton_data(ob, ten_width, ten_height, ten_bits);    break;  case 12:    fl_set_bitmapbutton_data(ob, eleven_width, eleven_height, eleven_bits);    break;  case 13:    fl_set_bitmapbutton_data(ob, twelve_width, twelve_height, twelve_bits);    break;  case 14:    fl_set_bitmapbutton_data(ob, thirteen_width, thirteen_height, thirteen_bits);    break;  case 15:    fl_set_bitmapbutton_data(ob, fourteen_width, fourteen_height, fourteen_bits);    break;  case 16:    fl_set_bitmapbutton_data(ob, fifteen_width, fifteen_height, fifteen_bits);    break;  default:    assert(0); /* should never happen */    break;  }}/* update all bitmaps to reflect current page of sound data */void update_bitmaps(void){  int i;  int j = SAMPLES_PER_PAGE * (int) fl_get_counter_value(page);  /* optimization: "freeze" the form during updating */  fl_freeze_form(main_window);  /* update all of the note buttons */  for (i = 0 ; i < SAMPLES_PER_PAGE ; i++){    update_bitmap(channel_0[i], notes[0][i+j]);    update_bitmap(channel_1[i], notes[1][i+j]);    update_bitmap(channel_2[i], notes[2][i+j]);    update_bitmap(channel_3[i], notes[3][i+j]);    update_bitmap(channel_4[i], notes[4][i+j]);    update_bitmap(channel_5[i], notes[5][i+j]);    update_bitmap(channel_6[i], notes[6][i+j]);    update_bitmap(channel_7[i], notes[7][i+j]);  }  fl_unfreeze_form(main_window);}/* save song to a file */void save_sample_file(const char *filename){  int i, j;  FILE *fp;  /* open file for write */  fp = fopen(filename, "w");  /* error if can't open */  if (fp == 0) {    char msg[256];    sprintf(msg, "Unable to save song file \"%s\".", filename);    fl_show_alert("Error:",		  msg,		  strerror(errno),		  0);    return;  }  /* write data to file */  fprintf(fp, "Music Machine version 1.0\n");  fprintf(fp, "Audio Device: %s\n", fl_get_input(audio_device));  fprintf(fp, "Sampling Rate: %d\n", atoi(fl_get_input(sampling_rate)));  fprintf(fp, "Sample Directory: %s\n", fl_get_input(sample_dir));  fprintf(fp, "Tempo: %.0f\n", fl_get_slider_value(tempo));  for (i = 0; i < NUM_SAMPLES ; i++)    fprintf(fp, "File%d: %s\n", i, fl_get_input(sample_file[i]));  fprintf(fp, "Sample Data: %d channels %d samples\n",	  NUM_CHANNELS, NUM_PAGES*SAMPLES_PER_PAGE);  for (i = 0; i < NUM_PAGES*SAMPLES_PER_PAGE ; i++)    for (j = 0 ; j < NUM_CHANNELS ; j++)      j == NUM_CHANNELS-1 ?	fprintf(fp, "%d\n", notes[j][i]) 	  : fprintf(fp, "%d ", notes[j][i]);  /* close file */  i = fclose(fp);  /* error if can't close */  if (i != 0) {    char msg[256];    sprintf(msg, "Unable to close song file \"%s\".", filename);    fl_show_alert("Error:",		  msg,		  strerror(errno),		  0);  }}/* load song from a file */void load_sample_file(const char *filename){  int i, st;  float version;  float f;  FILE *fp;  char s1[256], s2[256];  /* open file for read */  fp = fopen(filename, "r");  /* error if can't open */  if (fp == 0) {    char msg[256];    sprintf(msg, "Unable to open song file \"%s\".", filename);    fl_show_alert("Error:",		  msg,		  strerror(errno),		  0);    return;  }  st = fscanf(fp, "Music Machine version %f\n", &version);  if (st != 1) {    fl_show_alert("Error:",		  "This is not a music machine song file.",		  "Check the file and try again.",		  0);    return;  }  if (version != 1.0) {    fl_show_alert("Error:",		  "Incompatible version of music machine song file.",		  "Should be version 1.0",		  0);    return;  }  st = fscanf(fp, "Audio Device: %s\n", s1);  if (st != 1) {    fl_show_alert("Error:",		  "Invalid song file.",		  "Audio device field is bad",		  0);    return;  }  fl_set_input(audio_device, s1);  st = fscanf(fp, "Sampling Rate: %s\n", s1);  if (st != 1) {    fl_show_alert("Error",		  "Invalid song file.",		  "Sampling rate field is bad.",		  0);    return;  }  fl_set_input(sampling_rate, s1);  st = fscanf(fp, "Sample Directory: %s\n", s1);  if (st != 1) {    fl_show_alert("Error:",		  "Invalid song file.",		  "Sample directory section is bad.",		  0);    return;  }  fl_set_input(sample_dir, s1);  st = fscanf(fp, "Tempo: %f\n", &f);  if (st != 1) {    fl_show_alert("Error",		  "Invalid song file.",		  "Tempo field section is bad.",		  0);    return;  }  fl_set_slider_value(tempo, f);  for (i = 0; i < NUM_SAMPLES ; i++) {    sprintf(s2, "File%d: %%s\n", i);    st = fscanf(fp, s2, s1);    if (st != 1) {      fl_show_alert("Error:",		    "Invalid song file.",		    "Sample file section is bad.",		    0);      return;    }    fl_set_input(sample_file[i], s1);  }  st =  fscanf(fp, "Sample Data: %d channels %d samples\n", &i, &i);  if (st != 2) {    fl_show_alert("Error:",		  "Invalid song file.",		  "Sample data header section is bad.",		  0);    return;  }  for (i = 0; i < NUM_PAGES*SAMPLES_PER_PAGE ; i++) {    st = fscanf(fp, "%d %d %d %d %d %d %d %d\n",		&notes[0][i], &notes[1][i], &notes[2][i], &notes[3][i],		&notes[4][i], &notes[5][i], &notes[6][i], &notes[7][i]);    if (st != 8) {      fl_show_alert("Error:",		    "Invalid song file.",		    "Sample data section is bad.",		    0);      return;    }  }  /* close file */  i = fclose(fp);  /* error if can't close */  if (i != 0) {    char msg[256];    sprintf(msg, "Unable to close song file \"%s\".", filename);    fl_show_alert("Error:",		  msg,		  strerror(errno),		  0);  }  /* update the display */  update_bitmaps();  /* load the new sound samples */  init_samples();}/* clear out all rhythm mmory */void clear_samples(void){  int i, j;  for (i = 0 ; i < NUM_CHANNELS ; i++)    for (j = 0 ; j < NUM_PAGES*SAMPLES_PER_PAGE ; j++)      notes[i][j] = REST;}/* *  return whether a file exists (could be a regular file, directory, * *  or even device file) */int file_exists(const char *filename){  FILE *fp = fopen(filename, "r");  if (fp != 0) {    fclose(fp);    return 1;  } else {    return 0;  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本美女一区二区| 91亚洲精华国产精华精华液| 秋霞成人午夜伦在线观看| 精品欧美一区二区久久| 日韩一级高清毛片| 久久久久久久久久久久久夜| 欧美狂野另类xxxxoooo| 日韩一级完整毛片| 欧美国产精品专区| 国产精品免费久久| 一区二区三区精品在线观看| 午夜精品久久久久久久久久久| 日韩精品五月天| 久久精品国产澳门| 成人97人人超碰人人99| 欧美丰满少妇xxxxx高潮对白 | 亚洲国产一区二区视频| 丝袜美腿亚洲一区| 国产精品自拍毛片| 欧美午夜片在线观看| 中国av一区二区三区| 日韩理论片中文av| 波多野结衣的一区二区三区| 久久久久亚洲蜜桃| 国产在线播放一区| 欧美成人a视频| 麻豆精品视频在线观看视频| 欧美日韩aaa| 天天综合色天天综合| 欧美日本一道本在线视频| 一区二区高清视频在线观看| 一本到一区二区三区| **网站欧美大片在线观看| 9人人澡人人爽人人精品| 国产精品电影一区二区三区| 国产成人亚洲综合色影视| 337p日本欧洲亚洲大胆精品| 蓝色福利精品导航| 久久综合国产精品| 国产精品亚洲一区二区三区妖精 | 日韩一区在线播放| 99在线视频精品| 亚洲精选免费视频| 欧美最猛性xxxxx直播| 亚洲午夜激情av| 91精品国产综合久久蜜臀| 无码av免费一区二区三区试看 | 欧美视频精品在线观看| 亚洲综合色视频| 91精品国产综合久久香蕉的特点 | 亚洲第一狼人社区| 91精品国产黑色紧身裤美女| 久久精品久久99精品久久| 久久综合狠狠综合久久激情 | 亚洲精品免费在线播放| 在线观看免费一区| 美美哒免费高清在线观看视频一区二区| 日韩限制级电影在线观看| 国产高清在线观看免费不卡| 中文字幕字幕中文在线中不卡视频| 色综合久久中文字幕综合网| 亚洲成人动漫在线免费观看| 精品国产91洋老外米糕| 丁香一区二区三区| 亚洲一区二区视频在线观看| 精品少妇一区二区三区免费观看| 国产精品91一区二区| 亚洲在线观看免费视频| 欧美电视剧免费全集观看| 成人精品高清在线| 日本中文在线一区| 亚洲欧美偷拍三级| 欧美一激情一区二区三区| 99精品欧美一区二区三区小说| 天堂va蜜桃一区二区三区漫画版| 久久中文字幕电影| 欧美日韩成人综合天天影院| 国产成人av电影在线| 亚洲成年人影院| 国产精品视频yy9299一区| 欧美乱妇23p| 不卡一区二区三区四区| 久久er99精品| 亚洲va韩国va欧美va| 日本一区二区三区电影| 88在线观看91蜜桃国自产| 成人黄页毛片网站| 天堂在线亚洲视频| 中文字幕巨乱亚洲| 日韩欧美黄色影院| 色伊人久久综合中文字幕| 天堂va蜜桃一区二区三区漫画版| 亚洲欧美中日韩| 国产午夜精品一区二区| 欧美精品aⅴ在线视频| 91麻豆国产在线观看| 国产精品小仙女| 久久激情五月婷婷| 亚洲成a人片综合在线| 一区二区三区精品| 亚洲欧美福利一区二区| 中文字幕乱码亚洲精品一区| 久久人人超碰精品| 欧美日韩精品一区二区| 99精品国产99久久久久久白柏| 国产91精品免费| 成人综合婷婷国产精品久久免费| 国产麻豆91精品| 国产在线观看一区二区| 韩国成人福利片在线播放| 久久精品国产亚洲5555| 久久成人综合网| 极品少妇xxxx精品少妇偷拍| 精品一区二区国语对白| 欧美日产在线观看| 91福利国产精品| 色哟哟精品一区| 色综合欧美在线视频区| 麻豆免费精品视频| 国产日韩精品一区二区三区在线| 精品国产不卡一区二区三区| 欧美无砖专区一中文字| 一级精品视频在线观看宜春院 | 色国产精品一区在线观看| 亚洲欧美另类久久久精品| 欧美va日韩va| 国产成人夜色高潮福利影视| 一区二区三区鲁丝不卡| 91片黄在线观看| 成人一二三区视频| 午夜不卡在线视频| 国产精品乱子久久久久| 91丝袜美女网| 强制捆绑调教一区二区| 亚洲午夜av在线| 亚洲欧洲无码一区二区三区| 久久精品欧美日韩| 精品三级在线看| 国产精品免费视频观看| 91成人在线观看喷潮| 美女网站色91| 亚洲乱码一区二区三区在线观看| 国产欧美一区二区精品性色| 精品国产乱码久久久久久老虎| 日韩在线卡一卡二| 亚洲一区二区欧美日韩| 国产精品久久久爽爽爽麻豆色哟哟| 成人免费小视频| jizzjizzjizz欧美| 蜜桃久久久久久久| 美女一区二区三区| 欧美a级一区二区| 久久se这里有精品| 久久9热精品视频| 久久精品国产精品亚洲综合| 亚洲六月丁香色婷婷综合久久| 日本中文字幕一区| 韩国成人精品a∨在线观看| 六月丁香婷婷久久| 日韩影视精彩在线| 国产真实精品久久二三区| 九九国产精品视频| 成人av高清在线| 在线观看日韩高清av| 亚洲尤物在线视频观看| 亚洲一区精品在线| 亚洲成人资源在线| 日韩av不卡在线观看| 精品一区二区三区免费观看 | |精品福利一区二区三区| 亚洲色图清纯唯美| 午夜精品久久一牛影视| 日本美女一区二区| 国产一区二区h| 97se狠狠狠综合亚洲狠狠| 91久久精品国产91性色tv| 欧美精品日日鲁夜夜添| 精品欧美乱码久久久久久| 国产亚洲一区二区三区| 日韩1区2区3区| 国产精品一区免费视频| 亚洲欧美另类在线| 日韩精品成人一区二区三区| 韩国毛片一区二区三区| 成人午夜av影视| 欧美日韩国产在线播放网站| 久久一日本道色综合| 国产亚洲1区2区3区| 精品在线一区二区| 国产成人av一区| 97久久超碰国产精品| 日韩一区国产二区欧美三区| 欧美国产日韩一二三区| 亚洲国产日韩a在线播放性色| 狠狠v欧美v日韩v亚洲ⅴ| 99久久99久久精品国产片果冻| 国产精品美女久久久久aⅴ| 日本美女一区二区三区| 91久久人澡人人添人人爽欧美 | 久久99精品久久久久久国产越南 |