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

📄 defines.h

📁 ShowLyric是一款用于Audacious的歌词显示插件
💻 H
字号:
#ifndef _DEFINES_H_#define _DEFINES_H_/* * Standard gettext macros. */#ifdef ENABLE_NLS#  include <libintl.h>#  undef _#  define _(String) dgettext (PACKAGE, String)#  define Q_(String) g_strip_context ((String), gettext (String))#  ifdef gettext_noop#    define N_(String) gettext_noop (String)#  else#    define N_(String) (String)#  endif#else#  define textdomain(String) (String)#  define gettext(String) (String)#  define dgettext(Domain,Message) (Message)#  define dcgettext(Domain,Message,Type) (Message)#  define bindtextdomain(Domain,Directory) (Domain)#  define _(String) (String)#  define Q_(String) g_strip_context ((String), (String))#  define N_(String) (String)#endif	#include <string.h>	#include <stdio.h>	#include <unistd.h>	#include <glib.h>	#include <gtk/gtk.h>	#include <libxml/xmlreader.h>	#include <glade/glade.h>	#include <sys/types.h>	#include <pwd.h>	#include <wait.h>#ifndef OUT	#define OUT#endif#ifndef IN	#define IN const#endif	#define MAX_PATH		265	#define TITLE_LENGTH	256	#define ARTIST_LENGTH	256	struct _SongInfo {		gchar szSongFolder[MAX_PATH]; // 歌词文件完整路径名		gchar szLyricFileName[MAX_PATH]; // 歌词文件名		gchar szFileName[MAX_PATH];		 // 歌曲文件名		gchar szTitle[MAX_PATH];		 // 歌曲名		gchar szArtist[MAX_PATH];		 // 歌手名	};	typedef struct _SongInfo SongInfo;		struct _Configs {		struct {			GdkColor background; // 背景颜色			GdkColor normal;	 // 普通歌词颜色			GdkColor current;	 // 当前歌词颜色			GdkColor drag;		 // 拖动中歌词颜色			GdkColor msg;		 // 消息颜色			GdkColor error;		 // 错误信息颜色		}colors;		gchar szLyricPath[MAX_PATH]; // 保存歌词的目录		gboolean bSaveLyricToSongFolder; // 是否保存歌词到歌曲所在目录		gboolean bSmartShowWin;		 // 是否智能显示窗口		gboolean bSmartDownLoad;	 // 是否智能下载		gboolean iOpacity;			 // 窗口透明度		gboolean bCanDrag;			 // 可以拖动歌词		gboolean bChangeLyric;	 	 // 可以通过鼠标滚轮修改歌词		gboolean bAutoSaveLyric; 	 // 如果歌词被修改是否自动保存(切换歌词时保存)		gboolean bShowBroad;		 // 是否显示窗口装饰		gchar szLyricFontName[MAX_PATH]; // 歌词字体的名字		struct {			int iX;		// 窗口的X坐标			int iY;		// 窗口的Y坐标		}pos;	};	typedef struct _Configs Configs;		struct _Player {		// 获取配置信息		gboolean (*LoadConfigs)(OUT Configs * pConfigs);		// 保存配置信息		gboolean (*SaveConfigs)(IN Configs * pConfigs);		// 获取当前时间		gint (*GetCurrTime)();		// 获取歌曲信息		gboolean (*GetSongInfo)(SongInfo * pInfo);	};		enum AppState {		AS_Waiting		= 0,	// 等待		AS_LoadingLyric = 1,	// 正在加载歌词		AS_SearchingLyric = 2,	// 正在搜索歌词		AS_DowningLyric = 3,	// 正在下载歌词		AS_ShowingLyric = 4,	// 正在显示歌词		AS_DrapingLyric = 5,	// 正在拖动歌词		AS_EditingLyric = 6		// 正在编辑歌词	};		struct _EditLyricDlg {		char m_szLyricFile[MAX_PATH];		GladeXML *m_pEditLyricXML;		gboolean m_bModfiy;		gboolean m_bEditing;				void (*RefreshState)();		void (*EditLyric)();	};	typedef struct _EditLyricDlg EditLyricDlg;		// 歌词窗口,提供歌词的显示和编辑功能	struct _LyricWnd {		void (*RefreshLyricSetting)();		void (*ShowLyric)();		void (*SmartShowWnd)(gboolean bShow);		void (*ClearLyric)();		gboolean (*ParseLyric)(gchar* lpszLyricFileName);		GList* m_ListCurrLyric;	//LyricItem		GList* _m_current;		guint m_TimerId;				gboolean m_bLyricChanging;		gboolean m_bLyricChanged;		gboolean m_bScrollMouseChange;				EditLyricDlg m_EditLyricDlg;	};	typedef struct _LyricWnd LyricWnd;		struct _ShowLyricApp {		// 初始化		void (*Init)();		// 清空资源		void (*Clean)();		// 显示配置对话框		void (*ShowConfigDlg)();		// 更新配置信息		void (*UpdataSetting)();		// 切换歌曲前,返回false表示没有找到歌词(本地和网上都没有找到)		gboolean (*PreChangeSong)(SongInfo* info);		// 切换歌曲		void (*ChangeSong)(SongInfo info);		// 设置当前状态		void (*SetAppState)(enum AppState state);		// 关于		void (*About)(GtkWindow* pParent);		// 获取默认配置值		void (*GetDefautConfigs)(Configs* pConfig);		// 搜索歌词		gboolean (*SearchLyric)(SongInfo Info, gboolean bSmartDownLoad);		// 下载歌词		void (*DownLoadLyric)(const gchar* lpszId, const gchar* lpszTitle, const gchar* lpszArtist);				struct _Player m_player;		struct _Configs m_configs;	// 配置信息		enum AppState m_state;		// 程序的状态				LyricWnd m_LyricWnd;				gchar m_szCurrUsrPath[MAX_PATH];		gchar m_szConfigPath[MAX_PATH];		SongInfo m_CurrSongInfo;		GList* _m_ListLyrics;		//LyricsListItem				GladeXML *m_xml;	};	extern struct _ShowLyricApp theApp;		typedef struct {		int		iTime;		gchar*	lpszValue;		GtkWidget* pLabel;		gboolean process_color;	}LyricItem;		typedef struct {		gchar szID[MAX_PATH];		gchar szArtist[MAX_PATH];		gchar szTitle[MAX_PATH];	}LyricsListItem;#endif

⌨️ 快捷键说明

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