forked from openlp/openlp
head1994
This commit is contained in:
commit
8ef8984d16
@ -130,9 +130,10 @@ class MainDisplay(Display):
|
||||
else:
|
||||
self.audioPlayer = None
|
||||
self.firstTime = True
|
||||
self.webLoaded = True
|
||||
self.setStyleSheet(u'border: 0px; margin: 0px; padding: 0px;')
|
||||
windowFlags = QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool | \
|
||||
QtCore.Qt.WindowStaysOnTopHint
|
||||
QtCore.Qt.WindowStaysOnTopHint
|
||||
if Settings().value(u'advanced/x11 bypass wm',
|
||||
QtCore.QVariant(True)).toBool():
|
||||
windowFlags |= QtCore.Qt.X11BypassWindowManagerHint
|
||||
@ -194,15 +195,15 @@ class MainDisplay(Display):
|
||||
Display.setup(self)
|
||||
if self.isLive:
|
||||
# Build the initial frame.
|
||||
image_file = Settings().value(u'advanced/default image',
|
||||
QtCore.QVariant(u':/graphics/openlp-splash-screen.png'))\
|
||||
.toString()
|
||||
background_color = QtGui.QColor()
|
||||
background_color.setNamedColor(Settings().value(
|
||||
u'advanced/default color',
|
||||
QtCore.QVariant(u'#ffffff')).toString())
|
||||
if not background_color.isValid():
|
||||
background_color = QtCore.Qt.white
|
||||
image_file = Settings().value(u'advanced/default image',
|
||||
QtCore.QVariant(u':/graphics/openlp-splash-screen.png'))\
|
||||
.toString()
|
||||
splash_image = QtGui.QImage(image_file)
|
||||
self.initialFrame = QtGui.QImage(
|
||||
self.screen[u'size'].width(),
|
||||
@ -289,10 +290,10 @@ class MainDisplay(Display):
|
||||
|
||||
def image(self, name):
|
||||
"""
|
||||
Add an image as the background. The image has already been added
|
||||
to the cache.
|
||||
Add an image as the background. The image has already been added to the
|
||||
cache.
|
||||
|
||||
``Image``
|
||||
``name``
|
||||
The name of the image to be displayed.
|
||||
"""
|
||||
log.debug(u'image to display')
|
||||
|
@ -48,7 +48,7 @@ import sys
|
||||
from inspect import getargspec
|
||||
|
||||
__version__ = "N/A"
|
||||
build_date = "Fri Jun 8 09:31:07 2012"
|
||||
build_date = "Thu Jun 14 15:22:46 2012"
|
||||
|
||||
# Internal guard to prevent internal classes to be directly
|
||||
# instanciated.
|
||||
@ -235,6 +235,23 @@ def class_result(classname):
|
||||
return classname(result)
|
||||
return wrap_errcheck
|
||||
|
||||
# FILE* ctypes wrapper, copied from
|
||||
# http://svn.python.org/projects/ctypes/trunk/ctypeslib/ctypeslib/contrib/pythonhdr.py
|
||||
class FILE(ctypes.Structure):
|
||||
pass
|
||||
FILE_ptr = ctypes.POINTER(FILE)
|
||||
|
||||
PyFile_FromFile = ctypes.pythonapi.PyFile_FromFile
|
||||
PyFile_FromFile.restype = ctypes.py_object
|
||||
PyFile_FromFile.argtypes = [FILE_ptr,
|
||||
ctypes.c_char_p,
|
||||
ctypes.c_char_p,
|
||||
ctypes.CFUNCTYPE(ctypes.c_int, FILE_ptr)]
|
||||
|
||||
PyFile_AsFile = ctypes.pythonapi.PyFile_AsFile
|
||||
PyFile_AsFile.restype = FILE_ptr
|
||||
PyFile_AsFile.argtypes = [ctypes.py_object]
|
||||
|
||||
# Generated enum types #
|
||||
|
||||
class _Enum(ctypes.c_uint):
|
||||
@ -256,6 +273,21 @@ class _Enum(ctypes.c_uint):
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
||||
class LogLevel(_Enum):
|
||||
'''Logging messages level.
|
||||
\note future libvlc versions may define new levels.
|
||||
'''
|
||||
_enum_names_ = {
|
||||
0: 'DEBUG',
|
||||
2: 'NOTICE',
|
||||
3: 'WARNING',
|
||||
4: 'ERROR',
|
||||
}
|
||||
LogLevel.DEBUG = LogLevel(0)
|
||||
LogLevel.ERROR = LogLevel(4)
|
||||
LogLevel.NOTICE = LogLevel(2)
|
||||
LogLevel.WARNING = LogLevel(3)
|
||||
|
||||
class EventType(_Enum):
|
||||
'''Event types.
|
||||
'''
|
||||
@ -577,6 +609,247 @@ AudioOutputChannel.RStereo = AudioOutputChannel(2)
|
||||
AudioOutputChannel.Right = AudioOutputChannel(4)
|
||||
AudioOutputChannel.Stereo = AudioOutputChannel(1)
|
||||
|
||||
class Callback(ctypes.c_void_p):
|
||||
"""Callback function notification
|
||||
\param p_event the event triggering the callback
|
||||
"""
|
||||
pass
|
||||
class LogCb(ctypes.c_void_p):
|
||||
"""Callback prototype for LibVLC log message handler.
|
||||
\param data data pointer as given to L{libvlc_log_subscribe}()
|
||||
\param level message level (@ref enum libvlc_log_level)
|
||||
\param fmt printf() format string (as defined by ISO C11)
|
||||
\param args variable argument list for the format
|
||||
\note Log message handlers <b>must</b> be thread-safe.
|
||||
"""
|
||||
pass
|
||||
class VideoUnlockCb(ctypes.c_void_p):
|
||||
"""Callback prototype to unlock a picture buffer.
|
||||
When the video frame decoding is complete, the unlock callback is invoked.
|
||||
This callback might not be needed at all. It is only an indication that the
|
||||
application can now read the pixel values if it needs to.
|
||||
\warning A picture buffer is unlocked after the picture is decoded,
|
||||
but before the picture is displayed.
|
||||
\param opaque private pointer as passed to libvlc_video_set_callbacks() [IN]
|
||||
\param picture private pointer returned from the @ref libvlc_video_lock_cb
|
||||
callback [IN]
|
||||
\param planes pixel planes as defined by the @ref libvlc_video_lock_cb
|
||||
callback (this parameter is only for convenience) [IN]
|
||||
"""
|
||||
pass
|
||||
class VideoDisplayCb(ctypes.c_void_p):
|
||||
"""Callback prototype to display a picture.
|
||||
When the video frame needs to be shown, as determined by the media playback
|
||||
clock, the display callback is invoked.
|
||||
\param opaque private pointer as passed to libvlc_video_set_callbacks() [IN]
|
||||
\param picture private pointer returned from the @ref libvlc_video_lock_cb
|
||||
callback [IN]
|
||||
"""
|
||||
pass
|
||||
class VideoFormatCb(ctypes.c_void_p):
|
||||
"""Callback prototype to configure picture buffers format.
|
||||
This callback gets the format of the video as output by the video decoder
|
||||
and the chain of video filters (if any). It can opt to change any parameter
|
||||
as it needs. In that case, LibVLC will attempt to convert the video format
|
||||
(rescaling and chroma conversion) but these operations can be CPU intensive.
|
||||
\param opaque pointer to the private pointer passed to
|
||||
libvlc_video_set_callbacks() [IN/OUT]
|
||||
\param chroma pointer to the 4 bytes video format identifier [IN/OUT]
|
||||
\param width pointer to the pixel width [IN/OUT]
|
||||
\param height pointer to the pixel height [IN/OUT]
|
||||
\param pitches table of scanline pitches in bytes for each pixel plane
|
||||
(the table is allocated by LibVLC) [OUT]
|
||||
\param lines table of scanlines count for each plane [OUT]
|
||||
\return the number of picture buffers allocated, 0 indicates failure
|
||||
\note
|
||||
For each pixels plane, the scanline pitch must be bigger than or equal to
|
||||
the number of bytes per pixel multiplied by the pixel width.
|
||||
Similarly, the number of scanlines must be bigger than of equal to
|
||||
the pixel height.
|
||||
Furthermore, we recommend that pitches and lines be multiple of 32
|
||||
to not break assumption that might be made by various optimizations
|
||||
in the video decoders, video filters and/or video converters.
|
||||
"""
|
||||
pass
|
||||
class VideoCleanupCb(ctypes.c_void_p):
|
||||
"""Callback prototype to configure picture buffers format.
|
||||
\param opaque private pointer as passed to libvlc_video_set_callbacks()
|
||||
(and possibly modified by @ref libvlc_video_format_cb) [IN]
|
||||
"""
|
||||
pass
|
||||
class AudioPlayCb(ctypes.c_void_p):
|
||||
"""Callback prototype for audio playback.
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
\param samples pointer to the first audio sample to play back [IN]
|
||||
\param count number of audio samples to play back
|
||||
\param pts expected play time stamp (see libvlc_delay())
|
||||
"""
|
||||
pass
|
||||
class AudioPauseCb(ctypes.c_void_p):
|
||||
"""Callback prototype for audio pause.
|
||||
\note The pause callback is never called if the audio is already paused.
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
\param pts time stamp of the pause request (should be elapsed already)
|
||||
"""
|
||||
pass
|
||||
class AudioResumeCb(ctypes.c_void_p):
|
||||
"""Callback prototype for audio resumption (i.e. restart from pause).
|
||||
\note The resume callback is never called if the audio is not paused.
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
\param pts time stamp of the resumption request (should be elapsed already)
|
||||
"""
|
||||
pass
|
||||
class AudioFlushCb(ctypes.c_void_p):
|
||||
"""Callback prototype for audio buffer flush
|
||||
(i.e. discard all pending buffers and stop playback as soon as possible).
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
"""
|
||||
pass
|
||||
class AudioDrainCb(ctypes.c_void_p):
|
||||
"""Callback prototype for audio buffer drain
|
||||
(i.e. wait for pending buffers to be played).
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
"""
|
||||
pass
|
||||
class AudioSetVolumeCb(ctypes.c_void_p):
|
||||
"""Callback prototype for audio volume change.
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
\param volume software volume (1. = nominal, 0. = mute)
|
||||
\param mute muted flag
|
||||
"""
|
||||
pass
|
||||
class AudioSetupCb(ctypes.c_void_p):
|
||||
"""Callback prototype to setup the audio playback.
|
||||
This is called when the media player needs to create a new audio output.
|
||||
\param opaque pointer to the data pointer passed to
|
||||
L{libvlc_audio_set_callbacks}() [IN/OUT]
|
||||
\param format 4 bytes sample format [IN/OUT]
|
||||
\param rate sample rate [IN/OUT]
|
||||
\param channels channels count [IN/OUT]
|
||||
\return 0 on success, anything else to skip audio playback
|
||||
"""
|
||||
pass
|
||||
class AudioCleanupCb(ctypes.c_void_p):
|
||||
"""Callback prototype for audio playback cleanup.
|
||||
This is called when the media player no longer needs an audio output.
|
||||
\param opaque data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
"""
|
||||
pass
|
||||
class CallbackDecorators(object):
|
||||
"Class holding various method decorators for callback functions."
|
||||
Callback = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p)
|
||||
Callback.__doc__ = '''Callback function notification
|
||||
\param p_event the event triggering the callback
|
||||
'''
|
||||
LogCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int, ctypes.c_char_p, ctypes.c_void_p)
|
||||
LogCb.__doc__ = '''Callback prototype for LibVLC log message handler.
|
||||
\param data data pointer as given to L{libvlc_log_subscribe}()
|
||||
\param level message level (@ref enum libvlc_log_level)
|
||||
\param fmt printf() format string (as defined by ISO C11)
|
||||
\param args variable argument list for the format
|
||||
\note Log message handlers <b>must</b> be thread-safe.
|
||||
'''
|
||||
VideoUnlockCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ListPOINTER(ctypes.c_void_p))
|
||||
VideoUnlockCb.__doc__ = '''Callback prototype to unlock a picture buffer.
|
||||
When the video frame decoding is complete, the unlock callback is invoked.
|
||||
This callback might not be needed at all. It is only an indication that the
|
||||
application can now read the pixel values if it needs to.
|
||||
\warning A picture buffer is unlocked after the picture is decoded,
|
||||
but before the picture is displayed.
|
||||
\param opaque private pointer as passed to libvlc_video_set_callbacks() [IN]
|
||||
\param picture private pointer returned from the @ref libvlc_video_lock_cb
|
||||
callback [IN]
|
||||
\param planes pixel planes as defined by the @ref libvlc_video_lock_cb
|
||||
callback (this parameter is only for convenience) [IN]
|
||||
'''
|
||||
VideoDisplayCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p)
|
||||
VideoDisplayCb.__doc__ = '''Callback prototype to display a picture.
|
||||
When the video frame needs to be shown, as determined by the media playback
|
||||
clock, the display callback is invoked.
|
||||
\param opaque private pointer as passed to libvlc_video_set_callbacks() [IN]
|
||||
\param picture private pointer returned from the @ref libvlc_video_lock_cb
|
||||
callback [IN]
|
||||
'''
|
||||
VideoFormatCb = ctypes.CFUNCTYPE(ctypes.POINTER(ctypes.c_uint), ListPOINTER(ctypes.c_void_p), ctypes.c_char_p, ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint))
|
||||
VideoFormatCb.__doc__ = '''Callback prototype to configure picture buffers format.
|
||||
This callback gets the format of the video as output by the video decoder
|
||||
and the chain of video filters (if any). It can opt to change any parameter
|
||||
as it needs. In that case, LibVLC will attempt to convert the video format
|
||||
(rescaling and chroma conversion) but these operations can be CPU intensive.
|
||||
\param opaque pointer to the private pointer passed to
|
||||
libvlc_video_set_callbacks() [IN/OUT]
|
||||
\param chroma pointer to the 4 bytes video format identifier [IN/OUT]
|
||||
\param width pointer to the pixel width [IN/OUT]
|
||||
\param height pointer to the pixel height [IN/OUT]
|
||||
\param pitches table of scanline pitches in bytes for each pixel plane
|
||||
(the table is allocated by LibVLC) [OUT]
|
||||
\param lines table of scanlines count for each plane [OUT]
|
||||
\return the number of picture buffers allocated, 0 indicates failure
|
||||
\note
|
||||
For each pixels plane, the scanline pitch must be bigger than or equal to
|
||||
the number of bytes per pixel multiplied by the pixel width.
|
||||
Similarly, the number of scanlines must be bigger than of equal to
|
||||
the pixel height.
|
||||
Furthermore, we recommend that pitches and lines be multiple of 32
|
||||
to not break assumption that might be made by various optimizations
|
||||
in the video decoders, video filters and/or video converters.
|
||||
'''
|
||||
VideoCleanupCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p)
|
||||
VideoCleanupCb.__doc__ = '''Callback prototype to configure picture buffers format.
|
||||
\param opaque private pointer as passed to libvlc_video_set_callbacks()
|
||||
(and possibly modified by @ref libvlc_video_format_cb) [IN]
|
||||
'''
|
||||
AudioPlayCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_uint, ctypes.c_int64)
|
||||
AudioPlayCb.__doc__ = '''Callback prototype for audio playback.
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
\param samples pointer to the first audio sample to play back [IN]
|
||||
\param count number of audio samples to play back
|
||||
\param pts expected play time stamp (see libvlc_delay())
|
||||
'''
|
||||
AudioPauseCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int64)
|
||||
AudioPauseCb.__doc__ = '''Callback prototype for audio pause.
|
||||
\note The pause callback is never called if the audio is already paused.
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
\param pts time stamp of the pause request (should be elapsed already)
|
||||
'''
|
||||
AudioResumeCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int64)
|
||||
AudioResumeCb.__doc__ = '''Callback prototype for audio resumption (i.e. restart from pause).
|
||||
\note The resume callback is never called if the audio is not paused.
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
\param pts time stamp of the resumption request (should be elapsed already)
|
||||
'''
|
||||
AudioFlushCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_int64)
|
||||
AudioFlushCb.__doc__ = '''Callback prototype for audio buffer flush
|
||||
(i.e. discard all pending buffers and stop playback as soon as possible).
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
'''
|
||||
AudioDrainCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p)
|
||||
AudioDrainCb.__doc__ = '''Callback prototype for audio buffer drain
|
||||
(i.e. wait for pending buffers to be played).
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
'''
|
||||
AudioSetVolumeCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_float, ctypes.c_bool)
|
||||
AudioSetVolumeCb.__doc__ = '''Callback prototype for audio volume change.
|
||||
\param data data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
\param volume software volume (1. = nominal, 0. = mute)
|
||||
\param mute muted flag
|
||||
'''
|
||||
AudioSetupCb = ctypes.CFUNCTYPE(ctypes.POINTER(ctypes.c_int), ListPOINTER(ctypes.c_void_p), ctypes.c_char_p, ctypes.POINTER(ctypes.c_uint), ctypes.POINTER(ctypes.c_uint))
|
||||
AudioSetupCb.__doc__ = '''Callback prototype to setup the audio playback.
|
||||
This is called when the media player needs to create a new audio output.
|
||||
\param opaque pointer to the data pointer passed to
|
||||
L{libvlc_audio_set_callbacks}() [IN/OUT]
|
||||
\param format 4 bytes sample format [IN/OUT]
|
||||
\param rate sample rate [IN/OUT]
|
||||
\param channels channels count [IN/OUT]
|
||||
\return 0 on success, anything else to skip audio playback
|
||||
'''
|
||||
AudioCleanupCb = ctypes.CFUNCTYPE(ctypes.c_void_p, ctypes.c_void_p)
|
||||
AudioCleanupCb.__doc__ = '''Callback prototype for audio playback cleanup.
|
||||
This is called when the media player no longer needs an audio output.
|
||||
\param opaque data pointer as passed to L{libvlc_audio_set_callbacks}() [IN]
|
||||
'''
|
||||
cb = CallbackDecorators
|
||||
# End of generated enum types #
|
||||
|
||||
# From libvlc_structures.h
|
||||
@ -995,12 +1268,6 @@ class Instance(_Ctype):
|
||||
'''
|
||||
return libvlc_add_intf(self, name)
|
||||
|
||||
def wait(self):
|
||||
'''Waits until an interface causes the instance to exit.
|
||||
You should start at least one interface first, using L{add_intf}().
|
||||
'''
|
||||
return libvlc_wait(self)
|
||||
|
||||
def set_user_agent(self, name, http):
|
||||
'''Sets the application name. LibVLC passes this as the user agent string
|
||||
when a protocol requires it.
|
||||
@ -1031,13 +1298,6 @@ class Instance(_Ctype):
|
||||
'''
|
||||
return libvlc_log_open(self)
|
||||
|
||||
def media_discoverer_new_from_name(self, psz_name):
|
||||
'''Discover media service by name.
|
||||
@param psz_name: service name.
|
||||
@return: media discover object or NULL in case of error.
|
||||
'''
|
||||
return libvlc_media_discoverer_new_from_name(self, psz_name)
|
||||
|
||||
def media_new_location(self, psz_mrl):
|
||||
'''Create a media with a certain given media resource location,
|
||||
for instance a valid URL.
|
||||
@ -1087,6 +1347,13 @@ class Instance(_Ctype):
|
||||
'''
|
||||
return libvlc_media_new_as_node(self, psz_name)
|
||||
|
||||
def media_discoverer_new_from_name(self, psz_name):
|
||||
'''Discover media service by name.
|
||||
@param psz_name: service name.
|
||||
@return: media discover object or NULL in case of error.
|
||||
'''
|
||||
return libvlc_media_discoverer_new_from_name(self, psz_name)
|
||||
|
||||
def media_library_new(self):
|
||||
'''Create an new Media Library object.
|
||||
@return: a new object or NULL on error.
|
||||
@ -1455,7 +1722,11 @@ class Media(_Ctype):
|
||||
This option will be used to determine how the media_player will
|
||||
read the media. This allows to use VLC's advanced
|
||||
reading/streaming options on a per-media basis.
|
||||
The options are detailed in vlc --long-help, for instance "--sout-all".
|
||||
The options are detailed in vlc --long-help, for instance
|
||||
"--sout-all". Note that all options are not usable on medias:
|
||||
specifically, due to architectural issues, video-related options
|
||||
such as text renderer options cannot be set on a single media. They
|
||||
must be set on the whole libvlc instance instead.
|
||||
@param ppsz_options: the options (as a string).
|
||||
'''
|
||||
return libvlc_media_add_option(self, ppsz_options)
|
||||
@ -1465,7 +1736,11 @@ class Media(_Ctype):
|
||||
This option will be used to determine how the media_player will
|
||||
read the media. This allows to use VLC's advanced
|
||||
reading/streaming options on a per-media basis.
|
||||
The options are detailed in vlc --long-help, for instance "--sout-all".
|
||||
The options are detailed in vlc --long-help, for instance
|
||||
"--sout-all". Note that all options are not usable on medias:
|
||||
specifically, due to architectural issues, video-related options
|
||||
such as text renderer options cannot be set on a single media. They
|
||||
must be set on the whole libvlc instance instead.
|
||||
@param ppsz_options: the options (as a string).
|
||||
@param i_flags: the flags for this option.
|
||||
'''
|
||||
@ -1522,7 +1797,7 @@ class Media(_Ctype):
|
||||
|
||||
def save_meta(self):
|
||||
'''Save the meta previously set.
|
||||
@return: true if the write operation was successfull.
|
||||
@return: true if the write operation was successful.
|
||||
'''
|
||||
return libvlc_media_save_meta(self)
|
||||
|
||||
@ -1608,7 +1883,7 @@ class Media(_Ctype):
|
||||
Note, you need to call L{parse}() or play the media at least once
|
||||
before calling this function.
|
||||
Not doing this will result in an empty array.
|
||||
@param tracks: address to store an allocated array of Elementary Streams descriptions (must be freed by the caller).
|
||||
@param tracks: address to store an allocated array of Elementary Streams descriptions (must be freed by the caller) [OUT].
|
||||
@return: the number of Elementary Streams.
|
||||
'''
|
||||
return libvlc_media_get_tracks_info(self)
|
||||
@ -1718,7 +1993,7 @@ class MediaList(_Ctype):
|
||||
"""Add media instance to media list.
|
||||
|
||||
The L{lock} should be held upon entering this function.
|
||||
@param p_md: a media instance or a MRL.
|
||||
@param mrl: a media instance or a MRL.
|
||||
@return: 0 on success, -1 if the media list is read-only.
|
||||
"""
|
||||
if isinstance(mrl, basestring):
|
||||
@ -2149,16 +2424,25 @@ class MediaPlayer(_Ctype):
|
||||
def video_set_format(self, chroma, width, height, pitch):
|
||||
'''Set decoded video chroma and dimensions.
|
||||
This only works in combination with libvlc_video_set_callbacks(),
|
||||
and is mutually exclusive with libvlc_video_set_format_callbacks().
|
||||
and is mutually exclusive with L{video_set_format_callbacks}().
|
||||
@param chroma: a four-characters string identifying the chroma (e.g. "RV32" or "YUYV").
|
||||
@param width: pixel width.
|
||||
@param height: pixel height.
|
||||
@param pitch: line pitch (in bytes).
|
||||
@version: LibVLC 1.1.1 or later.
|
||||
@bug: All pixel planes are expected to have the same pitch. To use the YCbCr color space with chrominance subsampling, consider using libvlc_video_set_format_callbacks() instead.
|
||||
@bug: All pixel planes are expected to have the same pitch. To use the YCbCr color space with chrominance subsampling, consider using L{video_set_format_callbacks}() instead.
|
||||
'''
|
||||
return libvlc_video_set_format(self, chroma, width, height, pitch)
|
||||
|
||||
def video_set_format_callbacks(self, setup, cleanup):
|
||||
'''Set decoded video chroma and dimensions. This only works in combination with
|
||||
libvlc_video_set_callbacks().
|
||||
@param setup: callback to select the video format (cannot be NULL).
|
||||
@param cleanup: callback to release any allocated resources (or NULL).
|
||||
@version: LibVLC 2.0.0 or later.
|
||||
'''
|
||||
return libvlc_video_set_format_callbacks(self, setup, cleanup)
|
||||
|
||||
def set_nsobject(self, drawable):
|
||||
'''Set the NSView handler where the media player should render its video output.
|
||||
Use the vout called "macosx".
|
||||
@ -2234,10 +2518,42 @@ class MediaPlayer(_Ctype):
|
||||
'''
|
||||
return libvlc_media_player_get_hwnd(self)
|
||||
|
||||
def audio_set_callbacks(self, play, pause, resume, flush, drain, opaque):
|
||||
'''Set callbacks and private data for decoded audio.
|
||||
Use L{audio_set_format}() or L{audio_set_format_callbacks}()
|
||||
to configure the decoded audio format.
|
||||
@param play: callback to play audio samples (must not be NULL).
|
||||
@param pause: callback to pause playback (or NULL to ignore).
|
||||
@param resume: callback to resume playback (or NULL to ignore).
|
||||
@param flush: callback to flush audio buffers (or NULL to ignore).
|
||||
@param drain: callback to drain audio buffers (or NULL to ignore).
|
||||
@param opaque: private pointer for the audio callbacks (as first parameter).
|
||||
@version: LibVLC 2.0.0 or later.
|
||||
'''
|
||||
return libvlc_audio_set_callbacks(self, play, pause, resume, flush, drain, opaque)
|
||||
|
||||
def audio_set_volume_callback(self, set_volume):
|
||||
'''Set callbacks and private data for decoded audio.
|
||||
Use L{audio_set_format}() or L{audio_set_format_callbacks}()
|
||||
to configure the decoded audio format.
|
||||
@param set_volume: callback to apply audio volume, or NULL to apply volume in software.
|
||||
@version: LibVLC 2.0.0 or later.
|
||||
'''
|
||||
return libvlc_audio_set_volume_callback(self, set_volume)
|
||||
|
||||
def audio_set_format_callbacks(self, setup, cleanup):
|
||||
'''Set decoded audio format. This only works in combination with
|
||||
L{audio_set_callbacks}().
|
||||
@param setup: callback to select the audio format (cannot be NULL).
|
||||
@param cleanup: callback to release any allocated resources (or NULL).
|
||||
@version: LibVLC 2.0.0 or later.
|
||||
'''
|
||||
return libvlc_audio_set_format_callbacks(self, setup, cleanup)
|
||||
|
||||
def audio_set_format(self, format, rate, channels):
|
||||
'''Set decoded audio format.
|
||||
This only works in combination with libvlc_audio_set_callbacks(),
|
||||
and is mutually exclusive with libvlc_audio_set_format_callbacks().
|
||||
This only works in combination with L{audio_set_callbacks}(),
|
||||
and is mutually exclusive with L{audio_set_format_callbacks}().
|
||||
@param format: a four-characters string identifying the sample format (e.g. "S16N" or "FL32").
|
||||
@param rate: sample rate (expressed in Hz).
|
||||
@param channels: channels count.
|
||||
@ -2797,6 +3113,30 @@ def libvlc_clearerr():
|
||||
None)
|
||||
return f()
|
||||
|
||||
def libvlc_vprinterr(fmt, ap):
|
||||
'''Sets the LibVLC error status and message for the current thread.
|
||||
Any previous error is overridden.
|
||||
@param fmt: the format string.
|
||||
@param ap: the arguments.
|
||||
@return: a nul terminated string in any case.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_vprinterr', None) or \
|
||||
_Cfunction('libvlc_vprinterr', ((1,), (1,),), None,
|
||||
ctypes.c_char_p, ctypes.c_char_p, ctypes.c_void_p)
|
||||
return f(fmt, ap)
|
||||
|
||||
def libvlc_printerr(fmt, args):
|
||||
'''Sets the LibVLC error status and message for the current thread.
|
||||
Any previous error is overridden.
|
||||
@param fmt: the format string.
|
||||
@param args: the arguments.
|
||||
@return: a nul terminated string in any case.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_printerr', None) or \
|
||||
_Cfunction('libvlc_printerr', ((1,), (1,),), None,
|
||||
ctypes.c_char_p, ctypes.c_char_p, ctypes.c_void_p)
|
||||
return f(fmt, args)
|
||||
|
||||
def libvlc_new(argc, argv):
|
||||
'''Create and initialize a libvlc instance.
|
||||
This functions accept a list of "command line" arguments similar to the
|
||||
@ -2842,16 +3182,6 @@ def libvlc_add_intf(p_instance, name):
|
||||
ctypes.c_int, Instance, ctypes.c_char_p)
|
||||
return f(p_instance, name)
|
||||
|
||||
def libvlc_wait(p_instance):
|
||||
'''Waits until an interface causes the instance to exit.
|
||||
You should start at least one interface first, using L{libvlc_add_intf}().
|
||||
@param p_instance: the instance.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_wait', None) or \
|
||||
_Cfunction('libvlc_wait', ((1,),), None,
|
||||
None, Instance)
|
||||
return f(p_instance)
|
||||
|
||||
def libvlc_set_user_agent(p_instance, name, http):
|
||||
'''Sets the application name. LibVLC passes this as the user agent string
|
||||
when a protocol requires it.
|
||||
@ -2916,7 +3246,7 @@ def libvlc_event_attach(p_event_manager, i_event_type, f_callback, user_data):
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_event_attach', None) or \
|
||||
_Cfunction('libvlc_event_attach', ((1,), (1,), (1,), (1,),), None,
|
||||
ctypes.c_int, EventManager, ctypes.c_uint, ctypes.c_void_p, ctypes.c_void_p)
|
||||
ctypes.c_int, EventManager, ctypes.c_uint, Callback, ctypes.c_void_p)
|
||||
return f(p_event_manager, i_event_type, f_callback, user_data)
|
||||
|
||||
def libvlc_event_detach(p_event_manager, i_event_type, f_callback, p_user_data):
|
||||
@ -2928,7 +3258,7 @@ def libvlc_event_detach(p_event_manager, i_event_type, f_callback, p_user_data):
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_event_detach', None) or \
|
||||
_Cfunction('libvlc_event_detach', ((1,), (1,), (1,), (1,),), None,
|
||||
None, EventManager, ctypes.c_uint, ctypes.c_void_p, ctypes.c_void_p)
|
||||
None, EventManager, ctypes.c_uint, Callback, ctypes.c_void_p)
|
||||
return f(p_event_manager, i_event_type, f_callback, p_user_data)
|
||||
|
||||
def libvlc_event_type_name(event_type):
|
||||
@ -2940,6 +3270,45 @@ def libvlc_event_type_name(event_type):
|
||||
ctypes.c_char_p, ctypes.c_uint)
|
||||
return f(event_type)
|
||||
|
||||
def libvlc_log_subscribe(sub, cb, data):
|
||||
'''Registers a logging callback to LibVLC.
|
||||
This function is thread-safe.
|
||||
@param sub: uninitialized subscriber structure.
|
||||
@param cb: callback function pointer.
|
||||
@param data: opaque data pointer for the callback function @note Some log messages (especially debug) are emitted by LibVLC while initializing, before any LibVLC instance even exists. Thus this function does not require a LibVLC instance parameter. @warning As a consequence of not depending on a LibVLC instance, all logging callbacks are shared by all LibVLC instances within the process / address space. This also enables log messages to be emitted by LibVLC components that are not specific to any given LibVLC instance. @warning Do not call this function from within a logging callback. It would trigger a dead lock.
|
||||
@version: LibVLC 2.1.0 or later.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_log_subscribe', None) or \
|
||||
_Cfunction('libvlc_log_subscribe', ((1,), (1,), (1,),), None,
|
||||
None, ctypes.c_void_p, LogCb, ctypes.c_void_p)
|
||||
return f(sub, cb, data)
|
||||
|
||||
def libvlc_log_subscribe_file(sub, stream):
|
||||
'''Registers a logging callback to a file.
|
||||
@param stream: FILE pointer opened for writing (the FILE pointer must remain valid until L{libvlc_log_unsubscribe}()).
|
||||
@version: LibVLC 2.1.0 or later.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_log_subscribe_file', None) or \
|
||||
_Cfunction('libvlc_log_subscribe_file', ((1,), (1,),), None,
|
||||
None, ctypes.c_void_p, FILE_ptr)
|
||||
return f(sub, stream)
|
||||
|
||||
def libvlc_log_unsubscribe(sub):
|
||||
'''Deregisters a logging callback from LibVLC.
|
||||
This function is thread-safe.
|
||||
@note: After (and only after) L{libvlc_log_unsubscribe}() has returned,
|
||||
LibVLC warrants that there are no more pending calls of the subscription
|
||||
callback function.
|
||||
@warning: Do not call this function from within a logging callback.
|
||||
It would trigger a dead lock.
|
||||
@param sub: initialized subscriber structure.
|
||||
@version: LibVLC 2.1.0 or later.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_log_unsubscribe', None) or \
|
||||
_Cfunction('libvlc_log_unsubscribe', ((1,),), None,
|
||||
None, ctypes.c_void_p)
|
||||
return f(sub)
|
||||
|
||||
def libvlc_get_log_verbosity(p_instance):
|
||||
'''Always returns minus one.
|
||||
This function is only provided for backward compatibility.
|
||||
@ -3088,67 +3457,6 @@ def libvlc_clock():
|
||||
ctypes.c_int64)
|
||||
return f()
|
||||
|
||||
def libvlc_media_discoverer_new_from_name(p_inst, psz_name):
|
||||
'''Discover media service by name.
|
||||
@param p_inst: libvlc instance.
|
||||
@param psz_name: service name.
|
||||
@return: media discover object or NULL in case of error.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_new_from_name', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_new_from_name', ((1,), (1,),), class_result(MediaDiscoverer),
|
||||
ctypes.c_void_p, Instance, ctypes.c_char_p)
|
||||
return f(p_inst, psz_name)
|
||||
|
||||
def libvlc_media_discoverer_release(p_mdis):
|
||||
'''Release media discover object. If the reference count reaches 0, then
|
||||
the object will be released.
|
||||
@param p_mdis: media service discover object.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_release', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_release', ((1,),), None,
|
||||
None, MediaDiscoverer)
|
||||
return f(p_mdis)
|
||||
|
||||
def libvlc_media_discoverer_localized_name(p_mdis):
|
||||
'''Get media service discover object its localized name.
|
||||
@param p_mdis: media discover object.
|
||||
@return: localized name.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_localized_name', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_localized_name', ((1,),), string_result,
|
||||
ctypes.c_void_p, MediaDiscoverer)
|
||||
return f(p_mdis)
|
||||
|
||||
def libvlc_media_discoverer_media_list(p_mdis):
|
||||
'''Get media service discover media list.
|
||||
@param p_mdis: media service discover object.
|
||||
@return: list of media items.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_media_list', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_media_list', ((1,),), class_result(MediaList),
|
||||
ctypes.c_void_p, MediaDiscoverer)
|
||||
return f(p_mdis)
|
||||
|
||||
def libvlc_media_discoverer_event_manager(p_mdis):
|
||||
'''Get event manager from media service discover object.
|
||||
@param p_mdis: media service discover object.
|
||||
@return: event manager object.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_event_manager', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_event_manager', ((1,),), class_result(EventManager),
|
||||
ctypes.c_void_p, MediaDiscoverer)
|
||||
return f(p_mdis)
|
||||
|
||||
def libvlc_media_discoverer_is_running(p_mdis):
|
||||
'''Query if media service discover object is running.
|
||||
@param p_mdis: media service discover object.
|
||||
@return: true if running, false if not \libvlc_return_bool.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_is_running', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_is_running', ((1,),), None,
|
||||
ctypes.c_int, MediaDiscoverer)
|
||||
return f(p_mdis)
|
||||
|
||||
def libvlc_media_new_location(p_instance, psz_mrl):
|
||||
'''Create a media with a certain given media resource location,
|
||||
for instance a valid URL.
|
||||
@ -3219,7 +3527,11 @@ def libvlc_media_add_option(p_md, ppsz_options):
|
||||
This option will be used to determine how the media_player will
|
||||
read the media. This allows to use VLC's advanced
|
||||
reading/streaming options on a per-media basis.
|
||||
The options are detailed in vlc --long-help, for instance "--sout-all".
|
||||
The options are detailed in vlc --long-help, for instance
|
||||
"--sout-all". Note that all options are not usable on medias:
|
||||
specifically, due to architectural issues, video-related options
|
||||
such as text renderer options cannot be set on a single media. They
|
||||
must be set on the whole libvlc instance instead.
|
||||
@param p_md: the media descriptor.
|
||||
@param ppsz_options: the options (as a string).
|
||||
'''
|
||||
@ -3233,7 +3545,11 @@ def libvlc_media_add_option_flag(p_md, ppsz_options, i_flags):
|
||||
This option will be used to determine how the media_player will
|
||||
read the media. This allows to use VLC's advanced
|
||||
reading/streaming options on a per-media basis.
|
||||
The options are detailed in vlc --long-help, for instance "--sout-all".
|
||||
The options are detailed in vlc --long-help, for instance
|
||||
"--sout-all". Note that all options are not usable on medias:
|
||||
specifically, due to architectural issues, video-related options
|
||||
such as text renderer options cannot be set on a single media. They
|
||||
must be set on the whole libvlc instance instead.
|
||||
@param p_md: the media descriptor.
|
||||
@param ppsz_options: the options (as a string).
|
||||
@param i_flags: the flags for this option.
|
||||
@ -3319,7 +3635,7 @@ def libvlc_media_set_meta(p_md, e_meta, psz_value):
|
||||
def libvlc_media_save_meta(p_md):
|
||||
'''Save the meta previously set.
|
||||
@param p_md: the media desriptor.
|
||||
@return: true if the write operation was successfull.
|
||||
@return: true if the write operation was successful.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_save_meta', None) or \
|
||||
_Cfunction('libvlc_media_save_meta', ((1,),), None,
|
||||
@ -3445,7 +3761,7 @@ def libvlc_media_get_tracks_info(p_md):
|
||||
before calling this function.
|
||||
Not doing this will result in an empty array.
|
||||
@param p_md: media descriptor object.
|
||||
@param tracks: address to store an allocated array of Elementary Streams descriptions (must be freed by the caller).
|
||||
@param tracks: address to store an allocated array of Elementary Streams descriptions (must be freed by the caller) [OUT].
|
||||
@return: the number of Elementary Streams.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_get_tracks_info', None) or \
|
||||
@ -3453,6 +3769,67 @@ def libvlc_media_get_tracks_info(p_md):
|
||||
ctypes.c_int, Media, ctypes.POINTER(ctypes.c_void_p))
|
||||
return f(p_md)
|
||||
|
||||
def libvlc_media_discoverer_new_from_name(p_inst, psz_name):
|
||||
'''Discover media service by name.
|
||||
@param p_inst: libvlc instance.
|
||||
@param psz_name: service name.
|
||||
@return: media discover object or NULL in case of error.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_new_from_name', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_new_from_name', ((1,), (1,),), class_result(MediaDiscoverer),
|
||||
ctypes.c_void_p, Instance, ctypes.c_char_p)
|
||||
return f(p_inst, psz_name)
|
||||
|
||||
def libvlc_media_discoverer_release(p_mdis):
|
||||
'''Release media discover object. If the reference count reaches 0, then
|
||||
the object will be released.
|
||||
@param p_mdis: media service discover object.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_release', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_release', ((1,),), None,
|
||||
None, MediaDiscoverer)
|
||||
return f(p_mdis)
|
||||
|
||||
def libvlc_media_discoverer_localized_name(p_mdis):
|
||||
'''Get media service discover object its localized name.
|
||||
@param p_mdis: media discover object.
|
||||
@return: localized name.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_localized_name', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_localized_name', ((1,),), string_result,
|
||||
ctypes.c_void_p, MediaDiscoverer)
|
||||
return f(p_mdis)
|
||||
|
||||
def libvlc_media_discoverer_media_list(p_mdis):
|
||||
'''Get media service discover media list.
|
||||
@param p_mdis: media service discover object.
|
||||
@return: list of media items.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_media_list', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_media_list', ((1,),), class_result(MediaList),
|
||||
ctypes.c_void_p, MediaDiscoverer)
|
||||
return f(p_mdis)
|
||||
|
||||
def libvlc_media_discoverer_event_manager(p_mdis):
|
||||
'''Get event manager from media service discover object.
|
||||
@param p_mdis: media service discover object.
|
||||
@return: event manager object.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_event_manager', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_event_manager', ((1,),), class_result(EventManager),
|
||||
ctypes.c_void_p, MediaDiscoverer)
|
||||
return f(p_mdis)
|
||||
|
||||
def libvlc_media_discoverer_is_running(p_mdis):
|
||||
'''Query if media service discover object is running.
|
||||
@param p_mdis: media service discover object.
|
||||
@return: true if running, false if not \libvlc_return_bool.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_media_discoverer_is_running', None) or \
|
||||
_Cfunction('libvlc_media_discoverer_is_running', ((1,),), None,
|
||||
ctypes.c_int, MediaDiscoverer)
|
||||
return f(p_mdis)
|
||||
|
||||
def libvlc_media_library_new(p_instance):
|
||||
'''Create an new Media Library object.
|
||||
@param p_instance: the libvlc instance.
|
||||
@ -3958,20 +4335,33 @@ def libvlc_media_player_stop(p_mi):
|
||||
def libvlc_video_set_format(mp, chroma, width, height, pitch):
|
||||
'''Set decoded video chroma and dimensions.
|
||||
This only works in combination with libvlc_video_set_callbacks(),
|
||||
and is mutually exclusive with libvlc_video_set_format_callbacks().
|
||||
and is mutually exclusive with L{libvlc_video_set_format_callbacks}().
|
||||
@param mp: the media player.
|
||||
@param chroma: a four-characters string identifying the chroma (e.g. "RV32" or "YUYV").
|
||||
@param width: pixel width.
|
||||
@param height: pixel height.
|
||||
@param pitch: line pitch (in bytes).
|
||||
@version: LibVLC 1.1.1 or later.
|
||||
@bug: All pixel planes are expected to have the same pitch. To use the YCbCr color space with chrominance subsampling, consider using libvlc_video_set_format_callbacks() instead.
|
||||
@bug: All pixel planes are expected to have the same pitch. To use the YCbCr color space with chrominance subsampling, consider using L{libvlc_video_set_format_callbacks}() instead.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_video_set_format', None) or \
|
||||
_Cfunction('libvlc_video_set_format', ((1,), (1,), (1,), (1,), (1,),), None,
|
||||
None, MediaPlayer, ctypes.c_char_p, ctypes.c_uint, ctypes.c_uint, ctypes.c_uint)
|
||||
return f(mp, chroma, width, height, pitch)
|
||||
|
||||
def libvlc_video_set_format_callbacks(mp, setup, cleanup):
|
||||
'''Set decoded video chroma and dimensions. This only works in combination with
|
||||
libvlc_video_set_callbacks().
|
||||
@param mp: the media player.
|
||||
@param setup: callback to select the video format (cannot be NULL).
|
||||
@param cleanup: callback to release any allocated resources (or NULL).
|
||||
@version: LibVLC 2.0.0 or later.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_video_set_format_callbacks', None) or \
|
||||
_Cfunction('libvlc_video_set_format_callbacks', ((1,), (1,), (1,),), None,
|
||||
None, MediaPlayer, VideoFormatCb, VideoCleanupCb)
|
||||
return f(mp, setup, cleanup)
|
||||
|
||||
def libvlc_media_player_set_nsobject(p_mi, drawable):
|
||||
'''Set the NSView handler where the media player should render its video output.
|
||||
Use the vout called "macosx".
|
||||
@ -4087,10 +4477,54 @@ def libvlc_media_player_get_hwnd(p_mi):
|
||||
ctypes.c_void_p, MediaPlayer)
|
||||
return f(p_mi)
|
||||
|
||||
def libvlc_audio_set_callbacks(mp, play, pause, resume, flush, drain, opaque):
|
||||
'''Set callbacks and private data for decoded audio.
|
||||
Use L{libvlc_audio_set_format}() or L{libvlc_audio_set_format_callbacks}()
|
||||
to configure the decoded audio format.
|
||||
@param mp: the media player.
|
||||
@param play: callback to play audio samples (must not be NULL).
|
||||
@param pause: callback to pause playback (or NULL to ignore).
|
||||
@param resume: callback to resume playback (or NULL to ignore).
|
||||
@param flush: callback to flush audio buffers (or NULL to ignore).
|
||||
@param drain: callback to drain audio buffers (or NULL to ignore).
|
||||
@param opaque: private pointer for the audio callbacks (as first parameter).
|
||||
@version: LibVLC 2.0.0 or later.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_audio_set_callbacks', None) or \
|
||||
_Cfunction('libvlc_audio_set_callbacks', ((1,), (1,), (1,), (1,), (1,), (1,), (1,),), None,
|
||||
None, MediaPlayer, AudioPlayCb, AudioPauseCb, AudioResumeCb, AudioFlushCb, AudioDrainCb, ctypes.c_void_p)
|
||||
return f(mp, play, pause, resume, flush, drain, opaque)
|
||||
|
||||
def libvlc_audio_set_volume_callback(mp, set_volume):
|
||||
'''Set callbacks and private data for decoded audio.
|
||||
Use L{libvlc_audio_set_format}() or L{libvlc_audio_set_format_callbacks}()
|
||||
to configure the decoded audio format.
|
||||
@param mp: the media player.
|
||||
@param set_volume: callback to apply audio volume, or NULL to apply volume in software.
|
||||
@version: LibVLC 2.0.0 or later.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_audio_set_volume_callback', None) or \
|
||||
_Cfunction('libvlc_audio_set_volume_callback', ((1,), (1,),), None,
|
||||
None, MediaPlayer, AudioSetVolumeCb)
|
||||
return f(mp, set_volume)
|
||||
|
||||
def libvlc_audio_set_format_callbacks(mp, setup, cleanup):
|
||||
'''Set decoded audio format. This only works in combination with
|
||||
L{libvlc_audio_set_callbacks}().
|
||||
@param mp: the media player.
|
||||
@param setup: callback to select the audio format (cannot be NULL).
|
||||
@param cleanup: callback to release any allocated resources (or NULL).
|
||||
@version: LibVLC 2.0.0 or later.
|
||||
'''
|
||||
f = _Cfunctions.get('libvlc_audio_set_format_callbacks', None) or \
|
||||
_Cfunction('libvlc_audio_set_format_callbacks', ((1,), (1,), (1,),), None,
|
||||
None, MediaPlayer, AudioSetupCb, AudioCleanupCb)
|
||||
return f(mp, setup, cleanup)
|
||||
|
||||
def libvlc_audio_set_format(mp, format, rate, channels):
|
||||
'''Set decoded audio format.
|
||||
This only works in combination with libvlc_audio_set_callbacks(),
|
||||
and is mutually exclusive with libvlc_audio_set_format_callbacks().
|
||||
This only works in combination with L{libvlc_audio_set_callbacks}(),
|
||||
and is mutually exclusive with L{libvlc_audio_set_format_callbacks}().
|
||||
@param mp: the media player.
|
||||
@param format: a four-characters string identifying the sample format (e.g. "S16N" or "FL32").
|
||||
@param rate: sample rate (expressed in Hz).
|
||||
@ -5394,17 +5828,11 @@ def libvlc_vlm_get_event_manager(p_instance):
|
||||
return f(p_instance)
|
||||
|
||||
|
||||
# 8 function(s) blacklisted:
|
||||
# libvlc_audio_set_callbacks
|
||||
# libvlc_audio_set_format_callbacks
|
||||
# libvlc_audio_set_volume_callback
|
||||
# libvlc_printerr
|
||||
# 2 function(s) blacklisted:
|
||||
# libvlc_set_exit_handler
|
||||
# libvlc_video_set_callbacks
|
||||
# libvlc_video_set_format_callbacks
|
||||
# libvlc_vprinterr
|
||||
|
||||
# 13 function(s) not wrapped as methods:
|
||||
# 18 function(s) not wrapped as methods:
|
||||
# libvlc_audio_output_list_release
|
||||
# libvlc_clearerr
|
||||
# libvlc_clock
|
||||
@ -5414,10 +5842,15 @@ def libvlc_vlm_get_event_manager(p_instance):
|
||||
# libvlc_get_changeset
|
||||
# libvlc_get_compiler
|
||||
# libvlc_get_version
|
||||
# libvlc_log_subscribe
|
||||
# libvlc_log_subscribe_file
|
||||
# libvlc_log_unsubscribe
|
||||
# libvlc_module_description_list_release
|
||||
# libvlc_new
|
||||
# libvlc_printerr
|
||||
# libvlc_track_description_list_release
|
||||
# libvlc_track_description_release
|
||||
# libvlc_vprinterr
|
||||
|
||||
# Start of footer.py #
|
||||
|
||||
|
@ -535,6 +535,7 @@ class ThemeManager(QtGui.QWidget):
|
||||
zip = None
|
||||
out_file = None
|
||||
file_xml = None
|
||||
abort_import = True
|
||||
try:
|
||||
zip = zipfile.ZipFile(file_name)
|
||||
xml_file = filter(lambda name:
|
||||
|
@ -515,6 +515,7 @@ class SongImportForm(OpenLPWizard):
|
||||
self.formatWidgets[format][u'importWidget'] = importWidget
|
||||
return importWidget
|
||||
|
||||
|
||||
class SongImportSourcePage(QtGui.QWizardPage):
|
||||
"""
|
||||
Subclass of QtGui.QWizardPage to override isComplete() for Source Page.
|
||||
|
@ -66,6 +66,7 @@ except ImportError:
|
||||
log.exception('Error importing %s', 'OooImport')
|
||||
HAS_OOO = False
|
||||
|
||||
|
||||
class SongFormatSelect(object):
|
||||
"""
|
||||
This is a special enumeration class listing available file selection modes.
|
||||
@ -74,6 +75,7 @@ class SongFormatSelect(object):
|
||||
MultipleFiles = 1
|
||||
SingleFolder = 2
|
||||
|
||||
|
||||
class SongFormat(object):
|
||||
"""
|
||||
This is a special static class that holds an enumeration of the various
|
||||
@ -84,8 +86,10 @@ class SongFormat(object):
|
||||
|
||||
``u'class'``
|
||||
Import class, e.g. ``OpenLyricsImport``
|
||||
|
||||
``u'name'``
|
||||
Name of the format, e.g. ``u'OpenLyrics'``
|
||||
|
||||
``u'prefix'``
|
||||
Prefix for Qt objects. Use mixedCase, e.g. ``u'openLyrics'``
|
||||
See ``SongImportForm.addFileSelectItem()``
|
||||
@ -94,11 +98,14 @@ class SongFormat(object):
|
||||
|
||||
``u'canDisable'``
|
||||
Whether song format importer is disablable.
|
||||
|
||||
``u'availability'``
|
||||
Whether song format importer is available.
|
||||
|
||||
``u'selectMode'``
|
||||
Whether format accepts single file, multiple files, or single folder
|
||||
(as per ``SongFormatSelect`` options).
|
||||
|
||||
``u'filter'``
|
||||
File extension filter for ``QFileDialog``.
|
||||
|
||||
@ -106,12 +113,16 @@ class SongFormat(object):
|
||||
|
||||
``u'comboBoxText'``
|
||||
Combo box selector (default value is the format's ``u'name'``).
|
||||
|
||||
``u'disabledLabelText'``
|
||||
Required for disablable song formats.
|
||||
|
||||
``u'getFilesTitle'``
|
||||
Title for ``QFileDialog`` (default includes the format's ``u'name'``).
|
||||
|
||||
``u'invalidSourceMsg'``
|
||||
Message displayed if ``isValidSource()`` returns ``False``.
|
||||
|
||||
``u'descriptionText'``
|
||||
Short description (1-2 lines) about the song format.
|
||||
"""
|
||||
@ -313,7 +324,7 @@ class SongFormat(object):
|
||||
SongFormat.WordsOfWorship,
|
||||
SongFormat.ZionWorx
|
||||
]
|
||||
|
||||
|
||||
@staticmethod
|
||||
def get(format, *attributes):
|
||||
"""
|
||||
@ -326,6 +337,7 @@ class SongFormat(object):
|
||||
Zero or more song format attributes from SongFormat.
|
||||
|
||||
Return type depends on number of supplied attributes:
|
||||
|
||||
:0: Return dict containing all defined attributes for the format.
|
||||
:1: Return the attribute value.
|
||||
:>1: Return tuple of requested attribute values.
|
||||
|
@ -195,6 +195,7 @@ class SongsPlugin(Plugin):
|
||||
|
||||
def importSongs(self, format, **kwargs):
|
||||
class_ = SongFormat.get(format, u'class')
|
||||
kwargs[u'plugin'] = self
|
||||
importer = class_(self.manager, **kwargs)
|
||||
importer.register(self.mediaItem.importWizard)
|
||||
return importer
|
||||
|
Loading…
Reference in New Issue
Block a user