summaryrefslogtreecommitdiffstats
path: root/src/gchecksum.h
diff options
context:
space:
mode:
authorJorg Schuler <jcsjcs@users.sourceforge.net>2008-06-02 15:47:25 +0000
committerJorg Schuler <jcsjcs@users.sourceforge.net>2008-06-02 15:47:25 +0000
commit96c2ac6e4e510bb6b7ae7d9718abcb813e692ef1 (patch)
treecd719c4c2741250c3364d89508111ab32520a6a1 /src/gchecksum.h
parent0bae31d72c4a6a7f2a7ae6bfa64f18e41119c1be (diff)
downloadlibgpod-tmz-96c2ac6e4e510bb6b7ae7d9718abcb813e692ef1.tar.gz
libgpod-tmz-96c2ac6e4e510bb6b7ae7d9718abcb813e692ef1.tar.xz
libgpod-tmz-96c2ac6e4e510bb6b7ae7d9718abcb813e692ef1.zip
* src/gchecksum.c
src/gchecksum.h src/Makefile.am configure.ac: copied gchecksum from glib 2.16.3. It's used if we compile on a system that does not have glib 2.16 or higher. Testing is needed whether it's really pulled in in those cases -- I'm using 2.16.3 myself. * src/itdb_itunesdb.c (mk_mhit): write mhii_link. * src/db-artwork-writer.c: code to handle sparse artwork correctly. (ipod_supports_sparse_artwork): currently hard-coded to TRUE. Will be changed in the future to reflect the information given in the SysInfoExtended. Change yourself if your iPod does not support Sparse Artwork (sharing of thumbnails between several tracks). git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@2005 f01d2545-417e-4e96-918e-98f8d0dbbcb6
Diffstat (limited to 'src/gchecksum.h')
-rw-r--r--src/gchecksum.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/gchecksum.h b/src/gchecksum.h
new file mode 100644
index 0000000..8f7d808
--- /dev/null
+++ b/src/gchecksum.h
@@ -0,0 +1,72 @@
+/* gchecksum.h - data hashing functions
+ *
+ * Copyright (C) 2007 Emmanuele Bassi <ebassi@gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __G_CHECKSUM_H__
+#define __G_CHECKSUM_H__
+
+#include <glib/gtypes.h>
+
+G_BEGIN_DECLS
+
+/**
+ * GChecksumType:
+ * @G_CHECKSUM_MD5: Use the MD5 hashing algorithm
+ * @G_CHECKSUM_SHA1: Use the SHA-1 hashing algorithm
+ * @G_CHECKSUM_SHA256: Use the SHA-256 hashing algorithm
+ *
+ * The hashing algorithm to be used by #GChecksum when performing the
+ * digest of some data.
+ *
+ * Note that the #GChecksumType enumeration may be extended at a later
+ * date to include new hashing algorithm types.
+ *
+ * Since: 2.16
+ */
+typedef enum {
+ G_CHECKSUM_MD5,
+ G_CHECKSUM_SHA1,
+ G_CHECKSUM_SHA256
+} GChecksumType;
+
+typedef struct _GChecksum GChecksum;
+
+gssize g_checksum_type_get_length (GChecksumType checksum_type);
+
+GChecksum * g_checksum_new (GChecksumType checksum_type);
+GChecksum * g_checksum_copy (const GChecksum *checksum);
+void g_checksum_free (GChecksum *checksum);
+void g_checksum_update (GChecksum *checksum,
+ const guchar *data,
+ gssize length);
+G_CONST_RETURN gchar *g_checksum_get_string (GChecksum *checksum);
+void g_checksum_get_digest (GChecksum *checksum,
+ guint8 *buffer,
+ gsize *digest_len);
+
+gchar *g_compute_checksum_for_data (GChecksumType checksum_type,
+ const guchar *data,
+ gsize length);
+gchar *g_compute_checksum_for_string (GChecksumType checksum_type,
+ const gchar *str,
+ gssize length);
+
+G_END_DECLS
+
+#endif /* __G_CHECKSUM_H__ */