예제 #1
0
static FileMimeInfo
get_file_mime_info (CajaFileInfo *file)
{
	FileMimeInfo file_mime_info;
	int          i;

	file_mime_info.is_archive = FALSE;
	file_mime_info.is_derived_archive = FALSE;
	file_mime_info.is_compressed_archive = FALSE;

	for (i = 0; archive_mime_types[i].mime_type != NULL; i++)
		if (caja_file_info_is_mime_type (file, archive_mime_types[i].mime_type)) {
			char *mime_type;
			char *content_type_mime_file;
			char *content_type_mime_compare;

			mime_type = caja_file_info_get_mime_type (file);

			content_type_mime_file = g_content_type_from_mime_type (mime_type);
			content_type_mime_compare = g_content_type_from_mime_type (archive_mime_types[i].mime_type);

			file_mime_info.is_archive = TRUE;
			file_mime_info.is_compressed_archive = archive_mime_types[i].is_compressed;
			if ((content_type_mime_file != NULL) && (content_type_mime_compare != NULL))
				file_mime_info.is_derived_archive = ! g_content_type_equals (content_type_mime_file, content_type_mime_compare);

			g_free (mime_type);
			g_free (content_type_mime_file);
			g_free (content_type_mime_compare);

			return file_mime_info;
		}

	return file_mime_info;
}
예제 #2
0
static gboolean
file_is_sound (CajaFileInfo *file_info)
{
	gchar          *scheme;
	gint            i;
	GError         *error = NULL;

	/* Is this a file? */
	scheme = caja_file_info_get_uri_scheme (file_info);

	if (strcmp (scheme, "file") != 0) {
		g_free (scheme);
		return FALSE;
	}
	g_free (scheme);

	for (i = 0; mime_types[i] != NULL; i++)
		if (caja_file_info_is_mime_type (file_info, mime_types[i]))
			return TRUE;

	/* Check for mp3 & mp2 support */
	if (nsc_gstreamer_supports_mp3 (&error)) {
		if (caja_file_info_is_mime_type (file_info, "audio/mpeg"))
			return TRUE;
		else if (caja_file_info_is_mime_type (file_info, "audio/mp2"))
			return TRUE;
	} else {
		g_error_free (error);
		error = NULL;
	}

	/* Check for aac suppport */
	if (nsc_gstreamer_supports_aac (&error)) {
		if (caja_file_info_is_mime_type (file_info, "audio/mp4"))
			return TRUE;
	} else {
		g_error_free (error);
		error = NULL;
	}

	/* Check for Musepack support */
	if (nsc_gstreamer_supports_musepack (&error)) {
		if (caja_file_info_is_mime_type (file_info, "audio/x-musepack"))
			return TRUE;
	} else {
		g_error_free (error);
		error = NULL;
	}

	/* Check for wma support */
	if (nsc_gstreamer_supports_wma (&error)) {
		if (caja_file_info_is_mime_type (file_info, "audio/x-ms-wma"))
			return TRUE;
	} else {
		g_error_free (error);
		error = NULL;
	}

	return FALSE;
}
예제 #3
0
gboolean
fm_ditem_page_should_show (GList *files)
{
    CajaFileInfo *info;

    if (!files || files->next)
    {
        return FALSE;
    }

    info = CAJA_FILE_INFO (files->data);

    if (!caja_file_info_is_mime_type (info, "application/x-desktop"))
    {
        return FALSE;
    }

    return TRUE;
}