aboutsummaryrefslogblamecommitdiffstats
path: root/Game/Code/Classes/UMedia_dummy.pas
blob: bf3ad727483e772f1a46d381d8a16fd1c9bd3d2e (plain) (tree)






































                                                                                          


                      

















































                                                                              
                    












                                                      







                                                                            
     
                  


                             


     
                            
















                                          
              





























                                                                           

    

















                                                       


                  

                                   

               








































































                                                                                     

                                                           




                                                           
unit UMedia_dummy;
{< #############################################################################
#                    FFmpeg support for UltraStar deluxe                       #
#                                                                              #
#    Created by b1indy                                                         #
#    based on 'An ffmpeg and SDL Tutorial' (http://www.dranger.com/ffmpeg/)    #
#                                                                              #
# http://www.mail-archive.com/fpc-pascal@lists.freepascal.org/msg09949.html    #
# http://www.nabble.com/file/p11795857/mpegpas01.zip                           #
#                                                                              #
############################################################################## }

interface

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}


implementation

uses
     SysUtils,
     UMusic;


var
  singleton_dummy : IVideoPlayback;

type
    Tmedia_dummy = class( TInterfacedObject, IVideoPlayback, IAudioPlayback, IAudioInput )
    private
    public
      constructor create();
      function  GetName: String;

      procedure init();

      function  Open( aFileName : string): boolean; // true if succeed
      procedure Close;

      procedure Play;
      procedure Pause;
      procedure Stop;

      procedure MoveTo(Time: real);
      function  getPosition: real;

      procedure FFmpegGetFrame(Time: Extended);
      procedure FFmpegDrawGL(Screen: integer); 

      // IAudioInput
      procedure InitializeRecord;
      procedure CaptureStart;
      procedure CaptureStop;
      procedure CaptureCard(RecordI, PlayerLeft, PlayerRight: byte);
      procedure StopCard(Card: byte);
      function GetFFTData: TFFTData;

      // IAudioPlayback
      procedure InitializePlayback;
      procedure SetVolume(Volume: integer);
      procedure SetMusicVolume(Volume: integer);
      procedure SetLoop(Enabled: boolean);
      procedure Rewind;

      function Finished: boolean;
      function Length: real;

      procedure PlayStart;
      procedure PlayBack;
      procedure PlaySwoosh;
      procedure PlayChange;
      procedure PlayOption;
      procedure PlayClick;
      procedure PlayDrum;
      procedure PlayHihat;
      procedure PlayClap;
      procedure PlayShuffle;
      procedure StopShuffle;

      function LoadSoundFromFile(var hStream: hStream; Name: string): boolean;

      function LoadCustomSound(const Filename: String): Cardinal;
      procedure PlayCustomSound(const Index: Cardinal );

    end;



function  Tmedia_dummy.GetName: String;
begin
  result := 'dummy';
end;


procedure Tmedia_dummy.FFmpegGetFrame(Time: Extended);
begin
end;

procedure Tmedia_dummy.FFmpegDrawGL(Screen: integer);
begin
end;

constructor Tmedia_dummy.create();
begin
end;

procedure Tmedia_dummy.init();
begin
end;


function Tmedia_dummy.Open( aFileName : string): boolean; // true if succeed
begin
  result := false;
end;

procedure Tmedia_dummy.Close;
begin
end;

procedure Tmedia_dummy.Play;
begin
end;

procedure Tmedia_dummy.Pause;
begin
end;

procedure Tmedia_dummy.Stop;
begin
end;

procedure Tmedia_dummy.MoveTo(Time: real);
begin
end;

function  Tmedia_dummy.getPosition: real;
begin
  result := 0;
end;

// IAudioInput
procedure Tmedia_dummy.InitializeRecord;
begin
end;

procedure Tmedia_dummy.CaptureStart;
begin
end;

procedure Tmedia_dummy.CaptureStop;
begin
end;

procedure Tmedia_dummy.CaptureCard(RecordI, PlayerLeft, PlayerRight: byte);
begin
end;

procedure Tmedia_dummy.StopCard(Card: byte);
begin
end;

function  Tmedia_dummy.GetFFTData: TFFTData;
begin
end;

// IAudioPlayback
procedure Tmedia_dummy.InitializePlayback;
begin
end;

procedure Tmedia_dummy.SetVolume(Volume: integer);
begin
end;

procedure Tmedia_dummy.SetMusicVolume(Volume: integer);
begin
end;

procedure Tmedia_dummy.SetLoop(Enabled: boolean);
begin
end;

procedure Tmedia_dummy.Rewind;
begin
end;

function Tmedia_dummy.Finished: boolean;
begin
  result := false;
end;

function Tmedia_dummy.Length: real;
begin
  Result := 60;
end;

procedure Tmedia_dummy.PlayStart;
begin
end;

procedure Tmedia_dummy.PlayBack;
begin
end;

procedure Tmedia_dummy.PlaySwoosh;
begin
end;

procedure Tmedia_dummy.PlayChange;
begin
end;

procedure Tmedia_dummy.PlayOption;
begin
end;

procedure Tmedia_dummy.PlayClick;
begin
end;

procedure Tmedia_dummy.PlayDrum;
begin
end;

procedure Tmedia_dummy.PlayHihat;
begin
end;

procedure Tmedia_dummy.PlayClap;
begin
end;

procedure Tmedia_dummy.PlayShuffle;
begin
end;

procedure Tmedia_dummy.StopShuffle;
begin
end;

function Tmedia_dummy.LoadSoundFromFile(var hStream: hStream; Name: string): boolean;
begin
  result := false;
end;

function Tmedia_dummy.LoadCustomSound(const Filename: String): Cardinal;
begin
 result := 0;
end;

procedure Tmedia_dummy.PlayCustomSound(const Index: Cardinal );
begin
end;



initialization
  singleton_dummy := Tmedia_dummy.create();

  writeln( 'UMedia_dummy - Register dummy Video_Playback' );
  AudioManager.add( IVideoPlayback( singleton_dummy ) );

  writeln( 'UMedia_dummy - Register dummy Video_Playback' );
  AudioManager.add( IAudioPlayback( singleton_dummy ) );

  writeln( 'UMedia_dummy - Register dummy Video_Playback' );
  AudioManager.add( IAudioInput( singleton_dummy ) );
  
finalization
  AudioManager.Remove( IVideoPlayback( singleton_dummy ) );
  AudioManager.Remove( IAudioPlayback( singleton_dummy ) );
  AudioManager.Remove( IAudioInput( singleton_dummy ) );


end.