Difference between revisions of "IPlayer.cs"
Jump to navigation
Jump to search
m (IPlayer moved to IPlayer.cs) |
|||
Line 31: | Line 31: | ||
{ | { | ||
[ComVisible(true)] | [ComVisible(true)] | ||
+ | [Guid("B5A4F6A1-B8C8-4f4f-B9CD-396DCDCAC4C3")] | ||
public struct TrackPosition : IComparable<TrackPosition> | public struct TrackPosition : IComparable<TrackPosition> | ||
{ | { | ||
Line 67: | Line 68: | ||
[ComVisible(true)] | [ComVisible(true)] | ||
+ | public enum MetaData | ||
+ | { | ||
+ | NowPlaying = 0, | ||
+ | } | ||
+ | |||
+ | public class MetaDataUpdateEventArgs : EventArgs | ||
+ | { | ||
+ | MetaData data; | ||
+ | String text; | ||
+ | |||
+ | public MetaDataUpdateEventArgs(MetaData data, String text) | ||
+ | { | ||
+ | this.data = data; | ||
+ | this.text = text; | ||
+ | } | ||
+ | |||
+ | public MetaData Data { get { return this.data; } } | ||
+ | public String Text { get { return this.text; } } | ||
+ | } | ||
+ | |||
+ | public delegate void MetaDataEventHandler(object sender, MetaDataUpdateEventArgs args); | ||
+ | |||
+ | [ComVisible(true)] | ||
+ | [Guid("2EA6BBFA-8BDE-4023-AEE8-916694614B25")] | ||
+ | [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)] | ||
public interface IPlayer : IDisposable | public interface IPlayer : IDisposable | ||
{ | { | ||
Line 117: | Line 143: | ||
[ComVisible(true)] | [ComVisible(true)] | ||
+ | [Guid("5CCB86E4-FFD0-49a0-8805-EE16A79CED50")] | ||
+ | [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)] | ||
public interface IPlayer2 : IPlayer | public interface IPlayer2 : IPlayer | ||
{ | { | ||
Line 135: | Line 163: | ||
int Program { get; set; } | int Program { get; set; } | ||
+ | bool AllowVideoAdjustments { get; set; } // needs to be on to allow Contrast, Brightness, etc. to be adjusted | ||
+ | float Contrast { get; set; } // range from 0 to 2, default 1 | ||
+ | float Brightness { get; set; } // range from 0 to 2, default 1 | ||
+ | int Hue { get; set; } // range from 0 to 360, default 0 | ||
+ | float Saturation { get; set; } // range from 0 to 3, default 1 | ||
+ | float Gamma { get; set; } // range from .01 to 10, default 1 | ||
+ | |||
+ | void AddAndPlay(String fileName, String options); | ||
+ | |||
+ | String DeinterlaceModesAsString(); | ||
void DeinterlaceModes(out String[] choices, out String[] choiceText); | void DeinterlaceModes(out String[] choices, out String[] choiceText); | ||
+ | String AspectRatiosAsString(); | ||
void AspectRatios(out String[] choices, out String[] choiceText); | void AspectRatios(out String[] choices, out String[] choiceText); | ||
+ | String CropModesAsString(); | ||
void CropModes(out String[] choices, out String[] choiceText); | void CropModes(out String[] choices, out String[] choiceText); | ||
+ | String AudioTracksAsString(); | ||
void AudioTracks(out int[] trackIds, out String[] trackNames); | void AudioTracks(out int[] trackIds, out String[] trackNames); | ||
+ | String SubTitleTracksAsString(); | ||
void SubTitleTracks(out int[] trackIds, out String[] trackNames); | void SubTitleTracks(out int[] trackIds, out String[] trackNames); | ||
+ | String ProgramsAsString(); | ||
void Programs(out int[] trackIds, out String[] trackNames); | void Programs(out int[] trackIds, out String[] trackNames); | ||
void DisplayMessage(String message); | void DisplayMessage(String message); | ||
+ | String GetConfigVariable(String name, String returnOnError); | ||
bool SetConfigVariable(String name, String value); | bool SetConfigVariable(String name, String value); | ||
void PrecomputeCrop(Size videoSize, int cropLeft, int cropRight, int cropTop, int cropBottom); | void PrecomputeCrop(Size videoSize, int cropLeft, int cropRight, int cropTop, int cropBottom); | ||
bool ComputeCrop(); | bool ComputeCrop(); | ||
+ | |||
+ | event MetaDataEventHandler NowPlaying; | ||
} | } | ||
} | } | ||
</pre> | </pre> |
Revision as of 01:02, 12 January 2007
/***************************************************************************** * IPlayer.cs: IPlayer, IPlayer2 interface definitions ***************************************************************************** * Copyright (C) 2006 Chris Meadowcroft * * Authors: Chris Meadowcroft * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ using System; using System.Drawing; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms; namespace VLanControl { [ComVisible(true)] [Guid("B5A4F6A1-B8C8-4f4f-B9CD-396DCDCAC4C3")] public struct TrackPosition : IComparable<TrackPosition> { public int time; public double position; public TrackPosition(int time, double position) { this.time = time; this.position = position; } public TrackPosition(TrackPosition other) { this.time = other.time; this.position = other.position; } #region IComparable<TrackPosition> Members public int CompareTo(TrackPosition other) { return this.time.CompareTo(other.time); } #endregion } [ComVisible(true)] public enum PlayerState { None = 0, Playing = 1, Paused = 2, } [ComVisible(true)] public enum MetaData { NowPlaying = 0, } public class MetaDataUpdateEventArgs : EventArgs { MetaData data; String text; public MetaDataUpdateEventArgs(MetaData data, String text) { this.data = data; this.text = text; } public MetaData Data { get { return this.data; } } public String Text { get { return this.text; } } } public delegate void MetaDataEventHandler(object sender, MetaDataUpdateEventArgs args); [ComVisible(true)] [Guid("2EA6BBFA-8BDE-4023-AEE8-916694614B25")] [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)] public interface IPlayer : IDisposable { bool Visible { get; set; } Control Parent { get; set; } Rectangle Bounds { get; set; } Point Location { get; set; } Size Size { get; set; } Size VideoSize { get; } int Time { get; } double Position { get; } void MoveToPosition(TrackPosition newTrackPosition); int Volume { get; set; } int Rate { get; set; } void GetRates(out int minRate, out int maxRate, out int normalRate); bool IsPlaying { get; } bool IsPaused { get; } bool IsMute { get; } int Length { get; set; } PlayerState State { get; } double TimeScaling { get; set; } void Play(); void ToggleMute(); void TogglePause(); void RotateSubtitles(); void RotateAudioTrack(); void RotateDeinterlaceMode(); void RotateAspectRatio(); void RotateCropModes(); bool UseMpegVbrOffset { get; set; } void CropTop(); void UnCropTop(); void CropBottom(); void UnCropBottom(); void CropLeft(); void UnCropLeft(); void CropRight(); void UnCropRight(); void NextDvdTrack(); void PreviousDvdTrack(); void NextDvdChapter(); void PreviousDvdChapter(); TrackPosition Shuttle(int offsetSeconds); void ClearPlayList(); int AddToPlayList(String fileName, String title, String[] options); void PlayItem(int index); void Stop(); } [ComVisible(true)] [Guid("5CCB86E4-FFD0-49a0-8805-EE16A79CED50")] [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)] public interface IPlayer2 : IPlayer { String DeinterlaceMode { get; set; } String AspectRatio { get; set; } String CropMode { get; set; } int CroppingLeft { get; set; } int CroppingRight { get; set; } int CroppingTop { get; set; } int CroppingBottom { get; set; } int AudioTrack { get; set; } int SubTitleTrack { get; set; } // in ms int AudioDelay { get; set; } int SubTitleDelay { get; set; } int ChapterCount { get; } int Chapter { get; set; } int Program { get; set; } bool AllowVideoAdjustments { get; set; } // needs to be on to allow Contrast, Brightness, etc. to be adjusted float Contrast { get; set; } // range from 0 to 2, default 1 float Brightness { get; set; } // range from 0 to 2, default 1 int Hue { get; set; } // range from 0 to 360, default 0 float Saturation { get; set; } // range from 0 to 3, default 1 float Gamma { get; set; } // range from .01 to 10, default 1 void AddAndPlay(String fileName, String options); String DeinterlaceModesAsString(); void DeinterlaceModes(out String[] choices, out String[] choiceText); String AspectRatiosAsString(); void AspectRatios(out String[] choices, out String[] choiceText); String CropModesAsString(); void CropModes(out String[] choices, out String[] choiceText); String AudioTracksAsString(); void AudioTracks(out int[] trackIds, out String[] trackNames); String SubTitleTracksAsString(); void SubTitleTracks(out int[] trackIds, out String[] trackNames); String ProgramsAsString(); void Programs(out int[] trackIds, out String[] trackNames); void DisplayMessage(String message); String GetConfigVariable(String name, String returnOnError); bool SetConfigVariable(String name, String value); void PrecomputeCrop(Size videoSize, int cropLeft, int cropRight, int cropTop, int cropBottom); bool ComputeCrop(); event MetaDataEventHandler NowPlaying; } }