/* * Copyright (c) 2010 Raimo Järvi * * This file is part of gstreamer-java. * * This code is free software: you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License version 3 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * version 3 for more details. * * You should have received a copy of the GNU Lesser General Public License * version 3 along with this work. If not, see <http://www.gnu.org/licenses/>. */ package org.gstreamer; import org.gstreamer.lowlevel.GValueAPI; import org.gstreamer.lowlevel.GstValueAPI; public class ValueList { public static final String GTYPE_NAME = "GstValueList"; private GValueAPI.GValue value; ValueList(GValueAPI.GValue value) { this.value = value; } public int getSize() { return GstValueAPI.GSTVALUE_API.gst_value_list_get_size(value); } public double getDouble(int index) { return GValueAPI.GVALUE_API.g_value_get_double(getValue(index)); } public float getFloat(int index) { return GValueAPI.GVALUE_API.g_value_get_float(getValue(index)); } public int getInteger(int index) { return GValueAPI.GVALUE_API.g_value_get_int(getValue(index)); } public String getString(int index) { return GValueAPI.GVALUE_API.g_value_get_string(getValue(index)); } public boolean getBoolean(int index) { return GValueAPI.GVALUE_API.g_value_get_boolean(getValue(index)); } public Fraction getFraction(int index) { GValueAPI.GValue v = getValue(index); return Fraction.objectFor(v); } private GValueAPI.GValue getValue(int index) { GValueAPI.GValue val = GstValueAPI.GSTVALUE_API.gst_value_list_get_value(value, index); if (val == null) { throw new RuntimeException(String.format("List does not contain value %d", index)); } return val; } }