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

📄 gui_main.c

📁 Aqualung is an advanced music player primarily targeted for the GNU/Linux operating system, but als
💻 C
📖 第 1 页 / 共 5 页
字号:
		str[0] = '\0';		break;#ifdef HAVE_SNDFILE	case SF_FORMAT_WAV:		strcpy(str, "Microsoft WAV");		break;	case SF_FORMAT_AIFF:		strcpy(str, "Apple/SGI AIFF");		break;	case SF_FORMAT_AU:		strcpy(str, "Sun/NeXT AU");		break;	case SF_FORMAT_PAF:		strcpy(str, "Ensoniq PARIS");		break;	case SF_FORMAT_SVX:		strcpy(str, "Amiga IFF / SVX8 / SV16");		break;	case SF_FORMAT_NIST:		strcpy(str, "Sphere NIST");		break;	case SF_FORMAT_VOC:		strcpy(str, "VOC");		break;	case SF_FORMAT_IRCAM:		strcpy(str, "Berkeley/IRCAM/CARL");		break;	case SF_FORMAT_W64:		strcpy(str, "Sonic Foundry 64 bit RIFF/WAV");		break;	case SF_FORMAT_MAT4:		strcpy(str, "Matlab (tm) V4.2 / GNU Octave 2.0");		break;    #ifdef HAVE_NEW_SNDFILE    /* version(libsndfile) >= 1.0.12 */	case SF_FORMAT_PVF:		strcpy(str, "Portable Voice Format");		break;	case SF_FORMAT_XI:		strcpy(str, "Fasttracker 2 Extended Instrument");		break;	case SF_FORMAT_HTK:		strcpy(str, "HMM Tool Kit");		break;	case SF_FORMAT_SDS:		strcpy(str, "Midi Sample Dump Standard");		break;	case SF_FORMAT_AVR:		strcpy(str, "Audio Visual Research");		break;	case SF_FORMAT_WAVEX:		strcpy(str, "MS WAVE with WAVEFORMATEX");		break;	case SF_FORMAT_SD2:		strcpy(str, "Sound Designer 2");		break;	case SF_FORMAT_FLAC:		strcpy(str, "FLAC");		break;	case SF_FORMAT_CAF:		strcpy(str, "Core Audio File");		break;    #endif /* HAVE_NEW_SNDFILE */#endif /* HAVE_SNDFILE */#ifdef HAVE_FLAC	case FORMAT_FLAC:		strcpy(str, "FLAC");		break;#endif /* HAVE_FLAC */#ifdef HAVE_OGG_VORBIS	case FORMAT_VORBIS:		strcpy(str, "Ogg Vorbis");		break;#endif /* HAVE_OGG_VORBIS */#ifdef HAVE_SPEEX	case FORMAT_SPEEX:		strcpy(str, "Ogg Speex");		break;#endif /* HAVE_SPEEX */#ifdef HAVE_MPC	case FORMAT_MPC:		strcpy(str, "Musepack");		break;#endif /* HAVE_MPC */#ifdef HAVE_MPEG	case FORMAT_MAD:		strcpy(str, "MPEG Audio");		break;#endif /* HAVE_MPEG */#ifdef HAVE_MOD        case FORMAT_MOD:                strcpy(str, "MOD Audio");                break;#endif /* HAVE_MOD */#ifdef HAVE_MAC        case FORMAT_MAC:                strcpy(str, "Monkey's Audio");                break;#endif /* HAVE_MAC */	default:		strcpy(str, _("Unrecognized"));		break;	}#ifdef HAVE_SNDFILE	if (v_major < 0x1000000) {		switch (v_minor) {		case SF_FORMAT_PCM_S8:			sprintf(str, "%s %s%s%s", str, "(8 ", _("bit signed"), ")");			break;		case SF_FORMAT_PCM_U8:			sprintf(str, "%s %s%s%s", str, "(16 ", _("bit unsigned"), ")");			break;		case SF_FORMAT_PCM_16:			sprintf(str, "%s %s%s%s", str, "(16 ", _("bit signed"), ")");			break;		case SF_FORMAT_PCM_24:			sprintf(str, "%s %s%s%s", str, "(24 ", _("bit signed"), ")");			break;		case SF_FORMAT_PCM_32:			sprintf(str, "%s %s%s%s", str, "(32 ", _("bit signed"), ")");			break;		case SF_FORMAT_FLOAT:			sprintf(str, "%s %s%s%s", str, "(32 ", _("bit float"), ")");			break;		case SF_FORMAT_DOUBLE:			sprintf(str, "%s %s%s%s", str, "(64 ", _("bit double"), ")");			break;		case SF_FORMAT_ULAW:			sprintf(str, "%s %s%s%s", str, "(u-Law ", _("encoding"), ")");			break;		case SF_FORMAT_ALAW:			sprintf(str, "%s %s%s%s", str, "(A-Law ", _("encoding"), ")");			break;		case SF_FORMAT_IMA_ADPCM:			sprintf(str, "%s %s%s%s", str, "(IMA ADPCM ", _("encoding"), ")");			break;		case SF_FORMAT_MS_ADPCM:			sprintf(str, "%s %s%s%s", str, "(Microsoft ADPCM ", _("encoding"), ")");			break;		case SF_FORMAT_GSM610:			sprintf(str, "%s %s%s%s", str, "(GSM 6.10 ", _("encoding"), ")");			break;		case SF_FORMAT_VOX_ADPCM:			sprintf(str, "%s %s%s%s", str, "(Oki Dialogic ADPCM ", _("encoding"), ")");			break;		case SF_FORMAT_G721_32:			sprintf(str, "%s %s%s%s", str, "(32kbps G721 ADPCM ", _("encoding"), ")");			break;		case SF_FORMAT_G723_24:			sprintf(str, "%s %s%s%s", str, "(24kbps G723 ADPCM ", _("encoding"), ")");			break;		case SF_FORMAT_G723_40:			sprintf(str, "%s %s%s%s", str, "(40kbps G723 ADPCM ", _("encoding"), ")");			break;		case SF_FORMAT_DWVW_12:			sprintf(str, "%s %s%s%s", str, "(12 bit DWVW ", _("encoding"), ")");			break;		case SF_FORMAT_DWVW_16:			sprintf(str, "%s %s%s%s", str, "(16 bit DWVW ", _("encoding"), ")");			break;		case SF_FORMAT_DWVW_24:			sprintf(str, "%s %s%s%s", str, "(24 bit DWVW ", _("encoding"), ")");			break;		case SF_FORMAT_DWVW_N:			sprintf(str, "%s %s%s%s", str, "(N bit DWVW ", _("encoding"), ")");			break;		}	}#endif /* HAVE_SNDFILE */#ifdef HAVE_MPC	if (v_major == FORMAT_MPC) {				switch (v_minor) {		case 7:			sprintf(str, "%s (%s)", str, _("Profile: Telephone"));			break;		case 8:			sprintf(str, "%s (%s)", str, _("Profile: Thumb"));			break;		case 9:			sprintf(str, "%s (%s)", str, _("Profile: Radio"));			break;		case 10:			sprintf(str, "%s (%s)", str, _("Profile: Standard"));			break;		case 11:			sprintf(str, "%s (%s)", str, _("Profile: Xtreme"));			break;		case 12:			sprintf(str, "%s (%s)", str, _("Profile: Insane"));			break;		case 13:			sprintf(str, "%s (%s)", str, _("Profile: Braindead"));			break;		}	}#endif /* HAVE_MPC */#ifdef HAVE_MPEG	if (v_major == FORMAT_MAD) {				if (v_minor & 0xff7) {						strcat(str, " (");						switch (v_minor & MPEG_LAYER_MASK) {			case MPEG_LAYER_I:				strcat(str, _("Layer I"));				break;			case MPEG_LAYER_II:				strcat(str, _("Layer II"));				break;			case MPEG_LAYER_III:				strcat(str, _("Layer III"));				break;			default:				strcat(str, _("Unrecognized"));				break;			}		}	        if ((v_minor & MPEG_LAYER_MASK) && (v_minor & (MPEG_MODE_MASK | MPEG_EMPH_MASK)))			strcat(str, ", ");		switch (v_minor & MPEG_MODE_MASK) {		case MPEG_MODE_SINGLE:			strcat(str, _("Single channel"));			break;		case MPEG_MODE_DUAL:			strcat(str, _("Dual channel"));			break;		case MPEG_MODE_JOINT:			strcat(str, _("Joint stereo"));			break;		case MPEG_MODE_STEREO:			strcat(str, _("Stereo"));			break;		}		if ((v_minor & MPEG_MODE_MASK) && (v_minor & MPEG_EMPH_MASK))			strcat(str, ", ");		switch (v_minor & MPEG_EMPH_MASK) {		case MPEG_EMPH_NONE:			strcat(str, _("Emphasis: none"));			break;		case MPEG_EMPH_5015:			sprintf(str, "%s%s 50/15 us", str, _("Emphasis:"));			break;		case MPEG_EMPH_J_17:			sprintf(str, "%s%s CCITT J.17", str, _("Emphasis:"));			break;		case MPEG_EMPH_RES:			strcat(str, _("Emphasis: reserved"));			break;		}				strcat(str, ")");	}#endif /* HAVE_MPEG */#ifdef HAVE_MAC	if (v_major == FORMAT_MAC) {		switch (v_minor) {		case MAC_COMP_FAST:			sprintf(str, "%s (%s)", str, _("Compression: Fast"));			break;		case MAC_COMP_NORMAL:			sprintf(str, "%s (%s)", str, _("Compression: Normal"));			break;		case MAC_COMP_HIGH:			sprintf(str, "%s (%s)", str, _("Compression: High"));			break;		case MAC_COMP_EXTRA:			sprintf(str, "%s (%s)", str, _("Compression: Extra High"));			break;		case MAC_COMP_INSANE:			sprintf(str, "%s (%s)", str, _("Compression: Insane"));			break;		}	}#endif /* HAVE_MAC */}voidset_format_label(int v_major, int v_minor) {	char str[MAXLEN];	if (!is_file_loaded) {		if (GTK_IS_LABEL(label_format))			gtk_label_set_text(GTK_LABEL(label_format), "");		return;	}	assembly_format_label(str, v_major, v_minor);	if (GTK_IS_LABEL(label_format))		gtk_label_set_text(GTK_LABEL(label_format), str);}voidset_bps_label(int bps, int is_vbr, int is_ubr) {		char str[MAXLEN];	if (is_vbr) {		sprintf(str, "%.1f kbit/s VBR", bps/1000.0);	} else {		if (is_ubr) {			sprintf(str, "%.1f kbit/s UBR", bps/1000.0);		} else {			sprintf(str, "%.1f kbit/s", bps/1000.0);		}	}	if (is_file_loaded) {		if (GTK_IS_LABEL(label_bps))			gtk_label_set_text(GTK_LABEL(label_bps), str);	} else {		if (GTK_IS_LABEL(label_bps))			gtk_label_set_text(GTK_LABEL(label_bps), "");	}}voidset_samplerate_label(int sr) {		char str[MAXLEN];	sprintf(str, "%d Hz", sr);	if (is_file_loaded) {		if (GTK_IS_LABEL(label_samplerate))			gtk_label_set_text(GTK_LABEL(label_samplerate), str);	} else {		if (GTK_IS_LABEL(label_samplerate))			gtk_label_set_text(GTK_LABEL(label_samplerate), "");	}}voidset_mono_label(int is_mono) {	if (is_file_loaded) {		if (is_mono) {			if (GTK_IS_LABEL(label_mono))				gtk_label_set_text(GTK_LABEL(label_mono), _("MONO"));		} else {			if (GTK_IS_LABEL(label_mono))				gtk_label_set_text(GTK_LABEL(label_mono), _("STEREO"));		}	} else {		if (GTK_IS_LABEL(label_mono))			gtk_label_set_text(GTK_LABEL(label_mono), "");	}}voidset_output_label(int output, int out_SR) {	char str[MAXLEN];		switch (output) {#ifdef HAVE_OSS	case OSS_DRIVER:		sprintf(str, "%s OSS @ %d Hz", _("Output:"), out_SR);		break;#endif /* HAVE_OSS */#ifdef HAVE_ALSA	case ALSA_DRIVER:		sprintf(str, "%s ALSA @ %d Hz", _("Output:"), out_SR);		break;#endif /* HAVE_ALSA */#ifdef HAVE_JACK	case JACK_DRIVER:		sprintf(str, "%s JACK @ %d Hz", _("Output:"), out_SR);		break;#endif /* HAVE_JACK */#ifdef _WIN32	case WIN32_DRIVER:		sprintf(str, "%s Win32 @ %d Hz", _("Output:"), out_SR);		break;#endif /* _WIN32 */	default:		strcpy(str, _("No output"));		break;	}		if (GTK_IS_LABEL(label_output))		gtk_label_set_text(GTK_LABEL(label_output), str);}voidset_src_type_label(int src_type) {		char str[MAXLEN];		strcpy(str, _("SRC Type: "));#ifdef HAVE_SRC	strcat(str, src_get_name(src_type));#else	strcat(str, _("None"));#endif /* HAVE_SRC */	if (GTK_IS_LABEL(label_src_type))		gtk_label_set_text(GTK_LABEL(label_src_type), str);}voidrefresh_time_displays(void) {	char str[MAXLEN];	if (is_file_loaded) {		if (refresh_time_label || time_idx[0] != 0) {			sample2time(disp_info.sample_rate, disp_pos, str, 0);			if (GTK_IS_LABEL(time_labels[0])) 				gtk_label_set_text(GTK_LABEL(time_labels[0]), str);                        		}		if (refresh_time_label || time_idx[0] != 1) {			sample2time(disp_info.sample_rate, disp_samples - disp_pos, str, 1);			if (GTK_IS_LABEL(time_labels[1])) 				gtk_label_set_text(GTK_LABEL(time_labels[1]), str);                        		}				if (refresh_time_label || time_idx[0] != 2) {			sample2time(disp_info.sample_rate, disp_samples, str, 0);			if (GTK_IS_LABEL(time_labels[2])) 				gtk_label_set_text(GTK_LABEL(time_labels[2]), str);                        		}	} else {		int i;		for (i = 0; i < 3; i++) {			if (GTK_IS_LABEL(time_labels[i]))				gtk_label_set_text(GTK_LABEL(time_labels[i]), " 00:00 ");		}	}}voidrefresh_displays(void) {	GtkTreePath * p;	GtkTreeIter iter;	char * title_str;	refresh_time_displays();	if (play_store) {		p = get_playing_path(play_store);		if (p != NULL) {			int n = gtk_tree_path_get_depth(p);			gtk_tree_model_get_iter(GTK_TREE_MODEL(play_store), &iter, p);			gtk_tree_path_free(p);						if (n > 1) { /* track under album node */				GtkTreeIter iter_parent;				char artist[MAXLEN];				char record[MAXLEN];				char list_str[MAXLEN];				gtk_tree_model_iter_parent(GTK_TREE_MODEL(play_store), &iter_parent, &iter);				gtk_tree_model_get(GTK_TREE_MODEL(play_store), &iter_parent, 1, &title_str, -1);				unpack_strings(title_str, artist, record);				g_free(title_str);				gtk_tree_model_get(GTK_TREE_MODEL(play_store), &iter, 0, &title_str, -1);				make_title_string(list_str, options.title_format, artist, record, title_str);				g_free(title_str);				set_title_label(list_str);							} else {				gtk_tree_model_get(GTK_TREE_MODEL(play_store), &iter, 0, &title_str, -1);				set_title_label(title_str);				g_free(title_str);			}                        if (is_file_loaded) {                                gtk_tree_model_get(GTK_TREE_MODEL(play_store), &iter, 1, &title_str, -1);                                display_cover(cover_image_area, c_event_box, 48, 48, title_str, TRUE, TRUE);        			g_free(title_str);                        }		} else {			set_title_label("");                        cover_show_flag = 0;                        gtk_widget_hide(cover_image_area);                        gtk_widget_hide(c_event_box);		}	} else {		set_title_label("");                cover_show_flag = 0;                gtk_widget_hide(cover_image_area);                gtk_widget_hide(c_event_box);	}	set_format_label(disp_info.format_major, disp_info.format_minor);	set_samplerate_label(disp_info.sample_rate);#ifdef HAVE_MPEG	if (disp_info.format_major == FORMAT_MAD) {		if (disp_info.format_minor & MPEG_VBR) {			set_bps_label(disp_info.bps, 1, 0);		} else if (disp_info.format_minor & MPEG_UBR) {			set_bps_label(disp_info.bps, 0, 1);		} else {			set_bps_label(disp_info.bps, 0, 0);		}	} else {		set_bps_label(disp_info.bps, 0, 0);

⌨️ 快捷键说明

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