/* ***** BEGIN LICENSE BLOCK *****
 * Source last modified: $Id: nsIHXPlayer.idl,v 1.1.16.4 2004/07/09 01:48:45 hubbe Exp $
 * 
 * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
 * 
 * The contents of this file, and the files included with this file,
 * are subject to the current version of the RealNetworks Public
 * Source License (the "RPSL") available at
 * http://www.helixcommunity.org/content/rpsl unless you have licensed
 * the file under the current version of the RealNetworks Community
 * Source License (the "RCSL") available at
 * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
 * will apply. You may also obtain the license terms directly from
 * RealNetworks.  You may not use this file except in compliance with
 * the RPSL or, if you have a valid RCSL with RealNetworks applicable
 * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
 * the rights, obligations and limitations governing use of the
 * contents of the file.
 * 
 * Alternatively, the contents of this file may be used under the
 * terms of the GNU General Public License Version 2 or later (the
 * "GPL") in which case the provisions of the GPL are applicable
 * instead of those above. If you wish to allow use of your version of
 * this file only under the terms of the GPL, and not to allow others
 * to use your version of this file under the terms of either the RPSL
 * or RCSL, indicate your decision by deleting the provisions above
 * and replace them with the notice and other provisions required by
 * the GPL. If you do not delete the provisions above, a recipient may
 * use your version of this file under the terms of any one of the
 * RPSL, the RCSL or the GPL.
 * 
 * This file is part of the Helix DNA Technology. RealNetworks is the
 * developer of the Original Code and owns the copyrights in the
 * portions it created.
 * 
 * This file, and the files included with this file, is distributed
 * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
 * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
 * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
 * ENJOYMENT OR NON-INFRINGEMENT.
 * 
 * Technology Compatibility Kit Test Suite(s) Location:
 *    http://www.helixcommunity.org/content/tck
 * 
 * Contributor(s):
 * 
 * ***** END LICENSE BLOCK ***** */

#include "nsISupports.idl"


[scriptable, uuid(fa21776e-8d69-4462-8c49-baf6c3e0ae20)]
interface nsIHXPlayer : nsISupports
{
    boolean	SetSource(in string Source);
    boolean	SetControlString(in string Controls);
    boolean	SetConsoleName(in string Console, in boolean a);
    boolean	SetConsole(in string Console);
    boolean	SetAutoStart(in boolean autoStart);
    boolean	SetNoLabels(in boolean noLabels);
    boolean	DoPlayPause();
    boolean	DoPause();
    boolean	DoPlay();
    boolean	DoStop();
    long	GetPosition();
    boolean	SetPosition(in long Position);

    /*public boolean SetPosition(in string strPosition)
    {
     return SetPosition(Integer.parseInt(strPosition));
    }*/

    long	GetLength();
    long	GetPlayState();
    long	GetStereoState();
    string	GetTitle();
    string	GetAuthor();
    string	GetCopyright();
    boolean	GetLiveState();
    boolean	IsZoomed();
    boolean	SetZoomed(in boolean isZoomed);
    boolean	DoNextItem();
    boolean	DoPrevItem();
    boolean	DoNextEntry();
    boolean	DoPrevEntry();
    boolean	CanPlayPause();
    boolean	CanStop();
    boolean	HasNextEntry();
    boolean	HasPrevEntry();
    boolean	HasNextItem();
    boolean	HasPrevItem();


    boolean	SetVolume(in long newVolume);
    /*public boolean SetVolume(in string strNewVolume)
    {
     return SetVolume(Integer.parseInt(strNewVolume));
    }*/

    boolean	SetMute(in boolean isMute);
    boolean	SetEnableContextMenu(in boolean isMenuOn);
    boolean	GetEnableContextMenu();
    boolean	EnableMessageBox(in boolean isMessageBoxOn);
    boolean	SetEnableMessageBox(in boolean isMessageBoxOn);
    boolean	GetEnableMessageBox();

    long	GetPacketsTotal();
    long	GetPacketsReceived();
    long	GetPacketsOutOfOrder();
    long	GetPacketsMissing();
    long	GetPacketsLate();
    long	GetBandwidthAverage();
    long	GetBandwidthCurrent();
    boolean	AboutBox();
    boolean	EditPreferences();
    boolean	SetShowPreferences(in boolean bShowPref);
    boolean	HideShowStatistics();
    boolean	IsStatisticsVisible();
    boolean	IsDone();
    boolean	StatusScanStart();
    boolean	StatusScanEnd();
    boolean	StatusScan(in string ShowString);
    boolean	SetAutoGoToURL(in boolean giveNetscapeURL);
    boolean	GetAutoGoToURL();
    boolean	ProcessIdle();
    boolean	SetControls(in string v);
    string	GetVersionInfo();
    boolean	GetPreFetch();
    boolean	SetPreFetch(in boolean bWantsPrefetch);
    boolean	SetShuffle(in boolean bShuffleOn);
    boolean	GetShuffle();
    string	GetSource();

    // new stuff
    boolean	CanPlay();
    boolean	CanPause();
    boolean	GetAutoStart();
    string	GetBackgroundColor();
    boolean	SetBackgroundColor(in string strNewColor);
    boolean	GetCenter();
    long	GetClipHeight();
    long	GetClipWidth();
    string	GetConsole();
    boolean	GetEnableDoubleSize();
    boolean	GetEnableFullScreen();
    boolean	GetEnableOriginalSize();
    string	GetControls();
    boolean	GetOriginalSize();

    boolean	GetFullScreen();
    boolean	GetDoubleSize();
		
    boolean	GetMaintainAspect();
    boolean	GetMute();
    boolean	GetNoLabels();
    long	GetNumLoop();

    boolean	GetShowAbout();
    boolean	GetShowPreferences();
    boolean	GetShowStatistics();

    long	GetVolume();
    boolean	SetCenter(in boolean bIsCentered);
    boolean	SetMaintainAspect(in boolean bMaintainAspect);
    boolean	SetEnableOriginalSize(in boolean bIsEnabled);
    boolean	SetEnableDoubleSize(in boolean bIsEnabled);
    boolean	SetEnableFullScreen(in boolean bIsEnabled);
    boolean	SetDoubleSize();
    boolean	SetFullScreen();
    boolean	SetOriginalSize();
    boolean	SetNoLogo(in boolean bNoLogo);
    boolean	GetNoLogo();
    boolean	SetNumLoop(in long nNumLoops);
    /*public boolean SetNumLoop(in string strNumLoops)
    {
     return SetNumLoop(Integer.parseInt(strNumLoops));
    }*/
    boolean	SetShowAbout(in boolean bShowAbout);
    boolean	SetShowStatistics(in boolean bShowStats);
		
		
    boolean	SetWantKeyboardEvents(in boolean bDoesWant);
    boolean	SetWantMouseEvents(in boolean bDoesWant);
    boolean	SetWantErrors(in boolean bDoesWant);
		
    boolean	GetWantKeyboardEvents();
    boolean	GetWantMouseEvents();
    boolean	GetWantErrors();

    long	GetNumEntries();
    long	GetCurrentEntry();
    string	GetEntryTitle(in long nindex);
    /*public string GetEntryTitle(in string strIndex)
    {
     return GetEntryTitle(Integer.parseInt(strIndex));
    }*/
    string	GetEntryAuthor(in long nindex);
    /*public string GetEntryAuthor(in string strIndex)
    {
     return GetEntryAuthor(Integer.parseInt(strIndex));
    }*/
    string	GetEntryCopyright(in long nindex);
    /*public string GetEntryCopyright(in string strIndex)
    {
     return GetEntryCopyright(Integer.parseInt(strIndex));
    }*/
    string	GetEntryAbstract(in long nindex);
    /*public string GetEntryAbstract(in string strIndex)
    {
     return GetEntryAbstract(Integer.parseInt(strIndex));
    }*/
    boolean	SetCanSeek(in boolean bDoesWantSeek);
    boolean	GetCanSeek();
    long	GetBufferingTimeElapsed();
    long	GetBufferingTimeRemaining();
    long	GetConnectionBandwidth();
    long	GetPreferedLanguageID();
    string	GetPreferedLanguageString();
    long	GetUserCountryID();
    long	GetNumSources();
    string	GetSourceTransport(in long nSourceNum);
    /*public string GetSourceTransport(in string strSourceNum)
    {
     return GetSourceTransport(Integer.parseInt(strSourceNum));
    }*/
    boolean	SetVideoState(in long nNewVideoState);
    /*public boolean SetVideoState(in string strNewVideoState)
    {
     return SetVideoState(Integer.parseInt(strNewVideoState));
    }*/
    long	GetVideoState();
    boolean	GetContextMenu();
    boolean	SetContextMenu(in boolean bEnabled);
    boolean	SetContextMenuItem(in long nItemID, in boolean bEnabled);
    /*public boolean SetContextMenuItem(in string strItemID, in boolean bEnabled)
    {
     return SetContextMenuItem(Integer.parseInt(strItemID), bEnabled);
    }*/
    boolean	GetContextMenuItem(in long nItemID);
    /*public boolean GetContextMenuItem(in string strItemID)
    {
     return GetContextMenuItem(Integer.parseInt(strItemID));
    }*/
    boolean	SetImageStatus(in boolean bEnabled);
    boolean	GetImageStatus();

    string	GetLastStatus();
    string	GetLastErrorMoreInfoURL();
    string	GetLastErrorUserString();
    long	GetLastErrorUserCode();
    long	GetLastErrorRMACode();
    string	GetLastErrorRMACodeString();
    long	GetLastErrorSeverity();
    long	GetLastLeftButtonDownTimeStamp();
    long	GetLastLeftButtonDownKeyFlags();
    long	GetLastLeftButtonDownXPos();
    long	GetLastLeftButtonDownYPos();
    long	GetLastRightButtonDownTimeStamp();
    long	GetLastRightButtonDownKeyFlags();
    long	GetLastRightButtonDownXPos();
    long	GetLastRightButtonDownYPos();
    long	GetLastLeftButtonUpTimeStamp();
    long	GetLastLeftButtonUpKeyFlags();
    long	GetLastLeftButtonUpXPos();
    long	GetLastLeftButtonUpYPos();
    long	GetLastRightButtonUpTimeStamp();
    long	GetLastRightButtonUpKeyFlags();
    long	GetLastRightButtonUpXPos();
    long	GetLastRightButtonUpYPos();
    long	GetLastLeftButtonDblTimeStamp();
    long	GetLastLeftButtonDblKeyFlags();
    long	GetLastLeftButtonDblXPos();
    long	GetLastLeftButtonDblYPos();
    long	GetLastRightButtonDblTimeStamp();
    long	GetLastRightButtonDblKeyFlags();
    long	GetLastRightButtonDblXPos();
    long	GetLastRightButtonDblYPos();
    long	GetLastMouseMoveTimeStamp();
    long	GetLastMouseMoveKeyFlags();
    long	GetLastMouseMoveXPos();
    long	GetLastMouseMoveYPos();
    long	GetLastKeyDownTimeStamp();
    long	GetLastKeyDownKey();
    long	GetLastKeyUpTimeStamp();
    long	GetLastKeyUpKey();
    long	GetLastKeyPressTimeStamp();
    long	GetLastKeyPressKey();
    boolean	SetAuthor(in string newAuthor);
    boolean	SetTitle(in string newTitle);
    boolean	SetCopyright(in string newCopyright);
		
    boolean	GetLoop();
    boolean	SetLoop(in boolean bSetLooping);
    boolean	GetIsPlus();
    boolean	GetConsoleEvents();
    boolean	SetConsoleEvents(in boolean bVal);

    string      GetDRMInfo(in string identifier);
};
