📄 wav_id.c
字号:
/* wav_id.c 14.07.99 tn machine-independent (work both on big and little endian) code to check if we have valid wavheader that is configured for cd-quality (16 bit, stereo, 44.1kHz)*/#include <string.h>#include <glib.h>#include "xcdroast.h"/* check if valid wav-header *//* endian independent version *//* return 1 if true, 0 if not */gint is_std_wav_file(guchar *hdr) {gchar tmp[MAXLINE];guint wFormatTag; strncpy(tmp,(char *) hdr+0,4); if (strncmp(tmp,"RIFF",4) != 0) return 0; strncpy(tmp,(char *) hdr+8,4); if (strncmp(tmp,(char *)"WAVE",4) != 0) return 0; strncpy(tmp,(char *) hdr+12,4); if (strncmp(tmp,(char *)"fmt ",4) != 0) return 0; strncpy(tmp,(char *) hdr+36,4); if (strncmp(tmp,(char *)"data",4) != 0) return 0; wFormatTag = (hdr[21] << 8) + hdr[20]; if (wFormatTag != 1) return 0; return 1;}/* check if wav-file is in cd-quality *//* endian independent version *//* return 1 if true, 0 if not */gint is_in_cd_quality(guchar *hdr) {guint nChannels;guint wBitsPerSample;guint nSamplesPerSec; nChannels = (hdr[23] << 8) + hdr[22]; wBitsPerSample = (hdr[35] << 8) + hdr[34]; nSamplesPerSec = (hdr[27]<<24) + (hdr[26]<<16) + (hdr[25]<<8) + hdr[24]; if (nChannels != 2 || wBitsPerSample != 16 || nSamplesPerSec != 44100) return 0; return 1; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -