⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpg123.h

📁 xmms-1.2.10.tar.gz学习使用的就下吧
💻 H
字号:
/* * mpg123 defines  * used source: musicout.h from mpegaudio package */#ifndef __MPG123_H__#define __MPG123_H__#include "config.h"#include <stdio.h>#include <string.h>#include <stdlib.h>#include <signal.h>#include <sys/types.h>#include <sys/wait.h>#include <sys/stat.h>#include <unistd.h>#include <math.h>enum {	SYNTH_AUTO,	SYNTH_FPU,	SYNTH_3DNOW,	SYNTH_MMX,};enum {	DETECT_EXTENSION,	DETECT_CONTENT,	DETECT_BOTH};#include <gtk/gtk.h>#include "xmms/plugin.h"#include "libxmms/util.h"#include "xmms/i18n.h"#include "dxhead.h"#include "id3.h"#define real float#define         SBLIMIT                 32#define         SCALE_BLOCK             12#define         SSLIMIT                 18#define         MPG_MD_STEREO           0#define         MPG_MD_JOINT_STEREO     1#define         MPG_MD_DUAL_CHANNEL     2#define         MPG_MD_MONO             3struct id3v1tag_t {	char tag[3]; /* always "TAG": defines ID3v1 tag 128 bytes before EOF */	char title[30];	char artist[30];	char album[30];	char year[4];	union {		struct {			char comment[30];		} v1_0;		struct {			char comment[28];			char __zero;			unsigned char track_number;		} v1_1;	} u;	unsigned char genre;};struct id3tag_t {	char title[128];	char artist[128];	char album[128];	char comment[256];	char genre[256];	int year;	int track_number;};typedef struct{	int going, num_frames, eof, jump_to_time, eq_active;	int songtime;	double tpf;	float eq_mul[576];	gboolean output_audio, first_frame, network_stream;	guint32 filesize;	/* Filesize without junk */}PlayerInfo;void mpg123_set_eq(int on, float preamp, float *band);void mpg123_file_info_box(char *);extern PlayerInfo *mpg123_info;extern InputPlugin mpg123_ip;struct al_table{	short bits;	short d;};struct frame{	struct al_table *alloc;	int (*synth) (real *, int, unsigned char *, int *);	int (*synth_mono) (real *, unsigned char *, int *);#ifdef USE_SIMD	void (*dct36)(real *,real *,real *,real *,real *);#endif	int stereo;	int jsbound;	int single;	int II_sblimit;	int down_sample_sblimit;	int lsf;	int mpeg25;	int down_sample;	int header_change;	int lay;	int (*do_layer) (struct frame * fr);	int error_protection;	int bitrate_index;	int sampling_frequency;	int padding;	int extension;	int mode;	int mode_ext;	int copyright;	int original;	int emphasis;	int framesize;		/* computed framesize */	int synth_type;};void mpg123_configure(void);typedef struct{	gint resolution;	gint channels;	gint downsample;	gint http_buffer_size;	gint http_prebuffer;	gboolean use_proxy;	gchar *proxy_host;	gint proxy_port;	gboolean proxy_use_auth;	gchar *proxy_user, *proxy_pass;	gboolean save_http_stream;	gchar *save_http_path;	gboolean cast_title_streaming;	gboolean use_udp_channel;	gchar *id3_format;	gboolean title_override, disable_id3v2;	int detect_by;	int default_synth;}MPG123Config;extern MPG123Config mpg123_cfg;struct bitstream_info{	int bitindex;	unsigned char *wordpointer;};extern struct bitstream_info bsi;/* ------ Declarations from "http.c" ------ */extern int mpg123_http_open(char *url);int mpg123_http_read(gpointer data, gint length);void mpg123_http_close(void);char *mpg123_http_get_title(char * url);int mpg123_http_get_length(void);void mpg123_http_seek(long pos);/* ------ Declarations from "common.c" ------ */extern unsigned int mpg123_get1bit(void);extern unsigned int mpg123_getbits(int);extern unsigned int mpg123_getbits_fast(int);extern void mpg123_open_stream(char *bs_filenam, int fd);extern int mpg123_head_check(unsigned long);extern void mpg123_stream_close(void);extern void mpg123_set_pointer(long);extern unsigned char *mpg123_pcm_sample;extern int mpg123_pcm_point;struct gr_info_s{	int scfsi;	unsigned part2_3_length;	unsigned big_values;	unsigned scalefac_compress;	unsigned block_type;	unsigned mixed_block_flag;	unsigned table_select[3];	unsigned subblock_gain[3];	unsigned maxband[3];	unsigned maxbandl;	unsigned maxb;	unsigned region1start;	unsigned region2start;	unsigned preflag;	unsigned scalefac_scale;	unsigned count1table_select;	real *full_gain[3];	real *pow2gain;};struct III_sideinfo{	unsigned main_data_begin;	unsigned private_bits;	struct	{		struct gr_info_s gr[2];	}	ch[2];};extern void open_stream(char *, int fd);extern long mpg123_tell_stream(void);extern void mpg123_read_frame_init(void);extern int mpg123_read_frame(struct frame *fr);extern int mpg123_back_frame(struct frame *fr, int num);int mpg123_stream_jump_to_frame(struct frame *fr, int frame);int mpg123_stream_jump_to_byte(struct frame *fr, int byte);int mpg123_stream_check_for_xing_header(struct frame *fr, xing_header_t * xhead);int mpg123_calc_numframes(struct frame *fr);extern int mpg123_do_layer3(struct frame *fr);extern int mpg123_do_layer2(struct frame *fr);extern int mpg123_do_layer1(struct frame *fr);extern int mpg123_synth_1to1(real *, int, unsigned char *, int *);extern int mpg123_synth_1to1_8bit(real *, int, unsigned char *, int *);extern int mpg123_synth_1to1_mono(real *, unsigned char *, int *);extern int mpg123_synth_1to1_mono2stereo(real *, unsigned char *, int *);extern int mpg123_synth_1to1_8bit_mono(real *, unsigned char *, int *);extern int mpg123_synth_1to1_8bit_mono2stereo(real *, unsigned char *, int *);extern int mpg123_synth_2to1(real *, int, unsigned char *, int *);extern int mpg123_synth_2to1_8bit(real *, int, unsigned char *, int *);extern int mpg123_synth_2to1_mono(real *, unsigned char *, int *);extern int mpg123_synth_2to1_mono2stereo(real *, unsigned char *, int *);extern int mpg123_synth_2to1_8bit_mono(real *, unsigned char *, int *);extern int mpg123_synth_2to1_8bit_mono2stereo(real *, unsigned char *, int *);extern int mpg123_synth_4to1(real *, int, unsigned char *, int *);extern int mpg123_synth_4to1_8bit(real *, int, unsigned char *, int *);extern int mpg123_synth_4to1_mono(real *, unsigned char *, int *);extern int mpg123_synth_4to1_mono2stereo(real *, unsigned char *, int *);extern int mpg123_synth_4to1_8bit_mono(real *, unsigned char *, int *);extern int mpg123_synth_4to1_8bit_mono2stereo(real *, unsigned char *, int *);extern void mpg123_rewindNbits(int bits);extern int mpg123_hsstell(void);extern void mpg123_set_pointer(long);extern void mpg123_huffman_decoder(int, int *);extern void mpg123_huffman_count1(int, int *);extern int mpg123_get_songlen(struct frame *fr, int no);#ifdef USE_SIMDvoid mpg123_dct64_mmx(real *,real *,real *);int mpg123_synth_1to1_mmx(real *, int, unsigned char *, int *);void mpg123_dct36(real *,real *,real *,real *,real *);void dct36_3dnow(real *,real *,real *,real *,real *);int mpg123_synth_1to1_3dnow(real *,int,unsigned char *,int *);int mpg123_getcpuflags(guint32 *fflags, guint32 *efflags);#else#define mpg123_getcpuflags(a, b)		\do {						\	*(a) = 0;				\	*(b) = 0;				\} while (0)#endifvoid mpg123_init_layer3(int);void mpg123_init_layer2(gboolean);void mpg123_make_decode_tables(long scaleval);void mpg123_make_conv16to8_table(void);void mpg123_dct64(real *, real *, real *);int mpg123_decode_header(struct frame *fr, unsigned long newhead);double mpg123_compute_bpf(struct frame *fr);double mpg123_compute_tpf(struct frame *fr);guint mpg123_strip_spaces(char *src, size_t n);void mpg123_get_id3v2(struct id3_tag * id3d, struct id3tag_t *tag);gchar *mpg123_format_song_title(struct id3tag_t *tag, gchar *filename);double mpg123_relative_pos(void);extern unsigned char *mpg123_conv16to8;extern const int mpg123_freqs[9];extern real mpg123_muls[27][64];extern real mpg123_decwin[512 + 32];extern real *mpg123_pnts[5];#define GENRE_MAX 0x94extern const char *mpg123_id3_genres[GENRE_MAX];extern const int tabsel_123[2][3][16];#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -