|
Packit |
4b6dd7 |
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
|
|
Packit |
4b6dd7 |
/*
|
|
Packit |
4b6dd7 |
* GData Client
|
|
Packit |
4b6dd7 |
* Copyright (C) Richard Schwarting 2009 <aquarichy@gmail.com>
|
|
Packit |
4b6dd7 |
* Copyright (C) Philip Withnall 2009–2010 <philip@tecnocode.co.uk>
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* GData Client is free software; you can redistribute it and/or
|
|
Packit |
4b6dd7 |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit |
4b6dd7 |
* License as published by the Free Software Foundation; either
|
|
Packit |
4b6dd7 |
* version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* GData Client is distributed in the hope that it will be useful,
|
|
Packit |
4b6dd7 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
4b6dd7 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
4b6dd7 |
* Lesser General Public License for more details.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
4b6dd7 |
* License along with GData Client. If not, see <http://www.gnu.org/licenses/>.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* SECTION:gdata-picasaweb-file
|
|
Packit |
4b6dd7 |
* @short_description: GData PicasaWeb file object
|
|
Packit |
4b6dd7 |
* @stability: Stable
|
|
Packit |
4b6dd7 |
* @include: gdata/services/picasaweb/gdata-picasaweb-file.h
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* #GDataPicasaWebFile is a subclass of #GDataEntry to represent a file (photo or video) in an album on Google PicasaWeb.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* #GDataPicasaWebFile implements #GDataCommentable, allowing comments on files to be queried using gdata_commentable_query_comments(), new
|
|
Packit |
4b6dd7 |
* comments to be added to files using gdata_commentable_insert_comment() and existing comments to be deleted from files using
|
|
Packit |
4b6dd7 |
* gdata_commentable_delete_comment().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details of Google PicasaWeb's GData API, see the
|
|
Packit |
4b6dd7 |
* <ulink type="http" url="http://code.google.com/apis/picasaweb/developers_guide_protocol.html">online documentation</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* <example>
|
|
Packit |
4b6dd7 |
* <title>Getting Basic Photo Data</title>
|
|
Packit |
4b6dd7 |
* <programlisting>
|
|
Packit |
4b6dd7 |
* GDataFeed *photo_feed;
|
|
Packit |
4b6dd7 |
* GList *photo_entries;
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* /* Query for a feed of GDataPicasaWebFiles belonging to the given GDataPicasaWebAlbum album */
|
|
Packit |
4b6dd7 |
* photo_feed = gdata_picasaweb_service_query_files (service, album, NULL, NULL, NULL, NULL, NULL);
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* /* Get a list of GDataPicasaWebFiles from the query's feed */
|
|
Packit |
4b6dd7 |
* for (photo_entries = gdata_feed_get_entries (photo_feed); photo_entries != NULL; photo_entries = photo_entries->next) {
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile *photo;
|
|
Packit |
4b6dd7 |
* guint height, width;
|
|
Packit |
4b6dd7 |
* gsize file_size;
|
|
Packit |
4b6dd7 |
* gint64 timestamp;
|
|
Packit |
4b6dd7 |
* const gchar *title, *summary;
|
|
Packit |
4b6dd7 |
* GList *contents;
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* photo = GDATA_PICASAWEB_FILE (photo_entries->data);
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* /* Get various bits of information about the photo */
|
|
Packit |
4b6dd7 |
* height = gdata_picasaweb_file_get_height (photo);
|
|
Packit |
4b6dd7 |
* width = gdata_picasaweb_file_get_width (photo);
|
|
Packit |
4b6dd7 |
* file_size = gdata_picasaweb_file_get_size (photo);
|
|
Packit |
4b6dd7 |
* timestamp = gdata_picasaweb_file_get_timestamp (photo);
|
|
Packit |
4b6dd7 |
* title = gdata_entry_get_title (GDATA_ENTRY (photo));
|
|
Packit |
4b6dd7 |
* summary = gdata_entry_get_summary (GDATA_ENTRY (photo));
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* /* Obtain the image data at various sizes */
|
|
Packit |
4b6dd7 |
* for (contents = gdata_picasaweb_file_get_contents (photo); contents != NULL; contents = contents->next) {
|
|
Packit |
4b6dd7 |
* GDataMediaContent *content;
|
|
Packit |
4b6dd7 |
* GDataDownloadStream *download_stream;
|
|
Packit |
4b6dd7 |
* GFileOutputStream *file_stream;
|
|
Packit |
4b6dd7 |
* GFile *new_file;
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* content = GDATA_MEDIA_CONTENT (contents->data);
|
|
Packit |
4b6dd7 |
* /* Do something fun with the actual images, like download them to a file.
|
|
Packit |
4b6dd7 |
* * Note that this is a blocking operation. */
|
|
Packit |
4b6dd7 |
* download_stream = gdata_media_content_download (content, GDATA_SERVICE (service), NULL, NULL);
|
|
Packit |
4b6dd7 |
* new_file = g_file_new_for_path (file_path);
|
|
Packit |
4b6dd7 |
* file_stream = g_file_create (new_file, G_FILE_CREATE_NONE, NULL, NULL);
|
|
Packit |
4b6dd7 |
* g_output_stream_splice (G_OUTPUT_STREAM (file_stream), G_INPUT_STREAM (download_stream),
|
|
Packit |
4b6dd7 |
* G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE | G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET, NULL, NULL);
|
|
Packit |
4b6dd7 |
* g_object_unref (file_stream);
|
|
Packit |
4b6dd7 |
* g_object_unref (download_stream);
|
|
Packit |
4b6dd7 |
* /* ... */
|
|
Packit |
4b6dd7 |
* g_object_unref (new_file);
|
|
Packit |
4b6dd7 |
* }
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* /* Do something worthwhile with your image data */
|
|
Packit |
4b6dd7 |
* }
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* g_object_unref (photo_feed);
|
|
Packit |
4b6dd7 |
* </programlisting>
|
|
Packit |
4b6dd7 |
* </example>
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
#include <config.h>
|
|
Packit |
4b6dd7 |
#include <glib.h>
|
|
Packit |
4b6dd7 |
#include <glib/gi18n-lib.h>
|
|
Packit |
4b6dd7 |
#include <libxml/parser.h>
|
|
Packit |
4b6dd7 |
#include <string.h>
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
#include "gdata-picasaweb-file.h"
|
|
Packit |
4b6dd7 |
#include "gdata-private.h"
|
|
Packit |
4b6dd7 |
#include "gdata-service.h"
|
|
Packit |
4b6dd7 |
#include "gdata-parser.h"
|
|
Packit |
4b6dd7 |
#include "gdata-types.h"
|
|
Packit |
4b6dd7 |
#include "media/gdata-media-group.h"
|
|
Packit |
4b6dd7 |
#include "exif/gdata-exif-tags.h"
|
|
Packit |
4b6dd7 |
#include "georss/gdata-georss-where.h"
|
|
Packit |
4b6dd7 |
#include "gd/gdata-gd-feed-link.h"
|
|
Packit |
4b6dd7 |
#include "gdata-commentable.h"
|
|
Packit |
4b6dd7 |
#include "gdata-picasaweb-comment.h"
|
|
Packit |
4b6dd7 |
#include "gdata-picasaweb-service.h"
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static GObject *gdata_picasaweb_file_constructor (GType type, guint n_construct_params, GObjectConstructParam *construct_params);
|
|
Packit |
4b6dd7 |
static void gdata_picasaweb_file_dispose (GObject *object);
|
|
Packit |
4b6dd7 |
static void gdata_picasaweb_file_finalize (GObject *object);
|
|
Packit |
4b6dd7 |
static void gdata_picasaweb_file_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
|
|
Packit |
4b6dd7 |
static void gdata_picasaweb_file_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
|
|
Packit |
4b6dd7 |
static void get_xml (GDataParsable *parsable, GString *xml_string);
|
|
Packit |
4b6dd7 |
static gboolean parse_xml (GDataParsable *parsable, xmlDoc *doc, xmlNode *node, gpointer user_data, GError **error);
|
|
Packit |
4b6dd7 |
static void get_namespaces (GDataParsable *parsable, GHashTable *namespaces);
|
|
Packit |
4b6dd7 |
static gchar *get_entry_uri (const gchar *id) G_GNUC_WARN_UNUSED_RESULT;
|
|
Packit |
4b6dd7 |
GDataAuthorizationDomain *get_authorization_domain (GDataCommentable *self) G_GNUC_CONST;
|
|
Packit |
4b6dd7 |
static gchar *get_query_comments_uri (GDataCommentable *self) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
|
|
Packit |
4b6dd7 |
static gchar *get_insert_comment_uri (GDataCommentable *self, GDataComment *comment_) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
|
|
Packit |
4b6dd7 |
static gboolean is_comment_deletable (GDataCommentable *self, GDataComment *comment_);
|
|
Packit |
4b6dd7 |
static void gdata_picasaweb_file_commentable_init (GDataCommentableInterface *iface);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
struct _GDataPicasaWebFilePrivate {
|
|
Packit |
4b6dd7 |
gchar *file_id;
|
|
Packit |
4b6dd7 |
gint64 edited;
|
|
Packit |
4b6dd7 |
gchar *version;
|
|
Packit |
4b6dd7 |
gchar *album_id;
|
|
Packit |
4b6dd7 |
guint width;
|
|
Packit |
4b6dd7 |
guint height;
|
|
Packit |
4b6dd7 |
gsize size;
|
|
Packit |
4b6dd7 |
gchar *checksum;
|
|
Packit |
4b6dd7 |
gint64 timestamp; /* in milliseconds! */
|
|
Packit |
4b6dd7 |
gboolean is_commenting_enabled;
|
|
Packit |
4b6dd7 |
guint comment_count;
|
|
Packit |
4b6dd7 |
guint rotation;
|
|
Packit |
4b6dd7 |
gchar *video_status;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* media:group */
|
|
Packit |
4b6dd7 |
GDataMediaGroup *media_group;
|
|
Packit |
4b6dd7 |
/* exif:tags */
|
|
Packit |
4b6dd7 |
GDataExifTags *exif_tags;
|
|
Packit |
4b6dd7 |
/* georss:where */
|
|
Packit |
4b6dd7 |
GDataGeoRSSWhere *georss_where;
|
|
Packit |
4b6dd7 |
};
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
enum {
|
|
Packit |
4b6dd7 |
PROP_EDITED = 1,
|
|
Packit |
4b6dd7 |
PROP_VERSION,
|
|
Packit |
4b6dd7 |
PROP_ALBUM_ID,
|
|
Packit |
4b6dd7 |
PROP_WIDTH,
|
|
Packit |
4b6dd7 |
PROP_HEIGHT,
|
|
Packit |
4b6dd7 |
PROP_SIZE,
|
|
Packit |
4b6dd7 |
PROP_CHECKSUM,
|
|
Packit |
4b6dd7 |
PROP_TIMESTAMP,
|
|
Packit |
4b6dd7 |
PROP_IS_COMMENTING_ENABLED,
|
|
Packit |
4b6dd7 |
PROP_COMMENT_COUNT,
|
|
Packit |
4b6dd7 |
PROP_ROTATION,
|
|
Packit |
4b6dd7 |
PROP_VIDEO_STATUS,
|
|
Packit |
4b6dd7 |
PROP_CREDIT,
|
|
Packit |
4b6dd7 |
PROP_CAPTION,
|
|
Packit |
4b6dd7 |
PROP_TAGS,
|
|
Packit |
4b6dd7 |
PROP_DISTANCE,
|
|
Packit |
4b6dd7 |
PROP_EXPOSURE,
|
|
Packit |
4b6dd7 |
PROP_FLASH,
|
|
Packit |
4b6dd7 |
PROP_FOCAL_LENGTH,
|
|
Packit |
4b6dd7 |
PROP_FSTOP,
|
|
Packit |
4b6dd7 |
PROP_IMAGE_UNIQUE_ID,
|
|
Packit |
4b6dd7 |
PROP_ISO,
|
|
Packit |
4b6dd7 |
PROP_MAKE,
|
|
Packit |
4b6dd7 |
PROP_MODEL,
|
|
Packit |
4b6dd7 |
PROP_LATITUDE,
|
|
Packit |
4b6dd7 |
PROP_LONGITUDE,
|
|
Packit |
4b6dd7 |
PROP_FILE_ID
|
|
Packit |
4b6dd7 |
};
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_DEFINE_TYPE_WITH_CODE (GDataPicasaWebFile, gdata_picasaweb_file, GDATA_TYPE_ENTRY,
|
|
Packit |
4b6dd7 |
G_IMPLEMENT_INTERFACE (GDATA_TYPE_COMMENTABLE, gdata_picasaweb_file_commentable_init))
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_class_init (GDataPicasaWebFileClass *klass)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
|
Packit |
4b6dd7 |
GDataParsableClass *parsable_class = GDATA_PARSABLE_CLASS (klass);
|
|
Packit |
4b6dd7 |
GDataEntryClass *entry_class = GDATA_ENTRY_CLASS (klass);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_type_class_add_private (klass, sizeof (GDataPicasaWebFilePrivate));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gobject_class->constructor = gdata_picasaweb_file_constructor;
|
|
Packit |
4b6dd7 |
gobject_class->get_property = gdata_picasaweb_file_get_property;
|
|
Packit |
4b6dd7 |
gobject_class->set_property = gdata_picasaweb_file_set_property;
|
|
Packit |
4b6dd7 |
gobject_class->dispose = gdata_picasaweb_file_dispose;
|
|
Packit |
4b6dd7 |
gobject_class->finalize = gdata_picasaweb_file_finalize;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
parsable_class->get_xml = get_xml;
|
|
Packit |
4b6dd7 |
parsable_class->parse_xml = parse_xml;
|
|
Packit |
4b6dd7 |
parsable_class->get_namespaces = get_namespaces;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
entry_class->get_entry_uri = get_entry_uri;
|
|
Packit |
4b6dd7 |
entry_class->kind_term = "http://schemas.google.com/photos/2007#photo";
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:file-id:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The ID of the file. This is a substring of the ID returned by gdata_entry_get_id() for #GDataPicasaWebFiles; for example,
|
|
Packit |
4b6dd7 |
* if gdata_entry_get_id() returned
|
|
Packit |
4b6dd7 |
* "http://picasaweb.google.com/data/entry/user/libgdata.picasaweb/albumid/5328889949261497249/photoid/5328890138794566386" for a
|
|
Packit |
4b6dd7 |
* particular #GDataPicasaWebFile, the #GDataPicasaWebFile:file-id property would be "5328890138794566386".
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_id">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.7.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_FILE_ID,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("file-id",
|
|
Packit |
4b6dd7 |
"File ID", "The ID of the file.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:version:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The version number of the file. Version numbers are based on modification time, so they don't increment linearly.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_version">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_VERSION,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("version",
|
|
Packit |
4b6dd7 |
"Version", "The version number of the file.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:album-id:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The ID for the file's album. This is in the same form as returned by gdata_picasaweb_album_get_id().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_albumid">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_ALBUM_ID,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("album-id",
|
|
Packit |
4b6dd7 |
"Album ID", "The ID for the file's album.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:checksum:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* A checksum of the file, useful for duplicate detection.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_checksum">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_CHECKSUM,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("checksum",
|
|
Packit |
4b6dd7 |
"Checksum", "A checksum of the file, useful for duplicate detection.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:video-status:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The status of the file, if it is a video. For example: %GDATA_PICASAWEB_VIDEO_STATUS_PENDING or %GDATA_PICASAWEB_VIDEO_STATUS_FAILED.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_videostatus">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_VIDEO_STATUS,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("video-status",
|
|
Packit |
4b6dd7 |
"Video Status", "The status of the file, if it is a video.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:width:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The width of the photo or video, in pixels.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_width">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_WIDTH,
|
|
Packit |
4b6dd7 |
g_param_spec_uint ("width",
|
|
Packit |
4b6dd7 |
"Width", "The width of the photo or video, in pixels.",
|
|
Packit |
4b6dd7 |
0, G_MAXUINT, 0,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:height:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The height of the photo or video, in pixels.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_height">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_HEIGHT,
|
|
Packit |
4b6dd7 |
g_param_spec_uint ("height",
|
|
Packit |
4b6dd7 |
"Height", "The height of the photo or video, in pixels.",
|
|
Packit |
4b6dd7 |
0, G_MAXUINT, 0,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:size:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The size of the file, in bytes.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_size">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_SIZE,
|
|
Packit |
4b6dd7 |
g_param_spec_ulong ("size",
|
|
Packit |
4b6dd7 |
"Size", "The size of the file, in bytes.",
|
|
Packit |
4b6dd7 |
0, G_MAXULONG, 0,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:edited:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The time this file was last edited. If the file has not been edited yet, the content indicates the time it was created.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://www.atomenabled.org/developers/protocol/#appEdited">
|
|
Packit |
4b6dd7 |
* Atom Publishing Protocol specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_EDITED,
|
|
Packit |
4b6dd7 |
g_param_spec_int64 ("edited",
|
|
Packit |
4b6dd7 |
"Edited", "The time this file was last edited.",
|
|
Packit |
4b6dd7 |
-1, G_MAXINT64, -1,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:timestamp:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The time the file was purportedly taken. This a UNIX timestamp in milliseconds (not seconds) since the epoch.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_timestamp">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_TIMESTAMP,
|
|
Packit |
4b6dd7 |
g_param_spec_int64 ("timestamp",
|
|
Packit |
4b6dd7 |
"Timestamp", "The time the file was purportedly taken.",
|
|
Packit |
4b6dd7 |
-1, G_MAXINT64, -1,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:comment-count:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The number of comments on the file.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_commentCount">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_COMMENT_COUNT,
|
|
Packit |
4b6dd7 |
g_param_spec_uint ("comment-count",
|
|
Packit |
4b6dd7 |
"Comment Count", "The number of comments on the file.",
|
|
Packit |
4b6dd7 |
0, G_MAXUINT, 0,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:rotation:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The rotation of the photo, in degrees. This will only be non-zero for files which are pending rotation, and haven't yet been
|
|
Packit |
4b6dd7 |
* permanently modified. For files which have already been rotated, this will be 0 .
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#gphoto_rotation">
|
|
Packit |
4b6dd7 |
* gphoto specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_ROTATION,
|
|
Packit |
4b6dd7 |
g_param_spec_uint ("rotation",
|
|
Packit |
4b6dd7 |
"Rotation", "The rotation of the photo, in degrees.",
|
|
Packit |
4b6dd7 |
0, 359, 0,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:is-commenting-enabled:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Whether commenting is enabled for this file.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_IS_COMMENTING_ENABLED,
|
|
Packit |
4b6dd7 |
g_param_spec_boolean ("is-commenting-enabled",
|
|
Packit |
4b6dd7 |
"Commenting enabled?", "Indicates whether comments are enabled.",
|
|
Packit |
4b6dd7 |
TRUE,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:credit:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The nickname of the user credited with this file.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#media_credit">Media RSS
|
|
Packit |
4b6dd7 |
* specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_CREDIT,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("credit",
|
|
Packit |
4b6dd7 |
"Credit", "The nickname of the user credited with this file.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:caption:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The file's descriptive caption.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_CAPTION,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("caption",
|
|
Packit |
4b6dd7 |
"Caption", "The file's descriptive caption.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:tags:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* A %NULL-terminated array of tags associated with the file.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#media_keywords">
|
|
Packit |
4b6dd7 |
* Media RSS specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_TAGS,
|
|
Packit |
4b6dd7 |
g_param_spec_boxed ("tags",
|
|
Packit |
4b6dd7 |
"Tags", "A NULL-terminated array of tags associated with the file.",
|
|
Packit |
4b6dd7 |
G_TYPE_STRV,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:distance:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The distance to the subject reported in the image's EXIF.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#exif_reference">
|
|
Packit |
4b6dd7 |
* EXIF element reference</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_DISTANCE,
|
|
Packit |
4b6dd7 |
g_param_spec_double ("distance",
|
|
Packit |
4b6dd7 |
"Distance", "The distance to the subject.",
|
|
Packit |
4b6dd7 |
-1.0, G_MAXDOUBLE, -1.0,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:exposure:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The exposure time.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#exif_reference">
|
|
Packit |
4b6dd7 |
* EXIF element reference</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_EXPOSURE,
|
|
Packit |
4b6dd7 |
g_param_spec_double ("exposure",
|
|
Packit |
4b6dd7 |
"Exposure", "The exposure time.",
|
|
Packit |
4b6dd7 |
0.0, G_MAXDOUBLE, 0.0,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:flash:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Indicates whether the flash was used.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#exif_reference">
|
|
Packit |
4b6dd7 |
* EXIF element reference</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_FLASH,
|
|
Packit |
4b6dd7 |
g_param_spec_boolean ("flash",
|
|
Packit |
4b6dd7 |
"Flash", "Indicates whether the flash was used.",
|
|
Packit |
4b6dd7 |
FALSE,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:focal-length:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The focal length for the shot.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#exif_reference">
|
|
Packit |
4b6dd7 |
* EXIF element reference</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_FOCAL_LENGTH,
|
|
Packit |
4b6dd7 |
g_param_spec_double ("focal-length",
|
|
Packit |
4b6dd7 |
"Focal Length", "The focal length used in the shot.",
|
|
Packit |
4b6dd7 |
-1.0, G_MAXDOUBLE, -1.0,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* TODO: Rename to f-stop */
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:fstop:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The F-stop value.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#exif_reference">
|
|
Packit |
4b6dd7 |
* EXIF element reference</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_FSTOP,
|
|
Packit |
4b6dd7 |
g_param_spec_double ("fstop",
|
|
Packit |
4b6dd7 |
"F-stop", "The F-stop used.",
|
|
Packit |
4b6dd7 |
0.0, G_MAXDOUBLE, 0.0,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:image-unique-id:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* An unique ID for the image found in the EXIF.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#exif_reference">
|
|
Packit |
4b6dd7 |
* EXIF element reference</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_IMAGE_UNIQUE_ID,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("image-unique-id",
|
|
Packit |
4b6dd7 |
"Image Unique ID", "An unique ID for the image.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:iso:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The ISO speed.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#exif_reference">
|
|
Packit |
4b6dd7 |
* EXIF element reference</ulink> and ISO 5800:1987.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_ISO,
|
|
Packit |
4b6dd7 |
g_param_spec_long ("iso",
|
|
Packit |
4b6dd7 |
"ISO", "The ISO speed.",
|
|
Packit |
4b6dd7 |
-1, G_MAXLONG, -1,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:make:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The name of the manufacturer of the camera.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#exif_reference">
|
|
Packit |
4b6dd7 |
* EXIF element reference</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_MAKE,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("make",
|
|
Packit |
4b6dd7 |
"Make", "The name of the manufacturer.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:model:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The model of the camera.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/reference.html#exif_reference">
|
|
Packit |
4b6dd7 |
* EXIF element reference</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_MODEL,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("model",
|
|
Packit |
4b6dd7 |
"Model", "The model of the camera.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:latitude:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The location as a latitude coordinate associated with this file. Valid latitudes range from -90.0
|
|
Packit |
4b6dd7 |
* to 90.0 inclusive.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/docs/2.0/reference.html#georss_where">
|
|
Packit |
4b6dd7 |
* GeoRSS specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_LATITUDE,
|
|
Packit |
4b6dd7 |
g_param_spec_double ("latitude",
|
|
Packit |
4b6dd7 |
"Latitude", "The location as a latitude coordinate associated with this file.",
|
|
Packit |
4b6dd7 |
-90.0, 90.0, 0.0,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataPicasaWebFile:longitude:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The location as a longitude coordinate associated with this file. Valid longitudes range from -180.0
|
|
Packit |
4b6dd7 |
* to 180.0 inclusive.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information, see the <ulink type="http" url="http://code.google.com/apis/picasaweb/docs/2.0/reference.html#georss_where">
|
|
Packit |
4b6dd7 |
* GeoRSS specification</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_LONGITUDE,
|
|
Packit |
4b6dd7 |
g_param_spec_double ("longitude",
|
|
Packit |
4b6dd7 |
"Longitude", "The location as a longitude coordinate associated with this file.",
|
|
Packit |
4b6dd7 |
-180.0, 180.0, 0.0,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_commentable_init (GDataCommentableInterface *iface)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
iface->comment_type = GDATA_TYPE_PICASAWEB_COMMENT;
|
|
Packit |
4b6dd7 |
iface->get_authorization_domain = get_authorization_domain;
|
|
Packit |
4b6dd7 |
iface->get_query_comments_uri = get_query_comments_uri;
|
|
Packit |
4b6dd7 |
iface->get_insert_comment_uri = get_insert_comment_uri;
|
|
Packit |
4b6dd7 |
iface->is_comment_deletable = is_comment_deletable;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
notify_title_cb (GDataPicasaWebFile *self, GParamSpec *pspec, gpointer user_data)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
/* Keep the atom:title and media:group/media:title in sync */
|
|
Packit |
4b6dd7 |
if (self->priv->media_group != NULL)
|
|
Packit |
4b6dd7 |
gdata_media_group_set_title (self->priv->media_group, gdata_entry_get_title (GDATA_ENTRY (self)));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
notify_summary_cb (GDataPicasaWebFile *self, GParamSpec *pspec, gpointer user_data)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
/* Keep the atom:summary and media:group/media:description in sync */
|
|
Packit |
4b6dd7 |
if (self->priv->media_group != NULL)
|
|
Packit |
4b6dd7 |
gdata_media_group_set_description (self->priv->media_group, gdata_entry_get_summary (GDATA_ENTRY (self)));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_init (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GDATA_TYPE_PICASAWEB_FILE, GDataPicasaWebFilePrivate);
|
|
Packit |
4b6dd7 |
self->priv->media_group = g_object_new (GDATA_TYPE_MEDIA_GROUP, NULL);
|
|
Packit |
4b6dd7 |
self->priv->exif_tags = g_object_new (GDATA_TYPE_EXIF_TAGS, NULL);
|
|
Packit |
4b6dd7 |
self->priv->georss_where = g_object_new (GDATA_TYPE_GEORSS_WHERE, NULL);
|
|
Packit |
4b6dd7 |
self->priv->is_commenting_enabled = TRUE;
|
|
Packit |
4b6dd7 |
self->priv->edited = -1;
|
|
Packit |
4b6dd7 |
self->priv->timestamp = -1;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* We need to keep atom:title (the canonical title for the file) in sync with media:group/media:title */
|
|
Packit |
4b6dd7 |
g_signal_connect (self, "notify::title", G_CALLBACK (notify_title_cb), NULL);
|
|
Packit |
4b6dd7 |
/* atom:summary (the canonical summary/caption for the file) in sync with media:group/media:description */
|
|
Packit |
4b6dd7 |
g_signal_connect (self, "notify::summary", G_CALLBACK (notify_summary_cb), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static GObject *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_constructor (GType type, guint n_construct_params, GObjectConstructParam *construct_params)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GObject *object;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Chain up to the parent class */
|
|
Packit |
4b6dd7 |
object = G_OBJECT_CLASS (gdata_picasaweb_file_parent_class)->constructor (type, n_construct_params, construct_params);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (_gdata_parsable_is_constructed_from_xml (GDATA_PARSABLE (object)) == FALSE) {
|
|
Packit |
4b6dd7 |
GDataPicasaWebFilePrivate *priv = GDATA_PICASAWEB_FILE (object)->priv;
|
|
Packit |
4b6dd7 |
GTimeVal time_val;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Set the edited and timestamp properties to the current time (creation time). bgo#599140
|
|
Packit |
4b6dd7 |
* We don't do this in *_init() since that would cause setting it from parse_xml() to fail (duplicate element). */
|
|
Packit |
4b6dd7 |
g_get_current_time (&time_val);
|
|
Packit |
4b6dd7 |
priv->timestamp = (gint64) time_val.tv_sec * 1000;
|
|
Packit |
4b6dd7 |
priv->edited = time_val.tv_sec;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return object;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_dispose (GObject *object)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataPicasaWebFilePrivate *priv = GDATA_PICASAWEB_FILE (object)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->media_group != NULL)
|
|
Packit |
4b6dd7 |
g_object_unref (priv->media_group);
|
|
Packit |
4b6dd7 |
priv->media_group = NULL;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->exif_tags != NULL)
|
|
Packit |
4b6dd7 |
g_object_unref (priv->exif_tags);
|
|
Packit |
4b6dd7 |
priv->exif_tags = NULL;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->georss_where != NULL)
|
|
Packit |
4b6dd7 |
g_object_unref (priv->georss_where);
|
|
Packit |
4b6dd7 |
priv->georss_where = NULL;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Chain up to the parent class */
|
|
Packit |
4b6dd7 |
G_OBJECT_CLASS (gdata_picasaweb_file_parent_class)->dispose (object);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_finalize (GObject *object)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataPicasaWebFilePrivate *priv = GDATA_PICASAWEB_FILE (object)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_free (priv->file_id);
|
|
Packit |
4b6dd7 |
g_free (priv->version);
|
|
Packit |
4b6dd7 |
g_free (priv->album_id);
|
|
Packit |
4b6dd7 |
g_free (priv->checksum);
|
|
Packit |
4b6dd7 |
g_free (priv->video_status);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Chain up to the parent class */
|
|
Packit |
4b6dd7 |
G_OBJECT_CLASS (gdata_picasaweb_file_parent_class)->finalize (object);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataPicasaWebFilePrivate *priv = GDATA_PICASAWEB_FILE (object)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
switch (property_id) {
|
|
Packit |
4b6dd7 |
case PROP_FILE_ID:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->file_id);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_EDITED:
|
|
Packit |
4b6dd7 |
g_value_set_int64 (value, priv->edited);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_VERSION:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->version);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_ALBUM_ID:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->album_id);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_WIDTH:
|
|
Packit |
4b6dd7 |
g_value_set_uint (value, priv->width);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_HEIGHT:
|
|
Packit |
4b6dd7 |
g_value_set_uint (value, priv->height);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_SIZE:
|
|
Packit |
4b6dd7 |
g_value_set_ulong (value, priv->size);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_CHECKSUM:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->checksum);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_TIMESTAMP:
|
|
Packit |
4b6dd7 |
g_value_set_int64 (value, priv->timestamp);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_IS_COMMENTING_ENABLED:
|
|
Packit |
4b6dd7 |
g_value_set_boolean (value, priv->is_commenting_enabled);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_COMMENT_COUNT:
|
|
Packit |
4b6dd7 |
g_value_set_uint (value, priv->comment_count);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_ROTATION:
|
|
Packit |
4b6dd7 |
g_value_set_uint (value, priv->rotation);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_VIDEO_STATUS:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->video_status);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_CREDIT: {
|
|
Packit |
4b6dd7 |
GDataMediaCredit *credit = gdata_media_group_get_credit (priv->media_group);
|
|
Packit |
4b6dd7 |
g_value_set_string (value, gdata_media_credit_get_credit (credit));
|
|
Packit |
4b6dd7 |
break; }
|
|
Packit |
4b6dd7 |
case PROP_CAPTION:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, gdata_entry_get_summary (GDATA_ENTRY (object)));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_TAGS:
|
|
Packit |
4b6dd7 |
g_value_set_boxed (value, gdata_media_group_get_keywords (priv->media_group));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_DISTANCE:
|
|
Packit |
4b6dd7 |
g_value_set_double (value, gdata_exif_tags_get_distance (priv->exif_tags));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_EXPOSURE:
|
|
Packit |
4b6dd7 |
g_value_set_double (value, gdata_exif_tags_get_exposure (priv->exif_tags));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_FLASH:
|
|
Packit |
4b6dd7 |
g_value_set_boolean (value, gdata_exif_tags_get_flash (priv->exif_tags));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_FOCAL_LENGTH:
|
|
Packit |
4b6dd7 |
g_value_set_double (value, gdata_exif_tags_get_focal_length (priv->exif_tags));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_FSTOP:
|
|
Packit |
4b6dd7 |
g_value_set_double (value, gdata_exif_tags_get_fstop (priv->exif_tags));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_IMAGE_UNIQUE_ID:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, gdata_exif_tags_get_image_unique_id (priv->exif_tags));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_ISO:
|
|
Packit |
4b6dd7 |
g_value_set_long (value, gdata_exif_tags_get_iso (priv->exif_tags));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_MAKE:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, gdata_exif_tags_get_make (priv->exif_tags));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_MODEL:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, gdata_exif_tags_get_model (priv->exif_tags));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LATITUDE:
|
|
Packit |
4b6dd7 |
g_value_set_double (value, gdata_georss_where_get_latitude (priv->georss_where));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LONGITUDE:
|
|
Packit |
4b6dd7 |
g_value_set_double (value, gdata_georss_where_get_longitude (priv->georss_where));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
default:
|
|
Packit |
4b6dd7 |
/* We don't have any other property... */
|
|
Packit |
4b6dd7 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataPicasaWebFile *self = GDATA_PICASAWEB_FILE (object);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
switch (property_id) {
|
|
Packit |
4b6dd7 |
case PROP_FILE_ID:
|
|
Packit |
4b6dd7 |
/* Construct only */
|
|
Packit |
4b6dd7 |
g_free (self->priv->file_id);
|
|
Packit |
4b6dd7 |
self->priv->file_id = g_value_dup_string (value);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_VERSION:
|
|
Packit |
4b6dd7 |
/* Construct only */
|
|
Packit |
4b6dd7 |
g_free (self->priv->version);
|
|
Packit |
4b6dd7 |
self->priv->version = g_value_dup_string (value);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_ALBUM_ID:
|
|
Packit |
4b6dd7 |
/* TODO: do we allow this to change albums? I think that's how pictures are moved. */
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_album_id (self, g_value_get_string (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_CHECKSUM:
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_checksum (self, g_value_get_string (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_TIMESTAMP:
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_timestamp (self, g_value_get_int64 (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_IS_COMMENTING_ENABLED: /* TODO I don't think we can change this on a per file basis */
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_is_commenting_enabled (self, g_value_get_boolean (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_ROTATION:
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_rotation (self, g_value_get_uint (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_CAPTION:
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_caption (self, g_value_get_string (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_TAGS:
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_tags (self, g_value_get_boxed (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LATITUDE:
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_coordinates (self, g_value_get_double (value),
|
|
Packit |
4b6dd7 |
gdata_georss_where_get_longitude (self->priv->georss_where));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_LONGITUDE:
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_coordinates (self, gdata_georss_where_get_latitude (self->priv->georss_where),
|
|
Packit |
4b6dd7 |
g_value_get_double (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
default:
|
|
Packit |
4b6dd7 |
/* We don't have any other property... */
|
|
Packit |
4b6dd7 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static gboolean
|
|
Packit |
4b6dd7 |
parse_xml (GDataParsable *parsable, xmlDoc *doc, xmlNode *node, gpointer user_data, GError **error)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
gboolean success;
|
|
Packit |
4b6dd7 |
GDataPicasaWebFile *self = GDATA_PICASAWEB_FILE (parsable);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* TODO: media:group should also be P_NO_DUPES, but we can't, as priv->media_group has to be pre-populated
|
|
Packit |
4b6dd7 |
* in order for things like gdata_picasaweb_file_set_description() to work. */
|
|
Packit |
4b6dd7 |
if (gdata_parser_is_namespace (node, "http://www.w3.org/2007/app") == TRUE &&
|
|
Packit |
4b6dd7 |
gdata_parser_int64_time_from_element (node, "edited", P_REQUIRED | P_NO_DUPES, &(self->priv->edited), &success, error) == TRUE) {
|
|
Packit |
4b6dd7 |
return success;
|
|
Packit |
4b6dd7 |
} else if (gdata_parser_is_namespace (node, "http://search.yahoo.com/mrss/") == TRUE &&
|
|
Packit |
4b6dd7 |
gdata_parser_object_from_element (node, "group", P_REQUIRED, GDATA_TYPE_MEDIA_GROUP,
|
|
Packit |
4b6dd7 |
&(self->priv->media_group), &success, error) == TRUE) {
|
|
Packit |
4b6dd7 |
return success;
|
|
Packit |
4b6dd7 |
} else if (gdata_parser_is_namespace (node, "http://www.georss.org/georss") == TRUE &&
|
|
Packit |
4b6dd7 |
gdata_parser_object_from_element (node, "where", P_REQUIRED, GDATA_TYPE_GEORSS_WHERE,
|
|
Packit |
4b6dd7 |
&(self->priv->georss_where), &success, error) == TRUE) {
|
|
Packit |
4b6dd7 |
return success;
|
|
Packit |
4b6dd7 |
} else if (gdata_parser_is_namespace (node, "http://schemas.google.com/photos/exif/2007") == TRUE &&
|
|
Packit |
4b6dd7 |
gdata_parser_object_from_element (node, "tags", P_REQUIRED, GDATA_TYPE_EXIF_TAGS,
|
|
Packit |
4b6dd7 |
&(self->priv->exif_tags), &success, error) == TRUE) {
|
|
Packit |
4b6dd7 |
return success;
|
|
Packit |
4b6dd7 |
} else if (gdata_parser_is_namespace (node, "http://schemas.google.com/photos/2007") == TRUE) {
|
|
Packit |
4b6dd7 |
if (gdata_parser_string_from_element (node, "videostatus", P_NO_DUPES, &(self->priv->video_status), &success, error) == TRUE ||
|
|
Packit |
4b6dd7 |
gdata_parser_string_from_element (node, "imageVersion", P_NONE, &(self->priv->version), &success, error) == TRUE ||
|
|
Packit |
4b6dd7 |
gdata_parser_string_from_element (node, "albumid", P_NONE, &(self->priv->album_id), &success, error) == TRUE ||
|
|
Packit |
4b6dd7 |
gdata_parser_string_from_element (node, "checksum", P_NONE, &(self->priv->checksum), &success, error) == TRUE ||
|
|
Packit |
4b6dd7 |
gdata_parser_string_from_element (node, "id", P_REQUIRED | P_NON_EMPTY | P_NO_DUPES,
|
|
Packit |
4b6dd7 |
&(self->priv->file_id), &success, error) == TRUE) {
|
|
Packit |
4b6dd7 |
return success;
|
|
Packit |
4b6dd7 |
} else if (xmlStrcmp (node->name, (xmlChar*) "width") == 0) {
|
|
Packit |
4b6dd7 |
/* gphoto:width */
|
|
Packit |
4b6dd7 |
xmlChar *width = xmlNodeListGetString (doc, node->children, TRUE);
|
|
Packit |
4b6dd7 |
self->priv->width = g_ascii_strtoull ((gchar*) width, NULL, 10);
|
|
Packit |
4b6dd7 |
xmlFree (width);
|
|
Packit |
4b6dd7 |
} else if (xmlStrcmp (node->name, (xmlChar*) "height") == 0) {
|
|
Packit |
4b6dd7 |
/* gphoto:height */
|
|
Packit |
4b6dd7 |
xmlChar *height = xmlNodeListGetString (doc, node->children, TRUE);
|
|
Packit |
4b6dd7 |
self->priv->height = g_ascii_strtoull ((gchar*) height, NULL, 10);
|
|
Packit |
4b6dd7 |
xmlFree (height);
|
|
Packit |
4b6dd7 |
} else if (xmlStrcmp (node->name, (xmlChar*) "size") == 0) {
|
|
Packit |
4b6dd7 |
/* gphoto:size */
|
|
Packit |
4b6dd7 |
xmlChar *size = xmlNodeListGetString (doc, node->children, TRUE);
|
|
Packit |
4b6dd7 |
self->priv->size = g_ascii_strtoull ((gchar*) size, NULL, 10);
|
|
Packit |
4b6dd7 |
xmlFree (size);
|
|
Packit |
4b6dd7 |
} else if (xmlStrcmp (node->name, (xmlChar*) "timestamp") == 0) {
|
|
Packit |
4b6dd7 |
/* gphoto:timestamp */
|
|
Packit |
4b6dd7 |
xmlChar *timestamp_str;
|
|
Packit |
4b6dd7 |
guint64 milliseconds;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
timestamp_str = xmlNodeListGetString (doc, node->children, TRUE);
|
|
Packit |
4b6dd7 |
milliseconds = g_ascii_strtoull ((gchar*) timestamp_str, NULL, 10);
|
|
Packit |
4b6dd7 |
xmlFree (timestamp_str);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_timestamp (self, (gint64) milliseconds);
|
|
Packit |
4b6dd7 |
} else if (xmlStrcmp (node->name, (xmlChar*) "commentingEnabled") == 0) {
|
|
Packit |
4b6dd7 |
/* gphoto:commentingEnabled */
|
|
Packit |
4b6dd7 |
xmlChar *is_commenting_enabled = xmlNodeListGetString (doc, node->children, TRUE);
|
|
Packit |
4b6dd7 |
if (is_commenting_enabled == NULL)
|
|
Packit |
4b6dd7 |
return gdata_parser_error_required_content_missing (node, error);
|
|
Packit |
4b6dd7 |
self->priv->is_commenting_enabled = (xmlStrcmp (is_commenting_enabled, (xmlChar*) "true") == 0 ? TRUE : FALSE);
|
|
Packit |
4b6dd7 |
xmlFree (is_commenting_enabled);
|
|
Packit |
4b6dd7 |
} else if (xmlStrcmp (node->name, (xmlChar*) "commentCount") == 0) {
|
|
Packit |
4b6dd7 |
/* gphoto:commentCount */
|
|
Packit |
4b6dd7 |
xmlChar *comment_count = xmlNodeListGetString (doc, node->children, TRUE);
|
|
Packit |
4b6dd7 |
self->priv->comment_count = g_ascii_strtoull ((gchar*) comment_count, NULL, 10);
|
|
Packit |
4b6dd7 |
xmlFree (comment_count);
|
|
Packit |
4b6dd7 |
} else if (xmlStrcmp (node->name, (xmlChar*) "access") == 0) {
|
|
Packit |
4b6dd7 |
/* gphoto:access */
|
|
Packit |
4b6dd7 |
/* Visibility is already obtained through the album. When PicasaWeb supports per-file access restrictions,
|
|
Packit |
4b6dd7 |
* we'll expose this property. Until then, we'll catch this to suppress the Unhandled XML warning.
|
|
Packit |
4b6dd7 |
* See https://bugzilla.gnome.org/show_bug.cgi?id=589858 */
|
|
Packit |
4b6dd7 |
} else if (xmlStrcmp (node->name, (xmlChar*) "rotation") == 0) {
|
|
Packit |
4b6dd7 |
/* gphoto:rotation */
|
|
Packit |
4b6dd7 |
xmlChar *rotation = xmlNodeListGetString (doc, node->children, TRUE);
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_rotation (self, g_ascii_strtoull ((gchar*) rotation, NULL, 10));
|
|
Packit |
4b6dd7 |
xmlFree (rotation);
|
|
Packit |
4b6dd7 |
} else {
|
|
Packit |
4b6dd7 |
return GDATA_PARSABLE_CLASS (gdata_picasaweb_file_parent_class)->parse_xml (parsable, doc, node, user_data, error);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
} else {
|
|
Packit |
4b6dd7 |
return GDATA_PARSABLE_CLASS (gdata_picasaweb_file_parent_class)->parse_xml (parsable, doc, node, user_data, error);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return TRUE;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
get_xml (GDataParsable *parsable, GString *xml_string)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataPicasaWebFilePrivate *priv = GDATA_PICASAWEB_FILE (parsable)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Chain up to the parent class */
|
|
Packit |
4b6dd7 |
GDATA_PARSABLE_CLASS (gdata_picasaweb_file_parent_class)->get_xml (parsable, xml_string);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Add all the PicasaWeb-specific XML */
|
|
Packit |
4b6dd7 |
if (priv->file_id != NULL)
|
|
Packit |
4b6dd7 |
gdata_parser_string_append_escaped (xml_string, "<gphoto:id>", priv->file_id, "</gphoto:id>");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->version != NULL)
|
|
Packit |
4b6dd7 |
gdata_parser_string_append_escaped (xml_string, "<gphoto:imageVersion>", priv->version, "</gphoto:imageVersion>");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->album_id != NULL)
|
|
Packit |
4b6dd7 |
gdata_parser_string_append_escaped (xml_string, "<gphoto:albumid>", priv->album_id, "</gphoto:albumid>");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->checksum != NULL)
|
|
Packit |
4b6dd7 |
gdata_parser_string_append_escaped (xml_string, "<gphoto:checksum>", priv->checksum, "</gphoto:checksum>");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->timestamp != -1) {
|
|
Packit |
4b6dd7 |
/* timestamp is in milliseconds */
|
|
Packit |
4b6dd7 |
g_string_append_printf (xml_string, "<gphoto:timestamp>%" G_GINT64_FORMAT "</gphoto:timestamp>", priv->timestamp);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->is_commenting_enabled == TRUE)
|
|
Packit |
4b6dd7 |
g_string_append (xml_string, "<gphoto:commentingEnabled>true</gphoto:commentingEnabled>");
|
|
Packit |
4b6dd7 |
else
|
|
Packit |
4b6dd7 |
g_string_append (xml_string, "<gphoto:commentingEnabled>false</gphoto:commentingEnabled>");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->rotation > 0)
|
|
Packit |
4b6dd7 |
g_string_append_printf (xml_string, "<gphoto:rotation>%u</gphoto:rotation>", priv->rotation);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* media:group */
|
|
Packit |
4b6dd7 |
_gdata_parsable_get_xml (GDATA_PARSABLE (priv->media_group), xml_string, FALSE);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* georss:where */
|
|
Packit |
4b6dd7 |
if (priv->georss_where != NULL && gdata_georss_where_get_latitude (priv->georss_where) != G_MAXDOUBLE &&
|
|
Packit |
4b6dd7 |
gdata_georss_where_get_longitude (priv->georss_where) != G_MAXDOUBLE) {
|
|
Packit |
4b6dd7 |
_gdata_parsable_get_xml (GDATA_PARSABLE (priv->georss_where), xml_string, FALSE);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* TODO:
|
|
Packit |
4b6dd7 |
* - Finish supporting all tags
|
|
Packit |
4b6dd7 |
* - Check all tags here are valid for insertions and updates
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
get_namespaces (GDataParsable *parsable, GHashTable *namespaces)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataPicasaWebFilePrivate *priv = GDATA_PICASAWEB_FILE (parsable)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Chain up to the parent class */
|
|
Packit |
4b6dd7 |
GDATA_PARSABLE_CLASS (gdata_picasaweb_file_parent_class)->get_namespaces (parsable, namespaces);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_hash_table_insert (namespaces, (gchar*) "gphoto", (gchar*) "http://schemas.google.com/photos/2007");
|
|
Packit |
4b6dd7 |
g_hash_table_insert (namespaces, (gchar*) "app", (gchar*) "http://www.w3.org/2007/app");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Add the media:group namespaces */
|
|
Packit |
4b6dd7 |
GDATA_PARSABLE_GET_CLASS (priv->media_group)->get_namespaces (GDATA_PARSABLE (priv->media_group), namespaces);
|
|
Packit |
4b6dd7 |
/* Add the exif:tags namespaces */
|
|
Packit |
4b6dd7 |
GDATA_PARSABLE_GET_CLASS (priv->exif_tags)->get_namespaces (GDATA_PARSABLE (priv->exif_tags), namespaces);
|
|
Packit |
4b6dd7 |
/* Add the georss:where namespaces */
|
|
Packit |
4b6dd7 |
GDATA_PARSABLE_GET_CLASS (priv->georss_where)->get_namespaces (GDATA_PARSABLE (priv->georss_where), namespaces);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static gchar *
|
|
Packit |
4b6dd7 |
get_entry_uri (const gchar *id)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
/* For files, the ID is of the form: "http://picasaweb.google.com/data/entry/user/liz/albumid/albumID/photoid/photoID"
|
|
Packit |
4b6dd7 |
* whereas the URI is of the form: "http://picasaweb.google.com/data/entry/api/user/liz/albumid/albumID/photoid/photoID" */
|
|
Packit |
4b6dd7 |
gchar **parts, *uri;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
parts = g_strsplit (id, "/entry/user/", 2);
|
|
Packit |
4b6dd7 |
g_assert (parts[0] != NULL && parts[1] != NULL && parts[2] == NULL);
|
|
Packit |
4b6dd7 |
uri = g_strconcat (parts[0], "/entry/api/user/", parts[1], NULL);
|
|
Packit |
4b6dd7 |
g_strfreev (parts);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return uri;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
GDataAuthorizationDomain *
|
|
Packit |
4b6dd7 |
get_authorization_domain (GDataCommentable *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
return gdata_picasaweb_service_get_primary_authorization_domain ();
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static gchar *
|
|
Packit |
4b6dd7 |
get_query_comments_uri (GDataCommentable *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataLink *_link;
|
|
Packit |
4b6dd7 |
SoupURI *uri;
|
|
Packit |
4b6dd7 |
GHashTable *query;
|
|
Packit |
4b6dd7 |
gchar *output_uri;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Get the feed link of the form: https://picasaweb.google.com/data/feed/api/user/[userID]/albumid/[albumID]/photoid/[photoID] */
|
|
Packit |
4b6dd7 |
_link = gdata_entry_look_up_link (GDATA_ENTRY (self), "http://schemas.google.com/g/2005#feed");
|
|
Packit |
4b6dd7 |
g_assert (_link != NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* We're going to query the comments belonging to the photo, so add the comment kind. This link isn't available as a normal <link> on
|
|
Packit |
4b6dd7 |
* photos. It's of the form: https://picasaweb.google.com/data/feed/api/user/[userID]/albumid/[albumID]/photoid/[photoID]?kind=comment */
|
|
Packit |
4b6dd7 |
uri = soup_uri_new (gdata_link_get_uri (_link));
|
|
Packit |
4b6dd7 |
query = soup_form_decode (uri->query);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_hash_table_replace (query, g_strdup ("kind"), (gchar*) "comment"); /* libsoup only specifies a destruction function for the key */
|
|
Packit |
4b6dd7 |
soup_uri_set_query_from_form (uri, query);
|
|
Packit |
4b6dd7 |
output_uri = soup_uri_to_string (uri, FALSE);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_hash_table_destroy (query);
|
|
Packit |
4b6dd7 |
soup_uri_free (uri);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return output_uri;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static gchar *
|
|
Packit |
4b6dd7 |
get_insert_comment_uri (GDataCommentable *self, GDataComment *comment_)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataLink *_link;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
_link = gdata_entry_look_up_link (GDATA_ENTRY (self), "http://schemas.google.com/g/2005#feed");
|
|
Packit |
4b6dd7 |
g_assert (_link != NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return g_strdup (gdata_link_get_uri (_link));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static gboolean
|
|
Packit |
4b6dd7 |
is_comment_deletable (GDataCommentable *self, GDataComment *comment_)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
return (gdata_entry_look_up_link (GDATA_ENTRY (comment_), GDATA_LINK_EDIT) != NULL) ? TRUE : FALSE;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_new:
|
|
Packit |
4b6dd7 |
* @id: (allow-none): the file's ID, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Creates a new #GDataPicasaWebFile with the given ID and default properties.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: a new #GDataPicasaWebFile; unref with g_object_unref()
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataPicasaWebFile *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_new (const gchar *id)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
const gchar *file_id = NULL, *i;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (id != NULL) {
|
|
Packit |
4b6dd7 |
file_id = g_strrstr (id, "/");
|
|
Packit |
4b6dd7 |
if (file_id == NULL)
|
|
Packit |
4b6dd7 |
return NULL;
|
|
Packit |
4b6dd7 |
file_id++; /* skip the slash */
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Ensure the @file_id is entirely numeric */
|
|
Packit |
4b6dd7 |
for (i = file_id; *i != '\0'; i = g_utf8_next_char (i)) {
|
|
Packit |
4b6dd7 |
if (g_unichar_isdigit (g_utf8_get_char (i)) == FALSE)
|
|
Packit |
4b6dd7 |
return NULL;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return GDATA_PICASAWEB_FILE (g_object_new (GDATA_TYPE_PICASAWEB_FILE, "id", id, "file-id", file_id, NULL));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_id:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:file-id property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the file's ID
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.7.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_id (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->file_id;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_edited:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:edited property. If the property is unset, -1 will be returned.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the UNIX timestamp for the time the file was last edited, or -1
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gint64
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_edited (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), -1);
|
|
Packit |
4b6dd7 |
return self->priv->edited;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_version:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:version property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the file's version number, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_version (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->version;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_album_id:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:album-id property. This is in the same form as returned by gdata_picasaweb_album_get_id().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the ID of the album containing the #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_album_id (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->album_id;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_set_album_id:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
* @album_id: the ID of the new album for this file
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataPicasaWebFile:album-id property, effectively moving the file to the album.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_album_id (GDataPicasaWebFile *self, const gchar *album_id)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_PICASAWEB_FILE (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (album_id != NULL && *album_id != '\0');
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_free (self->priv->album_id);
|
|
Packit |
4b6dd7 |
self->priv->album_id = g_strdup (album_id);
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "album-id");
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_width:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:width property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the width of the image or video, in pixels
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
guint
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_width (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), 0);
|
|
Packit |
4b6dd7 |
return self->priv->width;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_height:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:height property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the height of the image or video, in pixels
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
guint
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_height (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), 0);
|
|
Packit |
4b6dd7 |
return self->priv->height;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_size:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:size property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the size of the file, in bytes
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gsize
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_size (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), 0);
|
|
Packit |
4b6dd7 |
return self->priv->size;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_checksum:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:checksum property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the checksum assigned to this file, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_checksum (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->checksum;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_set_checksum:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
* @checksum: (allow-none): the new checksum for this file, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataPicasaWebFile:checksum property to @checksum.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set @checksum to %NULL to unset the property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_checksum (GDataPicasaWebFile *self, const gchar *checksum)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_PICASAWEB_FILE (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_free (self->priv->checksum);
|
|
Packit |
4b6dd7 |
self->priv->checksum = g_strdup (checksum);
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "checksum");
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_timestamp:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:timestamp property. It's a UNIX timestamp in milliseconds (not seconds) since the epoch. If the property is unset,
|
|
Packit |
4b6dd7 |
* -1 will be returned.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the UNIX timestamp for the timestamp property in milliseconds, or -1
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gint64
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_timestamp (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), -1);
|
|
Packit |
4b6dd7 |
return self->priv->timestamp;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_set_timestamp:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
* @timestamp: a UNIX timestamp, or -1
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataPicasaWebFile:timestamp property from @timestamp. This should be a UNIX timestamp in milliseconds (not seconds) since the epoch. If
|
|
Packit |
4b6dd7 |
* @timestamp is -1 , the property will be unset.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_timestamp (GDataPicasaWebFile *self, gint64 timestamp)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
/* RHSTODO: I think the timestamp value is just being
|
|
Packit |
4b6dd7 |
over-ridden by the file's actual EXIF time value; unless
|
|
Packit |
4b6dd7 |
we're setting this incorrectly here or in get_xml(); test that */
|
|
Packit |
4b6dd7 |
/* RHSTODO: improve testing of setters in tests/picasa.c */
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_PICASAWEB_FILE (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (timestamp >= -1);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
self->priv->timestamp = timestamp;
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "timestamp");
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_is_commenting_enabled:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:is-commenting-enabled property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: %TRUE if commenting is enabled, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gboolean
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_is_commenting_enabled (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), FALSE);
|
|
Packit |
4b6dd7 |
return self->priv->is_commenting_enabled;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_set_is_commenting_enabled:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
* @is_commenting_enabled: %TRUE if commenting should be enabled for the file, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataPicasaWebFile:is-commenting-enabled property to @is_commenting_enabled.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_is_commenting_enabled (GDataPicasaWebFile *self, gboolean is_commenting_enabled)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_PICASAWEB_FILE (self));
|
|
Packit |
4b6dd7 |
self->priv->is_commenting_enabled = is_commenting_enabled;
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "is-commenting-enabled");
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_comment_count:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:comment-count property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the number of comments on the file
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
guint
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_comment_count (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), 0);
|
|
Packit |
4b6dd7 |
return self->priv->comment_count;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_rotation:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:rotation property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the image's rotation, in degrees
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
guint
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_rotation (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), 0);
|
|
Packit |
4b6dd7 |
return self->priv->rotation;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_set_rotation:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
* @rotation: the new rotation for the image, in degrees
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataPicasaWebFile:rotation property to @rotation.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The rotation is absolute, rather than cumulative, through successive calls to gdata_picasaweb_file_set_rotation(),
|
|
Packit |
4b6dd7 |
* so calling it with 90° then 20° will result in a final rotation of 20°.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_rotation (GDataPicasaWebFile *self, guint rotation)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_PICASAWEB_FILE (self));
|
|
Packit |
4b6dd7 |
self->priv->rotation = rotation % 360;
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "rotation");
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_video_status:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:video-status property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the status of this video ("pending", "ready", "final" or "failed"), or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_video_status (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->video_status;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_tags:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:tags property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (array zero-terminated=1) (transfer none): a %NULL-terminated array of tags associated with the file, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar * const *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_tags (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return gdata_media_group_get_keywords (self->priv->media_group);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_set_tags:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
* @tags: (array zero-terminated=1) (allow-none): a new %NULL-terminated array of tags, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataPicasaWebFile:tags property to @tags.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set @tags to %NULL to unset the property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_tags (GDataPicasaWebFile *self, const gchar * const *tags)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_PICASAWEB_FILE (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gdata_media_group_set_keywords (self->priv->media_group, tags);
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "tags");
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_credit:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:credit property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the nickname of the user credited with this file
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_credit (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataMediaCredit *credit;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
credit = gdata_media_group_get_credit (self->priv->media_group);
|
|
Packit |
4b6dd7 |
return (credit == NULL) ? NULL : gdata_media_credit_get_credit (credit);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_caption:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:caption property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the file's descriptive caption, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_caption (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return gdata_entry_get_summary (GDATA_ENTRY (self));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_set_caption:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
* @caption: (allow-none): the file's new caption, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataPicasaWebFile:caption property to @caption.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set @caption to %NULL to unset the file's caption.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_caption (GDataPicasaWebFile *self, const gchar *caption)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_PICASAWEB_FILE (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gdata_entry_set_summary (GDATA_ENTRY (self), caption);
|
|
Packit |
4b6dd7 |
gdata_media_group_set_description (self->priv->media_group, caption);
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "caption");
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_contents:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Returns a list of media content, e.g. the actual photo or video.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (element-type GData.MediaContent) (transfer none): a #GList of #GDataMediaContent items
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GList *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_contents (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return gdata_media_group_get_contents (self->priv->media_group);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_thumbnails:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Returns a list of thumbnails, often at different sizes, for this
|
|
Packit |
4b6dd7 |
* file. Currently, PicasaWeb usually returns three thumbnails, with
|
|
Packit |
4b6dd7 |
* widths in pixels of 72, 144, and 288. However, the thumbnail will
|
|
Packit |
4b6dd7 |
* not be larger than the actual image, so thumbnails may be smaller
|
|
Packit |
4b6dd7 |
* than the widths listed above.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (element-type GData.MediaThumbnail) (transfer none): a #GList of #GDataMediaThumbnails, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GList *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_thumbnails (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return gdata_media_group_get_thumbnails (self->priv->media_group);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_distance:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:distance property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the distance recorded in the photo's EXIF, or -1 if unknown
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gdouble
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_distance (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), -1);
|
|
Packit |
4b6dd7 |
return gdata_exif_tags_get_distance (self->priv->exif_tags);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_exposure:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:exposure property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the exposure value, or 0 if unknown
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gdouble
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_exposure (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), 0);
|
|
Packit |
4b6dd7 |
return gdata_exif_tags_get_exposure (self->priv->exif_tags);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_flash:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:flash property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: %TRUE if flash was used, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gboolean
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_flash (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), FALSE);
|
|
Packit |
4b6dd7 |
return gdata_exif_tags_get_flash (self->priv->exif_tags);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_focal_length:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:focal-length property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the focal-length value, or -1 if unknown
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gdouble
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_focal_length (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), -1);
|
|
Packit |
4b6dd7 |
return gdata_exif_tags_get_focal_length (self->priv->exif_tags);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_fstop:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:fstop property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the F-stop value, or 0 if unknown
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gdouble
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_fstop (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), 0);
|
|
Packit |
4b6dd7 |
return gdata_exif_tags_get_fstop (self->priv->exif_tags);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_image_unique_id:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:image-unique-id property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the photo's unique EXIF identifier, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_image_unique_id (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return gdata_exif_tags_get_image_unique_id (self->priv->exif_tags);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_iso:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:iso property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the ISO speed, or -1 if unknown
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gint
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_iso (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), -1);
|
|
Packit |
4b6dd7 |
return gdata_exif_tags_get_iso (self->priv->exif_tags);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_make:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:make property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the name of the manufacturer of the camera, or %NULL if unknown
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_make (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return gdata_exif_tags_get_make (self->priv->exif_tags);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_model:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:model property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the model name of the camera, or %NULL if unknown
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_model (GDataPicasaWebFile *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_PICASAWEB_FILE (self), NULL);
|
|
Packit |
4b6dd7 |
return gdata_exif_tags_get_model (self->priv->exif_tags);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_get_coordinates:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
* @latitude: (out caller-allocates) (allow-none): return location for the latitude, or %NULL
|
|
Packit |
4b6dd7 |
* @longitude: (out caller-allocates) (allow-none): return location for the longitude, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataPicasaWebFile:latitude and #GDataPicasaWebFile:longitude properties, setting the out parameters to them.
|
|
Packit |
4b6dd7 |
* If either latitude or longitude is %NULL, that parameter will not be set. If the coordinates are unset,
|
|
Packit |
4b6dd7 |
* @latitude and @longitude will be set to %G_MAXDOUBLE.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_get_coordinates (GDataPicasaWebFile *self, gdouble *latitude, gdouble *longitude)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_PICASAWEB_FILE (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (latitude != NULL)
|
|
Packit |
4b6dd7 |
*latitude = gdata_georss_where_get_latitude (self->priv->georss_where);
|
|
Packit |
4b6dd7 |
if (longitude != NULL)
|
|
Packit |
4b6dd7 |
*longitude = gdata_georss_where_get_longitude (self->priv->georss_where);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_picasaweb_file_set_coordinates:
|
|
Packit |
4b6dd7 |
* @self: a #GDataPicasaWebFile
|
|
Packit |
4b6dd7 |
* @latitude: the file's new latitude coordinate, or %G_MAXDOUBLE
|
|
Packit |
4b6dd7 |
* @longitude: the file's new longitude coordinate, or %G_MAXDOUBLE
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataPicasaWebFile:latitude and #GDataPicasaWebFile:longitude properties to
|
|
Packit |
4b6dd7 |
* @latitude and @longitude respectively.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.5.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_picasaweb_file_set_coordinates (GDataPicasaWebFile *self, gdouble latitude, gdouble longitude)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_PICASAWEB_FILE (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gdata_georss_where_set_latitude (self->priv->georss_where, latitude);
|
|
Packit |
4b6dd7 |
gdata_georss_where_set_longitude (self->priv->georss_where, longitude);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_object_freeze_notify (G_OBJECT (self));
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "latitude");
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "longitude");
|
|
Packit |
4b6dd7 |
g_object_thaw_notify (G_OBJECT (self));
|
|
Packit |
4b6dd7 |
}
|