[gnome-games] core: Add MediaSet
- From: Adrien Plazas <aplazas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] core: Add MediaSet
- Date: Fri, 19 Aug 2016 21:09:25 +0000 (UTC)
commit 921075edb8799623dee0e03b8e327e0b482a1e01
Author: Ricard Gascons <gascons1995 gmail com>
Date: Thu Aug 18 12:40:17 2016 +0200
core: Add MediaSet
This will be used in next commits to store different types of Media.
This is part of a series of commits to add multi-source support.
src/Makefile.am | 2 +
src/core/media-set/media-set-error.vala | 5 ++++
src/core/media-set/media-set.vala | 35 +++++++++++++++++++++++++++++++
3 files changed, 42 insertions(+), 0 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 9e25052..774962a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -42,6 +42,8 @@ gnome_games_SOURCES = \
core/game-uri-adapter.vala \
core/icon.vala \
core/media.vala \
+ core/media-set/media-set.vala \
+ core/media-set/media-set-error.vala \
core/plugin.vala \
core/plugin-register.vala \
core/plugin-registrar.vala \
diff --git a/src/core/media-set/media-set-error.vala b/src/core/media-set/media-set-error.vala
new file mode 100644
index 0000000..2070443
--- /dev/null
+++ b/src/core/media-set/media-set-error.vala
@@ -0,0 +1,5 @@
+// This file is part of GNOME Games. License: GPLv3
+
+errordomain Games.MediaSetError {
+ NOT_A_MEDIA,
+}
diff --git a/src/core/media-set/media-set.vala b/src/core/media-set/media-set.vala
new file mode 100644
index 0000000..72a8f87
--- /dev/null
+++ b/src/core/media-set/media-set.vala
@@ -0,0 +1,35 @@
+// This file is part of GNOME Games. License: GPLv3
+
+public class Games.MediaSet : Object {
+ public delegate void MediaCallback (Media media);
+
+ public int selected_media_number { set; get; default = 0; }
+ public GLib.Icon? icon { private set; get; }
+
+ private Media[] medias;
+
+ public MediaSet (Media[] medias, GLib.Icon? icon = null) {
+ this.medias = medias;
+ this.icon = icon;
+ }
+
+ public int get_size () {
+ return medias.length;
+ }
+
+ public Media get_selected_media (uint index) throws Error {
+ return get_media (selected_media_number);
+ }
+
+ public void foreach_media (MediaCallback media_callback) {
+ foreach (var media in medias)
+ media_callback (media);
+ }
+
+ private Media get_media (uint index) throws Error {
+ if (index >= medias.length)
+ throw new MediaSetError.NOT_A_MEDIA (_("Invalid media index %u."), index);
+
+ return medias[index];
+ }
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]