Page 1 of 1

linux gcc compiler error help me.

PostPosted: Sun Feb 03, 2008 3:42 am
by yunbg1
Hi Antonio.

This code is test.
The compiler the error petty to catch
Can you make a build.sh file ?

lib, include file send to email.

Can you library additional method and Build.sh which it will make the possibility of decreasing it is?

Thank you.

Code: Select all  Expand view
#include "FiveLinux.ch"

FUNC Main()

loca oWnd, oBrw

DEFINE WINDOW oWnd TITLE "Testing Browses" SIZE 522, 317

   @ 28,  2 BUTTON "_Ok" OF oWnd ACTION msginfo(TTIME())
   @ 28, 10 BUTTON "_Exit" OF oWnd ACTION oWnd:End()
   @ 28, 28 BUTTON "_Test" OF oWnd ACTION OPEN_PORT1(oWnd:hWnd, "testtetetete")
   @ 28, 46 BUTTON "_Port" OF oWnd ACTION TEST()
ACTIVATE WINDOW oWnd

RETU NIL

/*----------------------------------------*/
#pragma BEGINDUMP

#include <hbapi.h>
//#include <hbdefs.h>
#include <gtk/gtk.h>

#define _LARGEFILE64_SOURCE 1

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <signal.h>
#include <termios.h>

#define _DEFINE_FMP_TYPES_
#include <fmp.h>

#define PLAYING 1
#define PAUSED 0

#define FMPE_OK                           0x00000000    /* No error */
#define FMPF_DVD         6 /* DVD demux */
#define NO_DRIVE         0xFF   /* No DVD-ROM drive */

int peek = -1;
struct termios orig, new;

HB_FUNC( TTIME )
{

     struct tm *tm_ptr;
     int i;
     char sm[50];
     
     time_t the_time;

     (void) time(&the_time);
      tm_ptr = gmtime(&the_time);
      sprintf(sm, "%02d:%02d:%02d", tm_ptr->tm_hour, tm_ptr->tm_min, tm_ptr->tm_sec);

   hb_retc(sm);
}

HB_FUNC( TEST )
{
   
   int fd;
   int streamtype;
   int bytesread=1,rc=FMPE_OK;
   int buf, playfile_state;
   int b_stopit = 0, b_getoutofit = 0;

   streamtype=FMPF_DVD; 

   MPEGDriverEntry(NO_DRIVE);
   FMPOpen(streamtype,32*1024,10, NULL, 0);
   FMPPlay();

   hb_retc("OK");
}

HB_FUNC( OPEN_PORT1 )
   
{
   GtkWidget * hWnd, * hWndParent = NULL;
   
   hWnd = hb_parnl(1);

   CheckGtkInit();

   if( gtk_window_list_toplevels() )
      hWndParent = gtk_window_list_toplevels()->data;

   hWnd = gtk_message_dialog_new( GTK_WINDOW( hWndParent ),
                                                     GTK_DIALOG_MODAL,
                                                     GTK_MESSAGE_INFO, GTK_BUTTONS_OK, hb_parc(2) );

   gtk_window_set_transient_for( GTK_WINDOW( hWnd ), GTK_WINDOW( hWndParent ) );

   gtk_window_set_policy( GTK_WINDOW( hWnd ), FALSE, FALSE, FALSE );
   gtk_window_set_position( GTK_WINDOW( hWnd ), GTK_WIN_POS_CENTER );

   gtk_dialog_run( GTK_DIALOG( hWnd ) );
   gtk_widget_destroy( hWnd );

}

#pragma ENDDUMP



this code is RMPLAYFILE ->Makefile

Code: Select all  Expand view

CFLAGS+=-D_BARBADOS_=1 -Wall -D_REENTRANT

INCLUDEDIR+=-I../include
LIBDIR+=-L../lib

ifeq ($(COMPILKIND),release)
CDEBUG=-O2
LDEBUG=-O2
else
CDEBUG=-g
LDEBUG=-g
endif

CFLAGS+=$(CDEBUG) $(INCLUDEDIR)
LDFLAGS+=$(LDEBUG) $(LIBDIR) -lpthread

progs = playfile.o

playfile: $(progs) ../lib/libEM84xx.so
   $(CC) $(LDFLAGS) -lEM84xx $(progs) -o $@
ifeq ($(COMPILKIND),release)
   strip $@
endif

clean:
   $(RM) $(progs) *~ playfile



this code is RMPLAYFILE ->playfile.c code

Code: Select all  Expand view

#define _LARGEFILE64_SOURCE 1

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <signal.h>
#include <termios.h>

#define _DEFINE_FMP_TYPES_
#include "fmp.h"

#define PLAYING 1
#define PAUSED 0

int peek = -1;
struct termios orig, new;

void open_port()
{
    if (tcgetattr(0,&orig)==-1)
    {
        printf("Could not tcgetattr");
        exit(1);
    }

    new = orig;
   
    /* settings for raw mode */
    new.c_lflag     &= ~ICANON;
    new.c_lflag     &= ~ECHO;
    new.c_lflag     &= ~ISIG;
    new.c_cc[VMIN]  =  1;
    new.c_cc[VTIME] =  0;
   
    if (tcsetattr(0,TCSANOW,&new)==-1)
    {
        printf("Could not tcsetattr");
        exit(1);
    }   
}

void close_port()
{
    tcsetattr(0, TCSANOW, &orig);
}
int kbhit()
{
    char ch;
    int  nread;

    if(peek != -1) return 1;

    new.c_cc[VMIN] = 0;
    tcsetattr(0, TCSANOW, &new);
    nread = read(0, &ch, 1);
    new.c_cc[VMIN] = 1;
    tcsetattr(0, TCSANOW, &new);

    if(nread == 1)
    {
        peek = ch;
        return 1;
    }

    return 0;
}

int readch()
{
    char ch;

    if(peek != -1)
    {
        ch   = peek;
        peek = -1;
        return ch;
    }

    read(0, &ch, 1);
    return ch;
}

DWORD setOutputMode(DWORD newvgatv)
{
  DWORD vgatv;
  vgatv = FMPGet(FMPI_VIDEOOUT);
  vgatv = vgatv  & (~FMPV_VIDEOOUT_MODE_MASK);
  vgatv = vgatv | newvgatv;
  return FMPSet(FMPI_VIDEOOUT, vgatv);
}

int main(int argc,char **argv)
{
   int fd;
   int streamtype;
   int bytesread=1,rc=FMPE_OK;
   int buf, playfile_state;
   int b_stopit = 0, b_getoutofit = 0;
   
   

   if (argc!=3) {
      fprintf(stderr,
         "Syntax is playfile <streamtype> <filename>\n"
         "<streamtype -> t (transport) d (dvd)   s (system)\n"
         "               p (program)   v (video) m (mpeg audio) a (mpeg2 ac3)>\n"
         "Example: ./playfile s /samplempeg/movie.mpg\n"
         "During the file playing use your keyboard:\n"
         " 'r' to rewind from the beginning,\n"
         " 'q' to stop, close and exit propely.\n"
         );
      exit(1);
   }

   switch (argv[1][0]) {
   case 't':
      streamtype=FMPF_TRANSPORT;
      break;
   case 'd':
      streamtype=FMPF_DVD;
      break;
   case 's':
      streamtype=FMPF_SYSTEM;
      break;
   case 'p':
           streamtype=FMPF_PROGRAM;
      break;
   case 'v':
           streamtype=FMPF_VIDEO;
      break;
   case 'm':
           streamtype=FMPF_MPEG_AUDIO;
      break;
   case 'a':
          streamtype=FMPF_AC3;
          break;

   default:
          fprintf(stderr,
             "Syntax is playfile <streamtype> <filename>\n"
             "<streamtype -> t (transport) d (dvd)   s (system)\n"
             "               p (program)   v (video) m (mpeg audio) a (mpeg2 ac3)>\n"
             "Example: ./playfile s /samplempeg/movie.mpg\n"
             "During the file playing use your keyboard:\n"
             " 'r' to rewind from the beginning,\n"
             " 'q' to stop, close and exit propely.\n"
             );
          exit(1);
   }

   MPEGDriverEntry(NO_DRIVE);
   FMPOpen(streamtype,32*1024,10, NULL, 0);
   FMPPlay();

        fd=open(argv[2],O_RDONLY|O_LARGEFILE);
   if (fd==-1) {
      perror("open failed");
      exit(1);
   }

   open_port();
   
   playfile_state = PLAYING;
   
   while (rc==FMPE_OK && !b_getoutofit) {
      while (bytesread && !b_stopit) {
         FMP_BUFFER FMPBuf;
         static int count=0;
         if(kbhit())
           {
             buf = readch();
             switch(buf)
               {
               case 'r':
            b_stopit = 1;
            fprintf(stdout,">> Rewind ...\n");
            break;
               case 'q':
            b_stopit = 1;
            b_getoutofit = 1;
            break;
               default:
            break;
               }
           }
         // get a pointer to a free buffer
         rc = FMPGetBuffer (&FMPBuf, TRUE);
         if (rc != FMPE_OK) {
            printf ("FMPError : %s\n", FMPGetLastError(rc));
            break;
         }   
         
         // signals can cause harmless EINTR
         while (((bytesread=read(fd,FMPBuf.pBuffer,FMPBuf.dwBufferSize))==-1)
                &&(errno==EINTR));
         if (bytesread==-1) bytesread=0;
         
         FMPBuf.dwDataSize=bytesread;
         
         // the buffer is ready to be queued
         FMPPush (&FMPBuf);
         
         count++;
#define ONEEVERY 20         
         if (count%ONEEVERY==0) printf("PTS %ld / STC %ld\n",
                        FMPGet (FMPI_PTS),
                        FMPGet (FMPI_STC));   
        }
      FMPStop();
      FMPPlay();
      if(!b_getoutofit)
        b_stopit = 0;
      lseek (fd,0,SEEK_SET);
      bytesread=1;
   }
   fprintf(stdout,">>Exited from playing loop !\n");
   close_port();
   close (fd);
   FMPStop();
   setOutputMode(FMPV_VIDEOOUT_VGA);
   FMPClose();
   MPEGDriverUnload();
   fprintf(stdout,">>Driver is closed !\n");
   exit(0);
}


FiveLinux User.

PostPosted: Sun Feb 03, 2008 2:57 pm
by Antonio Linares
We are reviewing it,

we provide you an answer asap,

PostPosted: Mon Feb 04, 2008 10:01 am
by Antonio Linares
We need fmp.h, thanks

PostPosted: Tue Feb 05, 2008 12:04 am
by yunbg1
Antonio Linares wrote:We need fmp.h, thanks

Code: Select all  Expand view
#ifndef __FMP_h__
#define __FMP_h__

#ifdef __cplusplus
extern "C"{
#endif

/*+-------------------------------------------------------------------------
*
*   Sigma Designs
*   Copyright 1998 Sigma Designs, Inc.
*
*--------------------------------------------------------------------------*/

#define _MAX_STRING_   256

#ifdef _DEFINE_FMP_TYPES_
typedef unsigned long   DWORD;
typedef long       LONG;
typedef unsigned short   WORD;
typedef unsigned char   BYTE;
typedef int      BOOL;

#ifndef TRUE
#define TRUE 1
#endif // TRUE

#ifndef FALSE
#define FALSE 0
#endif // FALSE

#ifdef _UNICODE_
typedef unsigned short         TCHAR;
#else
typedef char         TCHAR;
#endif // _UNICODE_

#ifdef _BARBADOS_
typedef unsigned long long ULONGLONG;
#endif

#endif // _DEFINE_FMP_TYPES_

// Callback definition
typedef DWORD (*PFMPCALLBACK) (DWORD dwContext, DWORD dwMsg, DWORD dwValue);

typedef struct tagFMP_BUFFER{
   BYTE  *pBuffer;         // Address of the buffer      
   DWORD  dwBufferSize;    // Size of the buffer
   DWORD  dwDataSize;      // Size of valid data in the buffer
   DWORD  dwFlags;         // Flags
   DWORD  dwFlagsEx;      // Extended flags
   DWORD  pReserved[8];    // Reserved
} FMP_BUFFER, *PFMP_BUFFER;

//@struct FMP_OPENSTRUCT | Parameter sent to the Graph Manager upon opening
typedef struct tagFMP_OPENSTRUCT{
   DWORD         dwStructSize;   // @field Size of the structure
   DWORD         dwFlags;      // @field Open Flag
                           // @flag FMPF_TRANSPORT | Transport stream demux
                           // @flag  FMPF_SYSTEM   | System stream demux
                           // @flag FMPF_PROGRAM     | Program stream demux
                           // @flag FMPF_VIDEO       | Video stream (MPEG1/MPEG2)
                           // @flag FMPF_MPEG_AUDIO  | MPEG Audio stream
                           // @flag FMPF_AC3         | AC3 Audio stream
                           // @flag FMPF_DVD         | DVD demux
                           // @flag FMPF_SVCD        | VCD/SVCD demux
                           // @flag FMPF_DISCPLAYBACK  0xFFFFFFFF |

   DWORD         dwSize;         // @field Size of buffers
   DWORD         dwCount;      // @field Number of buffers
   PFMPCALLBACK   pCallback;      // @field FMP Callback
   DWORD         dwContext;      // @field Callback context
   BYTE         bDriverNumber;   // @field Driver Number
   TCHAR*         sFileName;      // @field File Name
   BYTE         bFileSystem;   // @field disk data access method
                           // @flag SYS_ACCESS | using the OS function
                           // @flag UDF_ACCESS | using UDF
                           // @flag ISO_ACCESS | using ISO9660
   BYTE         bDiscContent;   // @field Disc Content (returned by the driver)
                           // @flag FMPC_DVD_VIDEO   | DVD Video Disc
                           // @flag FMPC_VCD      | Video CD Disc
                           // @flag FMPC_SVCD      | Super Video CD Disc

} FMP_OPENSTRUCT, *PFMP_OPENSTRUCT;

// FMP Message Structure
typedef struct tagFMPmsg{
   DWORD   dwCommand;
   DWORD   dwArg1;
   DWORD   dwArg2;
   DWORD   dwArg3;
   DWORD   dwArg4;
   DWORD   dwArg5;
   BYTE   pBuffer[sizeof (FMP_OPENSTRUCT) + _MAX_STRING_];
} FMP_MSG, *PFMP_MSG;

// Open flags
#define FMPF_TRANSPORT      0 /* Transport stream demux. */
#define FMPF_SYSTEM         1 /* System stream demux */
#define FMPF_PROGRAM      2 /* Program stream demux */
#define FMPF_VIDEO         3 /* Video stream (MPEG1/MPEG2) */
#define FMPF_MPEG_AUDIO      4 /* MPEG Audio stream */
#define FMPF_AC3         5 /* AC3 Audio stream */
#define FMPF_DVD         6 /* DVD demux */
#define FMPF_SVCD         7 /* SVCD/VCD demux */
#define FMPF_CDDA         8 /* CDDA demux */
#define FMPF_DRIVEPOLLING   9 /* minimum graphmanager for Drive polling only */
#define FMPF_PES         10 /* pes stream support */
#define FMPF_AAC_CELP      11 /* AAC CELP stream support */
#define FMPF_PES_MPEG4      12 /* MPEG4 PES stream support */

#define FMPF_DISCPLAYBACK 0xFFFFFFFF

// Disc Content flags
#define FMPC_DVD_VIDEO      0 /* DVD Video Disc */
#define FMPC_VCD      1 /* Video CD Disc */
#define FMPC_SVCD      2 /* Super Video CD Disc */
#define FMPC_CDDA      4 /* CD audio */
#define FMPC_UNSUPPORTED   0xFE    /* namely, CDI and HQVCD */
#define FMPC_UNKNOWN      0xFF    /* for error management purpose */

// Tray management constant
#define FMPT_TRAYCHECK   10
#define FMPT_TRAYCHANGE   11
#define FMPT_TRAYCLOSE   1
#define FMPT_TRAYOPEN   0


// Used to specify the method to acces the files
#define SYS_ACCESS 0x00   
#define UDF_ACCESS 0x01
#define ISO_ACCESS 0x02
#define DONTCARE_ACCESS 0xFF

// Buffer flags
enum tagFMP_PROPERTY_FLAGS
    {   
   FMP_DATADISCONTINUITY   = 0x1,      /* Data discontinuity : data loss */
   FMP_TIMEDISCONTINUITY   = 0x2,      /* PTS discontinuity */
   FMP_TRICKMODE_START     = 0x4,      /* Trick Mode Starts */
   FMP_TYPECHANGED         = 0x8,      /* Type of data has changed */
   FMP_TIMEVALID           = 0x10,      /* PTS is valid */
   FMP_ENDOFSTREAM         = 0x20,      /* End of stream */
   FMP_TRICKMODE_END       = 0x40,      /* Trick Mode Ends */
   FMP_TRICKMODE_SAMPLE   = 0x80,      /* A Trick Mode Sample */
   FMP_SVCD_TM_2X         = 0x100,   /* SVCD trick mode speed 2x */
   FMP_SVCD_TM_3X         = 0x200,   /* SVCD trick mode speed 3x */
   FMP_SVCD_TM_4X         = 0x400,   /* SVCD trick mode speed 4x */
//   FMP_SVCD_FF            = 0x800,
   FMP_SVCD_FR            = 0x1000,
   FMP_SVCD_AUTOPAUSE      = 0x2000,
   FMP_SVCD_SEQ_HDR      = 0x4000,
   FMP_SVCD_UPDATE_PTS_REF   = 0x8000,

   FMP_TRICKMODE_DVD      = 0x10000,
   FMP_SEEKINGOP_DVD      = 0x20000,
   FMP_SVCD_CDDA_TRACK   = 0x40000 /* CDDA track on the VCD disk */

   };

// flags for the dwFlagsEx field in the FMP_BUFFER structure
enum tagFMP_PROPERTY_FLAGS_EX
{   
   FMP_VIDEO_PES      = 0x1,
   FMP_AUDIO_PES      = 0x2,
   FMP_DVD_AUDIO_PES   = 0x4
};

#define   FMP_SVCD_FLAGS      (0x0000FF80)
#define FMP_DVD_FLAGS      (0x00010000)

// DriverNumber :
#define PRIMARY_MASTER      0x00   /* Drive is primary master */
#define SECONDARY_MASTER   0x02   /* Drive is secondary master */
#define NO_DRIVE         0xFF   /* No DVD-ROM drive */

DWORD MPEGPowerOn (BYTE bDriverNumber);
DWORD MPEGPowerOff (void);

// Init MPEG driver
DWORD MPEGDriverEntry (BYTE bDriverNumber);

// Prepare to Unload the driver
DWORD MPEGDriverUnload (void);

// Open the MPEG driver (Push Mode)
DWORD FMPOpen (DWORD dwflags, DWORD dwSize, DWORD dwCount, PFMPCALLBACK pCallback, DWORD dwContext);

// Open the MPEG driver (Disc Playback)
DWORD FMPOpenDiscPlayback (PFMP_OPENSTRUCT pFMPOpenStruct);

// Close the MPEG driver
DWORD FMPClose (void);

// Give version and copyright information
DWORD FMPAbout( TCHAR* sVersion, TCHAR* sDate, TCHAR *sCopyright );

// Close a MPEG file and get ready to play another one
DWORD FMPCloseFile(void);

// Stop playing a MPEG file and get ready to restart playing it at its beginning
DWORD FMPStopFile(void);

// Really play a MPEG file
DWORD FMPPlayFile(char *);

// Start MPEG playback
DWORD FMPPlay (void);

// Stop MPEG playback
DWORD FMPStop (void);

// Pause MPEG playback
DWORD FMPPause (void);

// Flush internal FIFOs of the driver
DWORD FMPFlush (BOOL bGDF);

// Get a buffer from the memory manager
DWORD FMPGetBuffer (PFMP_BUFFER pBuffer, BOOL bBlockingCall);

// Push buffer into driver
DWORD FMPPush (PFMP_BUFFER pBuffer);

// Get & Set
DWORD FMPGet (DWORD dwIndex);
DWORD FMPSet (DWORD dwIndex, DWORD dwValue);

// set,get properties for Hwlib using rm84cmn.h
#include "rm84cmn.h"
DWORD FMPProperty(DWORD dwFlags, DWORD dwPropSet, DWORD dwPropId, DWORD dwPropFlags, void* pPropData, DWORD dwPropSizeIn, DWORD* pdwPropSizeOut);

// change the video port output dimensions
DWORD FMPSetVideoPortDimensions (DWORD Width, DWORD Height);

// Queries for a specific interface
// this interface is valid between FMPOpen and FMPClose
DWORD FMPQueryInterface (DWORD InterfaceId, void **ppv);
#include "ifmp.h"

// Picture Placement
DWORD FMPSetSource (DWORD dwX, DWORD dwY, DWORD dwcX, DWORD dwcY);
DWORD FMPSetVisibleSource (DWORD dwX, DWORD dwY, DWORD dwcX, DWORD dwcY);
DWORD FMPSetDestination (DWORD dwX, DWORD dwY, DWORD dwcX, DWORD dwcY);
DWORD FMPEnableOverlay (DWORD dwEnable);
DWORD FMPEnableFullScreen (DWORD dwEnable);

// Bitmap operation
DWORD FMPEnableOSD (DWORD dwEnable);
DWORD FMPShowBitmap (DWORD dwBitMap, DWORD dwAlphaBlendingFactor, DWORD dwX, DWORD dwY, DWORD dwcX, DWORD dwcY);

// Disc operations
DWORD FMPEjectDisc (void);
DWORD FMPLoadDisc (void);
DWORD FMPIsDiscLoaded(void);
DWORD FMPTrayOperation( DWORD dwFMPTAction);

// Get Last Error
const char* FMPGetLastError (DWORD dwError);

/*******************************************************************************
* DVD Functions
*******************************************************************************/

//Play a Title by Title number
DWORD TitlePlay (DWORD dwTitleNumber);

//Play from the beginning of a chapter specified by the Title number and the chapter number
DWORD ChapterPlay(BYTE bTitleNumber, WORD wChapterNumber);

//Play from the specified position of the Title by the Title number and Time
DWORD TimePlay(BYTE bTitleNumber, TCHAR* sTime);

//This command stops the current presentation and starts presentation from the specified position
//of the title by Time within the same title.
DWORD TimeSearch(TCHAR* sTime);

//Stop the current presentation and start the presentation from the beginning of PTT (Part_of_Title)
//specified by PTT numbers within the same Title.
DWORD ChapterSearch(WORD wChapterNumber);

//Stop the execution of the current Program Chain and play the GoUp Program Chain
//(specified in the current Program Chain)
DWORD GoUp(void);

//Stop the current presentation and start the presentation from the beginning
//of previous Program within the same Program Chain (PGC).
DWORD PrevPGSearch(void);

//Stop the current presentation and start the presentation from the beginning
//of the current Program within the same PGC.
DWORD TopPGSearch (void);

//Stop the current presentation and start the presentation from the beginning
//of the next Program within the same PGC.
DWORD NextPGSearch (void);

//The operation to scan play at the specified Speed.
//This user function includes scan play and slow playback for forward navigation
//at any speed (expect normal speed).
DWORD ForwardScan (WORD wSpeed, BOOL bFast);

//The operation to scan play at the specified Speed.
//This user function includes scan play and slow playback for backward navigation
//at any speed (expect normal speed).
DWORD BackwardScan (WORD wSpeed, BOOL bFast);

//Call the Menu in the Program Chain (PGC).
DWORD MenuCall (BYTE bMenuID);

//This operation returns from the Menu-space
DWORD Resume(void);

//This operation stops play for later resume of play
DWORD StopForResume(void);

//DVD Query attributes
DWORD DVDQueryAttribute(DWORD dwFlag, DWORD dwArg);


//Select the Buttons on the Menu Screen.
DWORD UpperButtonSelect(void);
DWORD LowerButtonSelect(void);
DWORD LeftButtonSelect(void);
DWORD RightButtonSelect(void);

//Activate the current Highlighted Button.
DWORD ButtonActivate(void);

//Activate the specified Highlighted Button.
DWORD ButtonSelectAndActivate(BYTE bButton);

//Operation to release Still.
DWORD StillOff(void);

//Pause the presentation.
DWORD PauseOn(void);

//Set the stream number of the Sub-Picture and whether the sub-picture is displayed or not.
DWORD SubPictureStreamChange (BYTE bStreamNumber, BOOL bDisplayFlag);

//Set the Stream number of the Audio.
DWORD AudioStreamChange (BYTE bStreamNumber);

//Select the language for System Menu according to the Language Code
DWORD MenuLanguageSelect (WORD dwCode);

//In Angle Block, change the Angle
DWORD AngleChange (BYTE bAngleNumber);

//Set the Parental Level
DWORD ParentalLevelSelect (BYTE bParentalLevel);

//Set the Country Code for Parental Management
DWORD ParentalCountrySelect (DWORD dwCountryCode);

//Change the mode of Audio Mixing mode for Karaoke.
DWORD KaraokeAudioPresentationMode (DWORD dwMode);

//Start or stop title repeat
DWORD RepeatTitle(void);

//Start of stop chapter repeat
DWORD RepeatChapter(void);

//Start AB repeat
DWORD RepeatAB(void);

//Clear Repeat AB;
DWORD ClearRepeatAB(void);

//Store bookmark
DWORD StoreBookmark(void *pBookmark);

//Resume playback from bookmark
DWORD ResumeBookmark(void *pBookmark);

//Stop the current presentation and start the presentation from the beginning
//of the return play item.
DWORD ReturnPGSearch (void);

//Stop the current presentation and start the presentation from the beginning
//of the default play item.
DWORD DefaultPGSearch (void);

// For VCD button selection
DWORD NumericSelections (BYTE sel);

// Fastforward (VCD and DVD)
DWORD FastForward (BYTE bSpeed);

// Rewind (VCD and DVD)
DWORD Rewind (BYTE bSpeed);

// Step and pause MPEG playback
DWORD FMPStep (DWORD nFrames);

// Region Code Control
DWORD RegionCodeControl (BOOL bInit, DWORD dwArg1, DWORD dwArg2);

/*******************************************************************************
* CD-Audio Commands
*******************************************************************************/
DWORD   CDDANextTrack( void );
DWORD   CDDAPrevTrack( void );
DWORD   CDDAFastForward( DWORD dwSpeed );
DWORD   CDDARewind( DWORD dwSpeed );
#define CDDA_MODE_REPEAT_NONE      0
#define CDDA_MODE_REPEAT_TRACK      1
#define CDDA_MODE_REPEAT_DISC      2
DWORD   CDDARepeat( DWORD dwMode );
DWORD   CDDAGetNumberOfTracks( BYTE* pbTrackNumber );
DWORD   CDDAGetTrackDuration( BYTE bTrackNumber, DWORD *pbSeconds );
DWORD   CDDAGetStatus( DWORD *pdwMode, BYTE *pbTrack, DWORD *pdwSeconds );
DWORD   CDDAPlayTrack( DWORD dwTrack, DWORD dwMinutes, DWORD dwSeconds);

/*******************************************************************************
* Local Storage of Settings Commands
*******************************************************************************/
DWORD FMPWriteProfileWord(   DWORD dwKeyIndex /* key index */, DWORD wValue /* value */);
DWORD FMPGetProfileWord  (   DWORD dwKeyIndex /* key index */);

// DVD Index Keys
#define RMREG_LANGUAGECODE            0x00
#define RMREG_MENU_LANGUAGECODE       0x01
#define RMREG_AUDIO_LANGUAGECODE      0x02
#define RMREG_SUBPICTURE_LANGUAGECODE 0x03
#define RMREG_SUBPICTURE_DISPLAY_MODE 0x04
#define RMREG_USER_ASPECT_RATIO        0x05
#define RMREG_USER_VIDEO_OUTPUT_MODE  0x06
#define RMREG_COUNTRYCODE             0x07
#define RMREG_PARENTALCONTROL         0x08
#define RMREG_PASSW_LOW_WORD          0x09
#define RMREG_PASSW_HIGH_WORD         0x0A
#define RMREG_PASSW_STATE             0x0B
#define RMREG_AUTOPLAY                0x0C
#define RMREG_PBC_OFF              0x0D
#define RMREG_MACROVISION             0x0E
#define RMREG_REGION_CODE             0x0F

#define RMREG_AUDIO_TYPE              0x10
#define RMREG_OUTPUTMODE              0x11
#define RMREG_HDTV_RES                0x12

#define RMREG_MAX                 0x13


/*******************************************************************************
* FMP Commands
*******************************************************************************/
#define FMP_DRIVERUNLOAD                0xDD   /* Unload the MPEG driver */
#define FMP_CLOSEFILE                   0xCC   /* Close the file and get ready to play another one */
#define FMP_STOPFILE                    0xBB   /* Stop Playing a File and get ready to replay at the beginning */
#define FMP_PLAYFILE                    0xAA   /* Really Play a File */
#define FMP_OPEN                        0x01   /* Open New Stream */
#define FMP_CLOSE                       0x02   /* Close Stream */
#define FMP_PLAY                        0x03   /* Play Stream */
#define FMP_PAUSE                       0x04   /* Pause Stream */
#define FMP_STOP                        0x05   /* Stop Stream */
#define FMP_SEEK                        0x06   /* Seek inside the stream */
#define FMP_STEP                        0x07   /* Step a number of frames inside the stream */
#define FMP_SET                         0x09   /* Driver Settings : set */
#define FMP_GET                         0x0A   /* Driver Settings : get */
#define FMP_PUSH                        0x0B   /* Push model : push one buffer*/
#define FMP_FLUSH                       0x0C   /* Flush all the data inside the driver */
#define FMP_GETBUFFER                   0x0D   /* Get a buffer from the driver */
#define FMP_EJECT_DISC               0x0E   /* issue an eject command to the dvdrom */
#define FMP_LOAD_DISC               0x0F   /* issue a load command to the dvdrom */
#define FMP_SHOW_BITMAP               0x10   /* show a bitmap on the screen */
#define FMP_ENABLE_OSD               0x11   /* enable osd functionality */
#define FMP_SET_SOURCE               0x12   /* set the source capture dimensions */
#define FMP_SET_VISIBLE_SOURCE         0x13   /* set the dimensions in source to be zoomed in destination*/
#define FMP_SET_DESTINATION            0x14   /* set the destination rectangle */
#define FMP_ENABLE_OVERLAY            0x15   /* enable overlay functionality */
#define FMP_ENABLE_FULLSCREEN         0x16   /* enable full screen functionality */
#define FMP_IS_DISC_LOADED            0x17   /* Test whether a Disc is present in the drive */
#define FMP_QUERY_INTERFACE             0x18   /* Query Specific interfaces*/
#define FMP_REGISTER_INTERFACE          0x19   /* Register external interface */
#define FMP_SET_VIDEOPORT_DIMENSIONS   0x1a   /* set dimensions of the output video port */
#define FMP_PROPERTY_GET            0x1b   /* get properties */
#define FMP_PROPERTY_SET            0x1c   /* get properties */
#define FMP_PROPERTY                    0x1d   /* reference to the FMPProperty() function, I need that flag. (Pascal) */
#define FMP_REGIONCONTROL               0x1e   /* Region Code Control */

#define FMP_NAV_EOS                     0x0100 /* Simulate EOS (internal function) */
#define FMP_NAV_CHECK_EOS               0x0101 /* Check if EOS is needed (internal function) */
#define FMP_NAV_AUTOPAUSE            0x0102 /* auto pause sector (SVCD) has finished */
#define FMP_NAV_COMMAND               0x0103 /* general navigation command */

#define FMP_TITLEPLAY                    0x0200 /* DVD Title Play */
#define FMP_TIME_PLAY                       0x0205 /* Time Play */
#define FMP_TIME_SEARCH                     0x0208 /* Time Search */
#define FMP_RESUME                          0x0210 /* Resume */
#define FMP_PREV_PG_SEARCH                  0x020A /* Previous Program Search */
#define FMP_NEXT_PG_SEARCH                  0x020C /* Next Program Search */
#define FMP_AST_STREAM_CHANGE               0x021B /* Audio Stream Change */
#define FMP_QUERY_ATTRIBUTE                 0x0223
#define FMP_FORWARD_SCAN                    0x020D /* Forward Scan */
#define FMP_BACKWARD_SCAN                   0x020E /* Backward Scan */
#define FMP_REPEAT_TITLE                    0x0224 /* Repeat Title */
#define FMP_REPEAT_CHAPTER                  0x0225 /* Repeat Chapter */
#define FMP_REPEAT_AB                  0x0226 /* AB Repeat */
#define FMP_CLEAR_REPEAT_AB               0x0227 /* AB Repeat */
#define FMP_STORE_BOOKMARK                  0x0228 /* Store bookmark */
#define FMP_RESUME_BOOKMARK                  0x0229 /* Restore bookmark */


#define FMP_DVD_PTT_PLAY                        0x0201 /* Chapter Play */
#define FMP_DVD_STOP                            0x0206   /* Stop */   
#define FMP_DVD_GO_UP                           0x0207 /* Go Up */
#define FMP_DVD_PTT_SEARCH                      0x0209 /* Chapter Search */
#define FMP_DVD_TOP_PG_SEARCH                   0x020B /* Top Program Search */
#define FMP_DVD_MENU_CALL                       0x020F /* Menu Call */
#define FMP_DVD_UPPER_BUTTON_SELECT             0x0211 /* Upper Button Select */
#define FMP_DVD_LOWER_BUTTON_SELECT             0x0212 /* Lower Button Select */
#define FMP_DVD_LEFT_BUTTON_SELECT              0x0213 /* Left Button Select */
#define FMP_DVD_RIGHT_BUTTON_SELECT             0x0214 /* Right Button Select */
#define FMP_DVD_BUTTON_ACTIVATE                 0x0215 /* Button Activate */
#define FMP_DVD_BUTTON_SELECT_AND_ACTIVATE      0x0216 /* Button Select and Activate */
#define FMP_DVD_STILL_OFF                       0x0217 /* Still Off */
#define FMP_DVD_MENU_LANGUAGE_SELECT            0x021A /* Menu Language Select */
#define FMP_DVD_SPST_STREAM_CHANGE              0x021C /* Subpicture Stream Change */
#define FMP_DVD_ANGLE_CHANGE                    0x021D /* Angle Change */
#define FMP_DVD_PARENTAL_LEVEL_SELECT           0x021F /* Parental Level Change */
#define FMP_DVD_PARENTAL_COUNTRY_SELECT         0x0220 /* Parental Country Change*/
#define FMP_DVD_KARAOKE_AUDIO_PRESENTATION      0x0221 /* Karaoke Audio Presentation change */
#define FMP_DVD_VIDEO_PRESENTATION_MODE_CHANGE  0x0222 /* Video Presentation Mode Change */

#define FMP_VCD_STOP_FOR_RESUME               0x0300
#define FMP_VCD_RETURN_PG_SEARCH                0x0306 /* VCD Return Play Item Search */
#define FMP_VCD_DEFAULT_PG_SEARCH               0x0307 /* VCD Default Play Item Search */
#define FMP_VCD_NUMERIC_SELECTIONS            0x0308 /* VCD Numeric Selection */
#define FMP_VCD_FAST_FORWARD               0x0309 /* VCD Numeric Selection */
#define FMP_VCD_REWIND                     0x030A /* VCD Numeric Selection */

#define FMP_CDDA_NEXT_TRACK                  0x0400
#define FMP_CDDA_PREV_TRACK                  0x0401
#define FMP_CDDA_TRACK_DURATION               0x0402
#define FMP_CDDA_PLAY_TRACK                  0x0403

#define FMP_WRITE_PROFILE_WORD               0x0500
#define FMP_GET_PROFILE_WORD               0x0501

#define FMP_ANALOG_OVERLAY                  0x10000000 /* Analog Overlay */

#define FMP_EXTENDED_CMD_MASK               0xF0000000 /* Extended commands mask */
#define FMP_EXTENDED_SUBCMD_MASK            0x0FFFFFFF /* Extended subcommands mask */


/*******************************************************************************
// FMP Errors
*******************************************************************************/
#define FMPE_OK                           0x00000000    /* No error */
#define FMPE_ERROR                        0xFFFFFFFF   /* Error : use getLastError to get the Error code */
#define FMPE_DRIVER_OPEN                  0x00000001    /* Driver Already Open (FMPOpen) */
#define FMPE_DRIVER_NOT_OPEN              0x00000002    /* Driver Not Open (FMPClose) */
#define FMPE_CANNOT_OPEN_DRIVER           0x00000003    /* Cannot open the MPEG driver */
#define FMPE_NOT_ENOUGH_MEMORY            0x00000004    /* No more memory available */
#define FMPE_NOT_IMPLEMENTED              0x00000005    /* This function is not implemented */
#define FMPE_INVALID_INDEX                0x00000006    /* Invalid Index (settings)*/
#define FMPE_READ_ONLY                    0x00000007    /* Read Only settings */
#define FMPE_PUSH_WHILE_STOPPED           0x00000008    /* Pushing data in Stopped state */
#define FMPE_INVALID_PARAMETER            0x00000009    /* Invalid Parameter */
#define FMPE_NO_MPEG_SERVER               0x0000000A    /* No MPEG Server is running*/
#define FMPE_NO_ANALOG_OVERLAY_CAPABILITY 0x0000000B   /* No Analog Overlay */
#define FMPE_INVALID_STREAM_TYPE          0x0000000C   /* This function does not support the current stream type */

#define FMPE_ENTRY_MOD_INIT_FAILED        0x0000000D    /* MPEGDriverEntry Failed : Module loader failed to initialize */
#define FMPE_ENTRY_HWL_INIT_FAILED        0x0000000E    /* MPEGDriverEntry Failed : Failed to create MPEG Hardware driver*/
#define FMPE_ENTRY_DVDDEV_INIT_FAILED     0x0000000F    /* MPEGDriverEntry Failed : Failed to create DVD-ROM device driver*/

#define FMPE_CDDA_FAILURE                 0x00000010    /* CDDANextTrack : Failure or end of disk has been reached (or beginning)*/

#define FMPE_UNEXPECTED                 0x00000011    /* Unexpected unknown errors for VCD and SVCD */
#define FMPE_DISABLED                     0x00000012    /* The function is currently is disabled */
#define FMPE_INVALIDARG                   0x00000013    /* The list offset requested is out of range */
#define FMPE_TIMERACTIVATED               0x00000014    /* The timer has been activated */
#define FMPE_FAILURE                      0x00000015    /* For VCD and SVCD failure */
/*******************************************************************************
* FMP Settings
*******************************************************************************/
#define FMPI_TRICKMODE                  0x00000001
#define FMPI_STC                        0x00000002
#define FMPI_PTS                        0x00000003
#define FMPI_AUDIO_COUNT                0x00000004
#define FMPI_AUDIO_SELECT               0x00000005
#define FMPI_NPT_REFERENCE            0x00000006
#define FMPI_STC_REFERENCE            0x00000007
#define FMPI_BRIGHTNESS               0x00000008
#define FMPI_SATURATION               0x00000009
#define FMPI_CONTRAST               0x0000000A

#define FMPI_LEFT_VOLUME            0x0000000B
#define FMPI_RIGHT_VOLUME            0x0000000C
#define FMPI_MUTE                  0x0000000D
#define FMPI_AUDIO_OUTPUT            0x0000000E
#define FMPI_AUDIO_MODE               0x0000000F
#define FMPI_AUDIO_VCXO               0x00000010

#define FMPI_VIDEOOUT               0x00000011
#define FMPI_SOURCE_WINDOW            0x00000012
#define FMPI_VISIBLE_SOURCE_WINDOW      0x00000013
#define FMPI_DESTINATION_WINDOW         0x00000014
#define FMPI_OVERLAY_FLAGS            0x00000015
#define FMPI_VIDEO_SPEED            0x00000016
#define FMPI_VIDEOPORT_WINDOW         0x00000017
#define FMPI_VIDEOASPECT            0x00000018
#define FMPI_AUDIO_SPEED            0x00000019

#define FMPI_DISC_TYPE               0x00001001

#define   FMPI_ANGLES_AVAILABLE           0x00001002
#define   FMPI_AUDIO_STREAMS_AVAILABLE   0x00001003 
#define   FMPI_BUTTONS_AVAILABLE         0x00001004 
#define   FMPI_CAN_SCAN               0x00001005 
#define   FMPI_CAN_SEEK               0x00001006   
#define   FMPI_CURRENT_ANGLE            0x00001007   
#define   FMPI_CURRENT_AUDIO_STREAM      0x00001008   
#define   FMPI_CURRENT_BUTTON            0x00001009   
#define   FMPI_CURRENT_CHAPTER         0x0000100A   
#define   FMPI_CURRENT_DOMAIN            0x0000100B   
#define   FMPI_CURRENT_POSITION         0x0000100C   
#define   FMPI_CURRENT_SUBPICT_STREAM      0x0000100D   
#define   FMPI_CURRENT_TIME            0x0000100E   
#define   FMPI_CURRENT_TITLE            0x0000100F   
#define   FMPI_SUBPICTURE_ON            0x00001010   
#define   FMPI_SUBPICTURE_STREAM_AVAILABLE   0x00001011 
#define   FMPI_TITLES_AVAILABLE         0x00001012   
#define   FMPI_TOTAL_TITLE_TIME         0x00001013   
#define FMPI_CURRENT_SPEED            0x00001014

#define   FMPI_SVCD_TRICK_MODE         0x00002000
#define   FMPI_CURRENT_TRACK            0x00002001
#define   FMPI_SVCD_DISCONTINUITY         0x00002002
#define   FMPI_SVCD_CURRENT_VOLUME      0x00002003
#define   FMPI_SVCD_VOLUMES_AVAILABLE      0x00002004
#define   FMPI_TRACKS_AVAILABLE         0x00002005
#define   FMPI_TOTAL_TRACK_TIME         0x00002006
#define   FMPI_CDDA_REPEAT_MODE         0x00002007

/*******************************************************************************
* FMP Messages
*******************************************************************************/
#define FMPM_ERROR                         0x00000001
#define FMPM_STARVATION                    0x00000002
#define FMPM_EOS                           0x00000003
#define FMPM_DVDROM_NOT_READY            0x00000004
#define FMPM_AUTOPAUSE                  0x00000005   
#define FMPM_REGION_MISMATCH            0x00000006
#define FMPM_TRICK_MODE_CHANGE         0x00000007

#define FMPM_DVD_ANGLE_CHANGE              0x00000100
#define FMPM_DVD_ANGLES_BLOCK              0x00000101
#define FMPM_DVD_AUDIO_STREAM_CHANGE       0x00000102
#define FMPM_DVD_BUTTONS_CHANGE            0x00000103
#define FMPM_DVD_BUTTON_CHANGE             0x00000104
#define FMPM_DVD_PROGRAM_START             0x00000105
#define FMPM_DVD_CURRENT_TIME              0x00000106
#define FMPM_DVD_DOMAIN_CHANGE             0x00000107
#define FMPM_DVD_NO_FP_PGC                 0x00000108
#define FMPM_DVD_PARENTAL_LEVEL_CHANGE     0x00000109
#define FMPM_DVD_PLAYBACK_STOPPED          0x0000010A
#define FMPM_DVD_STILL_OFF                 0x0000010B
#define FMPM_DVD_STILL_ON                  0x0000010C
#define FMPM_DVD_SUBPICTURE_STREAM_CHANGE  0x0000010D
#define FMPM_DVD_TITLE_CHANGE              0x0000010E
#define FMPM_DVD_VALID_UOPS_CHANGE         0x0000010F
#define FMPM_DVD_CHAPTER_CHANGE            0x00000110
#define FMPM_DVD_PARENTAL_ERROR            0x00000111
#define FMPM_DVD_PARENTAL_CHECK            0x00000112
#define FMPM_DVD_TITLE_AUTHENTICATION_ERR  0x00000113
#define FMPM_DVD_DISC_AUTHENTICATION_ERR   0x00000114
#define FMPM_DVD_END_PLAYBACK            0x00000115
#define   FMPM_DVDROM_ERR                  0x00000116
#define FMPM_DVD_MACROVISION_LEVEL         0x00000117
#define FMPM_DVD_FATAL_ERROR            0x00000118

#define FMPM_SVCD_PSD_END               0x00000200
#define FMPM_CDDA_PSD_END               0x00000300

/*******************************************************************************
* FMP Values
*******************************************************************************/
#define FMPV_TRICKMODE_NOCHANGE         0x00000000
#define FMPV_TRICKMODE_START            0x00000001
#define FMPV_TRICKMODE_END              0x00000002

// FMPI_VIDEOOUT related values.
// They have to match values in mpegcmn.h used by hardware library:
//      Bit7,Bit6 = COMPOSITE, COMPONENT_YUV, COMPONENT_RGB
//      Bit4      = SET_TV_AS_SOURCE, SET_TV_AS_USER
//      Bit2      = SET_ONETOONE, SET_SCALE
//      Bit3,Bit1 = SET_NTSC, SET_PAL, SET_PAL60, SET_PALM
//      Bit5,Bit0 = SET_VGA, SET_TV, SET_HDTV
#define FMPV_VIDEOOUT_COMPONENT_MASK   0x00C0
#define FMPV_VIDEOOUT_COMPOSITE         0x0000
#define FMPV_VIDEOOUT_COMPONENT_YUV      0x0080
#define FMPV_VIDEOOUT_COMPONENT_RGB      0x00C0

#define FMPV_VIDEOOUT_MODE_MASK         0x0021
#define FMPV_VIDEOOUT_VGA            0x0000
#define FMPV_VIDEOOUT_TV            0x0001
#define FMPV_VIDEOOUT_HDTV            0x0020

#define FMPV_VIDEOOUT_STANDARDTV_MASK   0x000A
#define FMPV_VIDEOOUT_NTSC            0x0000
#define FMPV_VIDEOOUT_PAL             0x0002
#define FMPV_VIDEOOUT_PAL60            0x0008
#define FMPV_VIDEOOUT_PALM            0x000A

#define FMPV_VIDEOOUT_ONETOONE         0x0000
#define FMPV_VIDEOOUT_SCALE            0x0004

#define FMPV_VIDEOOUT_TV_AS_SOURCE      0x0010
#define FMPV_VIDEOOUT_TV_AS_USER      0x0000

// FMPI_VIDEOASPECT related values - they should be in sync
//         with KSPROPERTY_MPEG2VID enum defined in cgraphm.h
// FMPV_VIDEOASPECT_4x3_16x9_ZOOM_ON is not recommended for DVD because
// the subpicture is not visible
// Syntax of the setting name:
//      FMPV_VIDEOASPECT_InputAspectRatio_OutputAspectRatio_UserDisplayOption
//      InputAspectRatio - video material aspect ratio: 4x3 or 16x9
//      OutputAspectRatio - output display device: 4x3=standardTV or 16x9=wide TV
//      UserDisplayOption - user choice if the input and output aspect ratio are not
//         the same and if video material permit
#define FMPV_VIDEOASPECT_4x3_4x3_NORMAL         0x0002   // normal
#define FMPV_VIDEOASPECT_4x3_16x9_ZOOM_ON      0x0003   // upscale video to fit width keeping 4:3 aspect ratio, cropping top and bottom
#define FMPV_VIDEOASPECT_4x3_16x9_ZOOM_OFF      0x0004   // video not scaled horizontally centered, black on sides
#define FMPV_VIDEOASPECT_16x9_16x9_NORMAL      0x0005   // normal
#define FMPV_VIDEOASPECT_16x9_4x3_PANSCAN      0x0006   // pan and scan
#define FMPV_VIDEOASPECT_16x9_4x3_LETTERBOX      0x0007   // letter box

// FMPI_AUDIO_MODE related values.
// They have to match values in mpegcmn.h used by hardware library:
#define FMPV_AUDIO_MODE_STEREO         0x0000
#define FMPV_AUDIO_MODE_RIGHT_ONLY      0x0001
#define FMPV_AUDIO_MODE_LEFT_ONLY      0x0002
#define FMPV_AUDIO_MODE_MONOMIX         0x0003
/*******************************************************************************
* DVD Error Messages
*******************************************************************************/

#define DVDE_HANDLE                     0x2000
#define DVDE_ARG                        0x2100
#define DVDE_TITLENUMBER                0x2200
#define DVDE_PTTNUMBER                  0x2300
#define DVDE_UNAUTHORIZED            0x2400
#define DVDE_OUT_OF_MEM               0x2500
#define DVDE_INCORRECT_STRUCT         0x2600
#define DVDE_NORESUME               0x2700
#define DVDE_PARENTAL_LOCK            0x2800

/*******************************************************************************
* DVD Menu ID
*******************************************************************************/
#define DVD_TITLE_ID                            0x02
#define DVD_ROOT_ID                             0x03
#define DVD_AUDIO_ID                            0x05
#define DVD_SUBPICTURE_ID                       0x04
#define DVD_ANGLE_ID                            0x06
#define DVD_PTT_ID                              0x07

/*******************************************************************************
* DVD Index
*******************************************************************************/
#define FMPI_DVD_VTS_NS                          0x0A01         // for internal use only
#define DVDI_TT_SRPTI                            0x0001
#define DVDI_AST_ATR                             0x0002
#define DVDI_SPST_ATR                            0x0003
#define DVDI_SPRM                                0x0004
#define DVDI_VIDEO_MODE                          0x0005
#define DVDI_TIME                                0x0006         // for internal use only
#define DVDI_UOP_CTL                             0x0007         // for internal use only
#define DVDI_STATE                               0x0008         // for internal use only
#define DVDI_REPEATMODE                          0x0009         // for internal use only
#define DVDI_VATR                         0x000A         // video attribute
#define DVDI_CURRENT_UOPS                   0x000B


/*******************************************************************************
* System Parameters (SPRMs)
*******************************************************************************/
// (VI4-157)

#define M_LCD            0
#define ASTN            1
#define SPSTN            2   
#define AGLN            3   
#define TTN               4
#define VTS_TTN            5
#define TT_PGCN            6
#define PTTN            7
#define HL_BTTN            8
#define NV_TMR            9
#define NV_TMR_TT_PGCN      10
#define P_AMXMD            11
#define CTY_CD            12
#define PTL_LVL            13
#define P_CFGV            14
#define P_CFGA            15
#define INI_LCD_AST         16
#define INI_LCD_EXT_AST      17
#define INI_LCD_SPST      18
#define INI_LCD_EXT_SPST   19
#define PRC               20


/*******************************************************************************
* Structures
*******************************************************************************/
#define MAX_AST 8      // 0..7
#define MAX_SP 32      // 0..31
#define MAX_TT 100      // 1..99
#define MAX_AGL 10      // 1..9

// TT_SRPTI
typedef struct {
   BYTE bTT_SRP_Ns;               
   BYTE bALG_Ns [MAX_TT];            
   WORD wPTT_Ns [MAX_TT];            
} TT_SRPTI, * PTT_SRPTI;

// AST_ATR
typedef struct {
   BYTE bAST_Ns;
   BOOL bAvailable [MAX_AST];
   BYTE bAudioCodingMode [MAX_AST];
   BOOL bMultichannelExtenstion [MAX_AST];
   BYTE bAudioType [MAX_AST];
   BYTE bAudioApplicationMode [MAX_AST];
   BYTE bQuantization [MAX_AST];
   BYTE bfs [MAX_AST];
   BYTE bNumberOfAudioChannels [MAX_AST];
   WORD wLanguageCode [MAX_AST];
   WORD wLanguageCodeExtension [MAX_AST];
   BYTE bApplicationExtension [MAX_AST];
} AST_ATR, *PAST_ATR;

// SPST_ATR
typedef struct {
   BYTE bSPST_Ns;
   BOOL bAvailable [MAX_SP];
   BYTE bSubpictureType [MAX_SP];
   WORD wLanguageCode [MAX_SP];
   WORD wLanguageCodeExtension [MAX_SP];
} SPST_ATR, *PSPST_ATR;

// VIDEO_MODE
typedef struct {
   BYTE bAspectRatio;
   BYTE bDisplayMode;
} VIDEO_MODE, *PVIDEO_MODE;

#define CRMBookmark_SIZE   9400

/******************************************************************************
* CDDA Index
*******************************************************************************/
#define CDDAI_TOC 0x0010

/*******************************************************************************
* Structures
*******************************************************************************/
typedef DWORD CDDA_CONTENT[99];
typedef DWORD* PCDDA_CONTENT[99];
   
/*******************************************************************************
* FMPAnalogOverlay Functions
*******************************************************************************/

DWORD FMPAnalogOverlay(DWORD SubCommand,DWORD dwArg1,DWORD dwArg2,
             DWORD dwArg3,DWORD dwArg4,DWORD dwArg5);

// FMPAnalogOverlay subcommand
#define FMP_ANALOG_OVERLAY_ACCESS 0x1000

// FMPAnalogOverlay subcommand
#define FMP_ANALOG_OVERLAY_GET 0x1001
#define FMP_ANALOG_OVERLAY_SET 0x1002

// General commands
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_VGAKEY 0x202 // vgakey selection (dwArg2=R<<16+G<<8+B. indexed mode is not supported)
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_DISPLAYRESOLUTION 0x203 // send dwArg2=depth (8,16,24,32), dwArg3=physical display width, dwArg4=physical display height
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_MODE 0x204  // mode selection (dwArg2=0(none),1(rectangle),2(overlay))
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_OVERLAY_CABLE_PRESENT 0x205 // get only: 1=yes, 0=no

// fine-tuning
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_XOFFSET 0x301
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_YOFFSET 0x302
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_VGACORRECTION 0x303
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_VGARUPPER 0x304
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_VGARLOWER 0x305
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_VGAGUPPER 0x306
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_VGAGLOWER 0x307
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_VGABUPPER 0x308
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_VGABLOWER 0x309
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_FINEADJUSTMENT 0x30a
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_HFREQUENCY 0x30b
#define FMP_ANALOG_OVERLAY_ATTRIBUTE_JITTERADJUSTMENT 0x30c

// FMPAnalogOverlay subcommand
#define FMP_ANALOG_OVERLAY_AUTOCALIBRATION 0x1003
/* then dwArg2=0x88 YOffset autocalibration (horizontal at top pattern)
        dwArg2=0x89 XOffset autocalibration (vertical at left pattern)
        dwArg2=0x8a Correction autocalibration (vertical offset right pattern)
   
   dwArg2=0x80 Color (WHITE) autocalibration (full white vertical bar pattern)
   dwArg2=0x82 Color (GREY) autocalibration (half white vertical bar pattern) */

/*******************************************************************************
* Misc Values
*******************************************************************************/

#define FMP_MPEG_SERVER               "REALmagic/MPEGsvr"
#define FMP_MPEG_CLIENT               "REALmagic/MPEGclient"

#ifdef __cplusplus
}
#endif

#endif













Lib, include with email check please.....

thank.

PostPosted: Thu Feb 07, 2008 9:52 am
by Antonio Linares
Code: Select all  Expand view
fmp.h:20: error: redefinition of typedef ‘LONG’
./../../harbour/include/hbdefs.h:190: error: previous declaration of ‘LONG’ was here
fmp.h:22: error: redefinition of typedef ‘BYTE’
./../../harbour/include/hbdefs.h:181: error: previous declaration of ‘BYTE’ was here
fmp.h:23: error: redefinition of typedef ‘BOOL’
./../../harbour/include/hbdefs.h:168: error: previous declaration of ‘BOOL’ was here
In file included from yunb.prg:37:
fmp.h:232:21: error: rm84cmn.h: No such file or directory
fmp.h:241:18: error: ifmp.h: No such file or directory

We also need those missing .h files: rm84cmn.h, ifmp.h

Besides them, there are conflicts for LONG, BYTE and BOOL definitions. We can solve the BOOL one, but not sure about LONG and BYTE. We need to try it.

PostPosted: Fri Feb 08, 2008 1:46 am
by yunbg1
Hi Antonio.

The next file is SDK.

Thank you.

http://www.bongku.net/down/Netstream2000-1.6.73.0.zip

yunbg1.

Fivelinux USER

PostPosted: Sat Feb 09, 2008 10:08 am
by Antonio Linares
You need to modify these lines in fmp.h:

#ifdef _DEFINE_FMP_TYPES_
typedef unsigned long DWORD;
// typedef long LONG;
typedef unsigned short WORD;
// typedef unsigned char BYTE;
// typedef int BOOL;

Now it compiles fine