All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.fmj.media.MergingCaptureDevicePullDataSource Maven / Gradle / Ivy

There is a newer version: 1.0.2-jitsi
Show newest version
package net.sf.fmj.media;

import java.util.*;

import javax.media.*;
import javax.media.control.*;
import javax.media.protocol.*;

/**
 * Merges multiple {@link PullDataSource} that implement {@link CaptureDevice}.
 *
 * @author Ken Larson
 *
 */
public class MergingCaptureDevicePullDataSource extends MergingPullDataSource
        implements CaptureDevice
{
    public MergingCaptureDevicePullDataSource(List sources)
    {
        super(sources);
        for (DataSource source : sources)
        {
            if (!(source instanceof CaptureDevice))
                throw new IllegalArgumentException();
        }
    }

    public CaptureDeviceInfo getCaptureDeviceInfo()
    {
        throw new UnsupportedOperationException(); // TODO
    }

    public FormatControl[] getFormatControls()
    {
        final List formatControls = new ArrayList();
        for (DataSource source : sources)
        {
            for (FormatControl formatControl : ((CaptureDevice) source)
                    .getFormatControls())
                formatControls.add(formatControl);
        }
        return formatControls.toArray(new FormatControl[0]);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy