Movie Info Provider: First gobject version
[maevies] / src / mvs-minfo-provider.c
1 /*
2  * mvs-minfo-provider.c
3  *
4  * This file is part of maevies
5  * Copyright (C) 2010 Simón Pena <spenap@gmail.com>
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License as
9  * published by the Free Software Foundation; either version 3 of the
10  * License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * General Public License for more details.
16  *
17  */
18
19 #include "mvs-minfo-provider.h"
20
21 G_DEFINE_TYPE (MvsMInfoProvider, mvs_minfo_provider, G_TYPE_OBJECT)
22
23 enum {
24         PROP_0,
25         PROP_QUERY,
26 };
27
28 #define GET_PRIVATE(o) \
29   (G_TYPE_INSTANCE_GET_PRIVATE ((o), MVS_TYPE_MINFO_PROVIDER, MvsMInfoProviderPrivate))
30
31 struct _MvsMInfoProviderPrivate {
32         gchar *query;
33 };
34
35 static void
36 mvs_minfo_provider_get_property (GObject *object, guint property_id,
37                          GValue *value, GParamSpec *pspec)
38 {
39         MvsMInfoProvider *self = MVS_MINFO_PROVIDER (object);
40
41         switch (property_id) {
42         /*case PROP_QUERY:
43                 g_value_set_string (value, self->priv->query);
44                 break;*/
45         default:
46                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
47         }
48 }
49
50 static void
51 mvs_minfo_provider_set_property (GObject *object, guint property_id,
52                          const GValue *value, GParamSpec *pspec)
53 {
54         MvsMInfoProvider *self = MVS_MINFO_PROVIDER (object);
55
56         switch (property_id) {
57         default:
58                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
59         }
60 }
61
62 static void
63 mvs_minfo_provider_finalize (GObject *object)
64 {
65         MvsMInfoProvider *self = MVS_MINFO_PROVIDER (object);
66         g_free (self->priv->query);
67
68         G_OBJECT_CLASS (mvs_minfo_provider_parent_class)->finalize (object);
69 }
70
71 static void
72 mvs_minfo_provider_class_init (MvsMInfoProviderClass *klass)
73 {
74         GObjectClass *object_class = G_OBJECT_CLASS (klass);
75
76         g_type_class_add_private (klass, sizeof (MvsMInfoProviderPrivate));
77
78         object_class->get_property = mvs_minfo_provider_get_property;
79         object_class->set_property = mvs_minfo_provider_set_property;
80         object_class->finalize = mvs_minfo_provider_finalize;
81
82         /* g_object_class_install_property
83                 (object_class, PROP_QUERY,
84                  g_param_spec_string ("query", "The query", "The query",
85                                       NULL,
86                                       G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
87                                       */
88 }
89
90 static void
91 mvs_minfo_provider_init (MvsMInfoProvider *self)
92 {
93         self->priv = GET_PRIVATE (self);
94         self->priv->query = NULL;
95 }
96
97 MvsMInfoProvider*
98 mvs_minfo_provider_new (void)
99 {
100         return g_object_new (MVS_TYPE_MINFO_PROVIDER, NULL);
101 }
102
103 gboolean
104 mvs_minfo_provider_query (MvsMInfoProvider *self,
105                           const gchar *query)
106 {
107         return FALSE;
108 }