packages feed

wxcore-0.10.4: wxc/src/mediactrl.cpp

#include "wrapper.h"
#ifdef wxUSE_MEDIACTRL
#include "wx/mediactrl.h"
#endif

/* testing */
// #define wxUSE_MEDIACTRL 0

/*-----------------------------------------------------------------------------
  We want to include the function signatures always -- even on 
  systems that don't support MediaCtrl. This means that every function body is
  surrounded by #ifdef wxUSE_MEDIACTRL directives :-(
-----------------------------------------------------------------------------*/
#if defined(wxUSE_MEDIACTRL) && (wxUSE_MEDIACTRL==0)
# undef wxUSE_MEDIACTRL
#endif

#if defined(wxcREFUSE_MEDIACTRL)
# undef wxUSE_MEDIACTRL
#endif

#ifndef wxUSE_MEDIACTRL
# define wxMediaCtrl      void
#endif

#if (wxVERSION_NUMBER <= 2600)
# define wxFileOffset      long
#endif

extern "C" {
/*-----------------------------------------------------------------------------
  MediaCtrl
-----------------------------------------------------------------------------*/
EWXWEXPORT(wxMediaCtrl*,wxMediaCtrl_Create)( void* parent, int id,
                                             wxString* fileName, int x, int y, int w, int h,
                                             long style, wxString* szBackend, wxString* name)
{
#ifdef wxUSE_MEDIACTRL
  return new wxMediaCtrl((wxWindow*)parent,(wxWindowID)id,
    (fileName ? *fileName : wxString(wxT(""))),
    wxPoint(x,y),wxSize(w,h),style,
    (szBackend ? *szBackend : wxString(wxT(""))), wxDefaultValidator,
    (name ? *name : wxString(wxT("MediaCtrl"))));
#else
  return NULL;
#endif
}

/* we don't need this.
EWXWEXPORT(wxMediaCtrl*,wxMediaCtrl_Create)( void* parent, int id,
                                             wxString* fileName, int x, int y, int w, int h,
                                             long style, wxString* szBackend, wxString* name)
{
#ifdef wxUSE_MEDIACTRL
  return wxMediaCtrl->Create((wxWindow*)parent,(wxWindowID)id,
    (fileName ? *fileName : wxString(wxT(""))),
    wxPoint(x,y),wxSize(w,h),style,
    (szBackend ? *szBackend : wxString(wxT(""))), wxDefaultValidator,
    (name ? *name : wxString(wxT("MediaCtrl"))));
#else
  return NULL;
#endif
}
*/

EWXWEXPORT(void,wxMediaCtrl_Delete)(wxMediaCtrl* self)  
{
#ifdef wxUSE_MEDIACTRL
  if (self) delete self;
#endif
}

EWXWEXPORT(void,wxMediaCtrl_GetBestSize)(wxMediaCtrl* self, int* w, int* h)
{
#ifdef wxUSE_MEDIACTRL
  wxSize sz = self->GetBestSize();
  *w = sz.x;
  *h = sz.y;
#endif
}

EWXWEXPORT(double,wxMediaCtrl_GetPlaybackRate)(wxMediaCtrl* self)
{
#ifdef wxUSE_MEDIACTRL
  return self->GetPlaybackRate();
#else
  return NULL;
#endif
}

EWXWEXPORT(double,wxMediaCtrl_GetVolume)(wxMediaCtrl* self)
{
#ifdef wxUSE_MEDIACTRL
  return self->GetVolume();
#else
  return NULL;
#endif
}

EWXWEXPORT(int,wxMediaCtrl_GetState)(wxMediaCtrl* self)
{
#ifdef wxUSE_MEDIACTRL
  return self->GetState();
#else
  return NULL;
#endif
}

EWXWEXPORT(wxFileOffset,wxMediaCtrl_Length)(wxMediaCtrl* self)
{
#ifdef wxUSE_MEDIACTRL
  return self->Length();
#else
  return NULL;
#endif
}

EWXWEXPORT(bool,wxMediaCtrl_Load)(wxMediaCtrl* self, const wxString* fileName)
{
#ifdef wxUSE_MEDIACTRL
  return self->Load(*fileName);
#else
  return NULL;
#endif
}

EWXWEXPORT(bool,wxMediaCtrl_LoadURI)(wxMediaCtrl* self, const wxString* uri)
{
#ifdef wxUSE_MEDIACTRL
  return self->LoadURI(*uri);
#else
  return NULL;
#endif
}

EWXWEXPORT(bool,wxMediaCtrl_LoadURIWithProxy)(wxMediaCtrl* self, const wxString* uri, const wxString* proxy)
{
#ifdef wxUSE_MEDIACTRL
  return self->LoadURIWithProxy(*uri, *proxy);
#else
  return false;
#endif
}

EWXWEXPORT(bool,wxMediaCtrl_Pause)(wxMediaCtrl* self)
{
#ifdef wxUSE_MEDIACTRL
  return self->Pause();
#else
  return false;
#endif
}

EWXWEXPORT(bool,wxMediaCtrl_Play)(wxMediaCtrl* self)
{
#ifdef wxUSE_MEDIACTRL
  return self->Play();
#else
  return false;
#endif
}

EWXWEXPORT(wxFileOffset,wxMediaCtrl_Seek)(wxMediaCtrl* self, wxFileOffset offsetWhere, int mode)
{
#ifdef wxUSE_MEDIACTRL
  return self->Seek(offsetWhere, static_cast<wxSeekMode>(mode));
#else
  return NULL;
#endif
}

EWXWEXPORT(bool,wxMediaCtrl_SetPlaybackRate)(wxMediaCtrl* self, double dRate)
{
#ifdef wxUSE_MEDIACTRL
  return self->SetPlaybackRate(dRate);
#else
  return false;
#endif
}

EWXWEXPORT(bool,wxMediaCtrl_SetVolume)(wxMediaCtrl* self, double dVolume)
{
#ifdef wxUSE_MEDIACTRL
  return self->SetVolume(dVolume);
#else
  return false;
#endif
}

EWXWEXPORT(bool,wxMediaCtrl_ShowPlayerControls)(wxMediaCtrl* self, int flags)
{
#ifdef wxUSE_MEDIACTRL
  return self->ShowPlayerControls(static_cast<wxMediaCtrlPlayerControls>(flags));
#else
  return false;
#endif
}

EWXWEXPORT(bool,wxMediaCtrl_Stop)(wxMediaCtrl* self)
{
#ifdef wxUSE_MEDIACTRL
  return self->Stop();
#else
  return false;
#endif
}

EWXWEXPORT(wxFileOffset, wxMediaCtrl_Tell) (wxMediaCtrl* self)
{
#ifdef wxUSE_MEDIACTRL
  return self->Tell();
#else
  return NULL;
#endif
}


/*-----------------------------------------------------------------------------
  MediaEvent
-----------------------------------------------------------------------------*/
EWXWEXPORT(int,expEVT_MEDIA_LOADED)()
{
#ifdef wxUSE_MEDIACTRL
    return (int)wxEVT_MEDIA_LOADED;
#else
    return NULL;
#endif
}

EWXWEXPORT(int,expEVT_MEDIA_STOP)()
{
#ifdef wxUSE_MEDIACTRL
    return (int)wxEVT_MEDIA_STOP;
#else
    return NULL;
#endif
}

EWXWEXPORT(int,expEVT_MEDIA_FINISHED)()
{
#ifdef wxUSE_MEDIACTRL
    return (int)wxEVT_MEDIA_FINISHED;
#else
    return NULL;
#endif
}

EWXWEXPORT(int,expEVT_MEDIA_STATECHANGED)()
{
#ifdef wxUSE_MEDIACTRL
    return (int)wxEVT_MEDIA_STATECHANGED;
#else
    return NULL;
#endif
}

EWXWEXPORT(int,expEVT_MEDIA_PLAY)()
{
#ifdef wxUSE_MEDIACTRL
    return (int)wxEVT_MEDIA_PLAY;
#else
    return NULL;
#endif
}

EWXWEXPORT(int,expEVT_MEDIA_PAUSE)()
{
#ifdef wxUSE_MEDIACTRL
    return (int)wxEVT_MEDIA_PAUSE;
#else
    return NULL;
#endif
}

}