Exemple #1
0
int main(int argc, char *argv[])
{
	if(open_database())
		create_medialib();
	else {
		g_print("错误:无法打开数据库。");
		return 1;
	}
	link_t mlink = {NULL, 0};
	link_t plink = {NULL, 0};
	load_medialib(&mlink, 0);
	
	main_core(GENERAL_MEDIALIB_INIT, &mlink);
	main_core(GENERAL_PLAYLIST_INIT, &plink);

	gtk_init(&argc, &argv);
	InterFace ui;
	ui.winMain = create_winMain(&ui);
	ui.diaMedialib = create_diaMedialib(&ui);
	ui.diaPlaylist = create_diaPlaylist(&ui);
	ui.diaVolume = create_diaVolume(&ui);
	gtk_widget_show(ui.winMain);
	g_signal_connect(G_OBJECT(ui.winMain), "delete_event",
			G_CALLBACK(gtk_main_quit), NULL);
	gtk_main();

	link_del_all(&mlink);
	link_del_all(&plink);
	close_database();
	return 0;
}
Exemple #2
0
void on_tbtSave_clicked(GtkWidget *tbtSave,
                       InterFace *ui)
{
	   GtkWidget *dialog;
	   dialog = gtk_file_chooser_dialog_new ("保存M3U文件",
						      GTK_WINDOW(ui->diaPlaylist),
						      GTK_FILE_CHOOSER_ACTION_SAVE,
						      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
						      GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
						      NULL);
		GtkFileFilter *filefilter;
		filefilter = gtk_file_filter_new();
		gtk_file_filter_set_name(filefilter, "M3U");
		gtk_file_filter_add_pattern(filefilter, "*.m3u");
		gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),
		   filefilter);
	   if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
	   {
		    char *pathname;
		    pathname = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
		    main_core(PLAYLIST_OPEN, pathname);
		    main_core(PLAYLIST_BRUSH, ui);
		    g_free (pathname);
	   }
		gtk_widget_destroy (dialog);
}
Exemple #3
0
void on_tlbDel_clicked(GtkWidget *btMedialib,
                       InterFace *ui)
{
	GValue value = {0};
	GtkTreeIter iter = {0};
	GtkListStore *liststore;
	GtkTreeSelection *selection;
	char filename[MAX_FILE_LENGTH];
	GtkWidget *dialog;
	liststore = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(ui->treeMedialib));
	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ui->treeMedialib));
	if (gtk_tree_selection_count_selected_rows (selection)) {
		gtk_tree_selection_get_selected(selection, (GtkTreeModel**) &liststore, &iter);
		gtk_tree_model_get_value(GTK_TREE_MODEL(liststore), &iter, 5, &value);
		strcpy(filename, g_value_get_string(&value));
		main_core(MEDIALIB_DEL, filename);
	   main_core(MEDIALIB_BRUSH, ui);
	}
	else {
		dialog = gtk_message_dialog_new (GTK_WINDOW(ui->diaMedialib),
				                             GTK_DIALOG_MODAL,
		                                  GTK_MESSAGE_ERROR,
		                                  GTK_BUTTONS_CLOSE,
		                                                   "未选择媒体文件");
		 gtk_dialog_run (GTK_DIALOG (dialog));
		 gtk_widget_destroy (dialog);
	}
}
Exemple #4
0
void on_tlbAdd_clicked(GtkWidget *btMedialib,
                       InterFace *ui)
{
   GtkWidget *dialog;
   dialog = gtk_file_chooser_dialog_new ("选择媒体文件",
					      GTK_WINDOW(ui->diaMedialib),
					      GTK_FILE_CHOOSER_ACTION_OPEN,
					      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
					      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
					      NULL);
   GtkFileFilter *filefilter;
   filefilter = gtk_file_filter_new();
   gtk_file_filter_set_name(filefilter, "mp3");
   gtk_file_filter_add_pattern(filefilter, "*.mp3");
   gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),
		   filefilter);
   if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
   {
	    char *filename;
	    filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
	    main_core(MEDIALIB_ADD_FILE, filename);
	    main_core(MEDIALIB_BRUSH, ui);
	    g_free (filename);
   }
	gtk_widget_destroy (dialog);
}
Exemple #5
0
void on_btFind_clicked(GtkWidget *btMedialib,
                       InterFace *ui)
{
	if (! gtk_entry_get_text_length (GTK_ENTRY(ui->etFind)))
		gtk_entry_set_text ((GTK_ENTRY(ui->etFind)), "*");
	main_core(MEDIALIB_FIND, ui);
	main_core(MEDIALIB_BRUSH, ui);
}
Exemple #6
0
void on_tbtDelall_clicked(GtkWidget *tbtDelall,
                       InterFace *ui)
{
	GtkWidget *dialog;
	dialog = gtk_message_dialog_new (GTK_WINDOW(ui->diaPlaylist),
					                     GTK_DIALOG_MODAL,
			                           GTK_MESSAGE_QUESTION,
			                           GTK_BUTTONS_YES_NO,
			                                    "是否删除播放列表中所有文件信息?");
	if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_YES) {
		main_core(PLAYLIST_DEL_ALL, ui);
		main_core(PLAYLIST_BRUSH, ui);
	}
	gtk_widget_destroy (dialog);
}
Exemple #7
0
void on_tlbSearch_clicked(GtkWidget *btMedialib,
                       InterFace *ui)
{
	GtkWidget *dialog;
	dialog = gtk_message_dialog_new (GTK_WINDOW(ui->diaMedialib),
					                     GTK_DIALOG_MODAL,
			                           GTK_MESSAGE_QUESTION,
			                           GTK_BUTTONS_YES_NO,
			                                    "是否开始搜索?");
	if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_YES) {
		main_core(MEDIALIB_SEARCH, ui);
		main_core(MEDIALIB_BRUSH, ui);
	}
	gtk_widget_destroy (dialog);
}
Exemple #8
0
void on_cbbMode_active(GtkWidget *cbbMode,
							InterFace *ui)
{
	static int mode;
	mode = gtk_combo_box_get_active(GTK_COMBO_BOX(cbbMode));
	main_core(GENERAL_PLAY_MODE, &mode);
}
Exemple #9
0
int main(int argc,char* argv[])
{
#ifdef _WIN32
  int i=0;

  for (i=1; i<argc; i++) {
    char * arg=argv[i];
    if (0==stricmp(arg, "--install")) {
      win32_service_install();
      return 0;
    }
    if (0==stricmp(arg, "--delete")) {
      win32_service_delete();
      return 0;
    }
    if (0==stricmp(arg, "--start")) {
      win32_service_start();
      return 0;
    }
    if (0==stricmp(arg, "--status")) {
      win32_service_status();
      return 0;
    }
    if (0==stricmp(arg, "--stop")) {
      win32_service_stop();
      return 0;
    }
    if (0==stricmp(arg, "--noservice")) {
      return main_core(argc, argv);
    }
  }

  if (argc == 1) {
    return win32_run_service(argc, argv); /* this call never returns */
  }
  else
    return main_core(argc, argv);

#else

  return main_core(argc, argv);

#endif
}
Exemple #10
0
void on_btMedialib_clicked(GtkWidget *btMedialib,
                           InterFace *ui)
{
	gboolean visible;
	g_object_get(GTK_WINDOW(ui->diaMedialib), "visible",
	             &visible, NULL);
	if (!visible)
		main_core(MEDIALIB_SHOW, ui);

}
Exemple #11
0
void on_btPlaylist_clicked(GtkWidget *btPlaylist,
                           InterFace *ui)
{
	gtk_widget_show(ui->diaPlaylist);
	gboolean visible;
	g_object_get(GTK_WINDOW(ui->diaPlaylist), "visible",
	             &visible, NULL);
	if (!visible)
		main_core(PLAYLIST_SHOW, ui);
}
Exemple #12
0
void on_tlbAdddir_clicked(GtkWidget *btMedialib,
                          InterFace *ui)
{
	   GtkWidget *dialog;
	   dialog = gtk_file_chooser_dialog_new ("选择媒体目录",
						      GTK_WINDOW(ui->diaMedialib),
						      GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
						      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
						      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
						      NULL);
	   if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
	   {
		    char *pathname;
		    pathname = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
		    main_core(MEDIALIB_ADD_DIR, pathname);
		    main_core(MEDIALIB_BRUSH, ui);
		    g_free (pathname);
	   }
		gtk_widget_destroy (dialog);
}
Exemple #13
0
void on_tbtDel_clicked(GtkWidget *tbtDel,
                       InterFace *ui)
{
	GtkListStore *liststore;
	GtkTreeSelection *selection;
	GtkWidget *dialog;
	liststore = (GtkListStore *)gtk_tree_view_get_model(GTK_TREE_VIEW(ui->treePlaylist));
	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(ui->treePlaylist));
	if (gtk_tree_selection_count_selected_rows (selection)) {
		main_core(PLAYLIST_DEL, ui);
	   main_core(PLAYLIST_BRUSH, ui);
	}
	else {
		dialog = gtk_message_dialog_new (GTK_WINDOW(ui->diaPlaylist),
				                             GTK_DIALOG_MODAL,
		                                  GTK_MESSAGE_ERROR,
		                                  GTK_BUTTONS_CLOSE,
		                                                   "未选择媒体文件");
		 gtk_dialog_run (GTK_DIALOG (dialog));
		 gtk_widget_destroy (dialog);
	}
}
Exemple #14
0
DWORD WINAPI win32_thread_proc(PVOID context)
{
  /*
    Create empty config file if none exists.
  */
  {
    CHAR buffer[MAX_PATH]={0};
    ExpandEnvironmentStrings("%ProgrmFiles%\\Cloudkick\\etc\\cloudkick.cfg", buffer, ARRAYSIZE(buffer));
    {
      HANDLE hfile=CreateFile(buffer, GENERIC_READ, FILE_SHARE_READ, 0, CREATE_NEW, 0, 0);
      if (hfile!= INVALID_HANDLE_VALUE)
        CloseHandle(hfile);
    }
  }

  g_equus_win_service = 1;
  return main_core(g_argc, g_argv);
}