IPlayer.cs: Difference between revisions
Jump to navigation
Jump to search
m IPlayer moved to IPlayer.cs |
No edit summary |
||
| 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;
}
}