2007-12-16 18:36:01 +01:00
|
|
|
/*****************************************************************************
|
2008-05-08 17:55:18 +02:00
|
|
|
* vlc_plugin.h : Macros used from within a module.
|
2007-12-16 18:36:01 +01:00
|
|
|
*****************************************************************************
|
LGPL
Re-license almost all of libVLC and libVLCcore to LGPLv2.1+
This move was authorized by the developers, either:
- by e-mail,
- by vote at the VideoLAN Dev Days 2011,
- on the license website,
- in a contract, oral or written.
No objection was raised, so far.
The developers agreeing are:
Justus Piater
Alexis Ballier
Alexander Bethke
Mohammed Adnène Trojette
Alex Converse
Alexey Sokolov
Alexis de Lattre
Andre Pang
Anthony Loiseau
Cyril Deguet
André Weber
Boris Dorès
Brieuc Jeunhomme
Benjamin Drung
Hugo Beauzée-Luyssen
Benoit Steiner
Benjamin Pracht
Bernie Purcell
Przemyslaw Fiala
Arnaud de Bossoreille de Ribou
Brad Smith
Nick Briggs
Christopher Rath
Christophe Courtaut
Christopher Mueller
Clement Chesnin
Andres Krapf
Damien Fouilleul
David Flynn
Sebastien Zwickert
Antoine Cellerier
Jérôme Decoodt
Jérome Decoodt
Dylan Yudaken
Eduard Babayan
Eugenio Jarosiewicz
Elliot Murphy
Eric Petit
Erwan Tulou
Etienne Membrives
Ludovic Fauvet
Fabio Ritrovato
Tobias Güntner
Jakub Wieczorek
Frédéric Crozat
Francois Cartegnie
Laurent Aimar
Florian G. Pflug
Felix Paul Kühne
Frank Enderle
Rafaël Carré
Simon Latapie
Gildas Bazin
Geoffroy Couprie
Julien / Gellule
Gildas Bazin
Arnaud Schauly
Toralf Niebuhr
Vicente Jimenez Aguilar
Derk-Jan Hartman
Henri Fallon
Ilkka Ollakka
Olivier Teulière
Rémi Duraffort
Jakob Leben
Jean-Baptiste Kempf
Jean-Paul Saman
Jean-Philippe Grimaldi
Jean-François Massol
Gaël Hendryckx
Jakob Leben
Jean-Marc Dressler
Jai Menon
Johan Bilien
Johann Ransay
Joris van Rooij
JP Dinger
Jean-Philippe André
Adrien Grand
Juha Jeronen
Juho Vähä-Herttua
Kaarlo Raiha
Kaarlo Raiha
Kamil Baldyga
Keary Griffin
Ken Self
KO Myung-Hun
Pierre Ynard
Filippo Carone
Loïc Minier
Luca Barbato
Lucas C. Villa Real
Lukas Durfina
Adrien Maglo
Marc Ariberti
Mark Lee
Mark Moriarty
Martin Storsjö
Christophe Massiot
Michel Kaempf
Marian Ďurkovič
Mirsal Ennaime
Carlo Calabrò
Damien Lucas
Naohiro Koriyama
Basos G
Pierre Baillet
Vincent Penquerc'h
Olivier Aubert
Pankaj Yadav
Paul Corke
Pierre d'Herbemont
Philippe Morin
Antoine Lejeune
Michael Ploujnikov
Jean-Marc Dressler
Michael Hanselmann
Rafaël Carré
Ramiro Polla
Rémi Denis-Courmont
Renaud Dartus
Richard Shepherd
Faustino Osuna
Arnaud Vallat
Rob Jonson
Robert Jedrzejczyk
Steve Lhomme
Rocky Bernstein
Romain Goyet
Rov Juvano
Sam Hocevar
Martin T. H. Sandsmark
Sebastian Birk
Sébastien Escudier
Vincent Seguin
Fabio Ritrovato
Sigmund Augdal Helberg
Casian Andrei
Srikanth Raju
Hannes Domani
Stéphane Borel
Stephan Krempel
Stephan Assmus
Tony Castley
Pavlov Konstantin
Eric Petit
Tanguy Krotoff
Dennis van Amerongen
Michel Lespinasse
Can Wu
Xavier Marchesini
Sébastien Toque
Christophe Mutricy
Yoann Peronneau
Yohann Martineau
Yuval Tze
Scott Caudle
Clément Stenac
It is possible, that some minor piece of code was badly tracked, for
some reasons (SVN, mainly) or that some small developers did not answer.
However, as an "œuvre collective", defined as in "CPI 113-2 alinéa 3",
and seeing "Cour. Cass. 17 Mai 1978", and seeing that the editor and
the very vast majority of developers have agreed (> 99.99% of the code,
> 99% of developers), we are fine here.
2011-11-27 21:44:15 +01:00
|
|
|
* Copyright (C) 2001-2006 VLC authors and VideoLAN
|
2009-01-27 20:05:31 +01:00
|
|
|
* Copyright © 2007-2009 Rémi Denis-Courmont
|
2008-05-08 17:55:18 +02:00
|
|
|
*
|
|
|
|
* Authors: Samuel Hocevar <sam@zoy.org>
|
2007-12-16 18:36:01 +01:00
|
|
|
*
|
LGPL
Re-license almost all of libVLC and libVLCcore to LGPLv2.1+
This move was authorized by the developers, either:
- by e-mail,
- by vote at the VideoLAN Dev Days 2011,
- on the license website,
- in a contract, oral or written.
No objection was raised, so far.
The developers agreeing are:
Justus Piater
Alexis Ballier
Alexander Bethke
Mohammed Adnène Trojette
Alex Converse
Alexey Sokolov
Alexis de Lattre
Andre Pang
Anthony Loiseau
Cyril Deguet
André Weber
Boris Dorès
Brieuc Jeunhomme
Benjamin Drung
Hugo Beauzée-Luyssen
Benoit Steiner
Benjamin Pracht
Bernie Purcell
Przemyslaw Fiala
Arnaud de Bossoreille de Ribou
Brad Smith
Nick Briggs
Christopher Rath
Christophe Courtaut
Christopher Mueller
Clement Chesnin
Andres Krapf
Damien Fouilleul
David Flynn
Sebastien Zwickert
Antoine Cellerier
Jérôme Decoodt
Jérome Decoodt
Dylan Yudaken
Eduard Babayan
Eugenio Jarosiewicz
Elliot Murphy
Eric Petit
Erwan Tulou
Etienne Membrives
Ludovic Fauvet
Fabio Ritrovato
Tobias Güntner
Jakub Wieczorek
Frédéric Crozat
Francois Cartegnie
Laurent Aimar
Florian G. Pflug
Felix Paul Kühne
Frank Enderle
Rafaël Carré
Simon Latapie
Gildas Bazin
Geoffroy Couprie
Julien / Gellule
Gildas Bazin
Arnaud Schauly
Toralf Niebuhr
Vicente Jimenez Aguilar
Derk-Jan Hartman
Henri Fallon
Ilkka Ollakka
Olivier Teulière
Rémi Duraffort
Jakob Leben
Jean-Baptiste Kempf
Jean-Paul Saman
Jean-Philippe Grimaldi
Jean-François Massol
Gaël Hendryckx
Jakob Leben
Jean-Marc Dressler
Jai Menon
Johan Bilien
Johann Ransay
Joris van Rooij
JP Dinger
Jean-Philippe André
Adrien Grand
Juha Jeronen
Juho Vähä-Herttua
Kaarlo Raiha
Kaarlo Raiha
Kamil Baldyga
Keary Griffin
Ken Self
KO Myung-Hun
Pierre Ynard
Filippo Carone
Loïc Minier
Luca Barbato
Lucas C. Villa Real
Lukas Durfina
Adrien Maglo
Marc Ariberti
Mark Lee
Mark Moriarty
Martin Storsjö
Christophe Massiot
Michel Kaempf
Marian Ďurkovič
Mirsal Ennaime
Carlo Calabrò
Damien Lucas
Naohiro Koriyama
Basos G
Pierre Baillet
Vincent Penquerc'h
Olivier Aubert
Pankaj Yadav
Paul Corke
Pierre d'Herbemont
Philippe Morin
Antoine Lejeune
Michael Ploujnikov
Jean-Marc Dressler
Michael Hanselmann
Rafaël Carré
Ramiro Polla
Rémi Denis-Courmont
Renaud Dartus
Richard Shepherd
Faustino Osuna
Arnaud Vallat
Rob Jonson
Robert Jedrzejczyk
Steve Lhomme
Rocky Bernstein
Romain Goyet
Rov Juvano
Sam Hocevar
Martin T. H. Sandsmark
Sebastian Birk
Sébastien Escudier
Vincent Seguin
Fabio Ritrovato
Sigmund Augdal Helberg
Casian Andrei
Srikanth Raju
Hannes Domani
Stéphane Borel
Stephan Krempel
Stephan Assmus
Tony Castley
Pavlov Konstantin
Eric Petit
Tanguy Krotoff
Dennis van Amerongen
Michel Lespinasse
Can Wu
Xavier Marchesini
Sébastien Toque
Christophe Mutricy
Yoann Peronneau
Yohann Martineau
Yuval Tze
Scott Caudle
Clément Stenac
It is possible, that some minor piece of code was badly tracked, for
some reasons (SVN, mainly) or that some small developers did not answer.
However, as an "œuvre collective", defined as in "CPI 113-2 alinéa 3",
and seeing "Cour. Cass. 17 Mai 1978", and seeing that the editor and
the very vast majority of developers have agreed (> 99.99% of the code,
> 99% of developers), we are fine here.
2011-11-27 21:44:15 +01:00
|
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
|
|
* under the terms of the GNU Lesser General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2.1 of the License, or
|
2007-12-16 18:36:01 +01:00
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
LGPL
Re-license almost all of libVLC and libVLCcore to LGPLv2.1+
This move was authorized by the developers, either:
- by e-mail,
- by vote at the VideoLAN Dev Days 2011,
- on the license website,
- in a contract, oral or written.
No objection was raised, so far.
The developers agreeing are:
Justus Piater
Alexis Ballier
Alexander Bethke
Mohammed Adnène Trojette
Alex Converse
Alexey Sokolov
Alexis de Lattre
Andre Pang
Anthony Loiseau
Cyril Deguet
André Weber
Boris Dorès
Brieuc Jeunhomme
Benjamin Drung
Hugo Beauzée-Luyssen
Benoit Steiner
Benjamin Pracht
Bernie Purcell
Przemyslaw Fiala
Arnaud de Bossoreille de Ribou
Brad Smith
Nick Briggs
Christopher Rath
Christophe Courtaut
Christopher Mueller
Clement Chesnin
Andres Krapf
Damien Fouilleul
David Flynn
Sebastien Zwickert
Antoine Cellerier
Jérôme Decoodt
Jérome Decoodt
Dylan Yudaken
Eduard Babayan
Eugenio Jarosiewicz
Elliot Murphy
Eric Petit
Erwan Tulou
Etienne Membrives
Ludovic Fauvet
Fabio Ritrovato
Tobias Güntner
Jakub Wieczorek
Frédéric Crozat
Francois Cartegnie
Laurent Aimar
Florian G. Pflug
Felix Paul Kühne
Frank Enderle
Rafaël Carré
Simon Latapie
Gildas Bazin
Geoffroy Couprie
Julien / Gellule
Gildas Bazin
Arnaud Schauly
Toralf Niebuhr
Vicente Jimenez Aguilar
Derk-Jan Hartman
Henri Fallon
Ilkka Ollakka
Olivier Teulière
Rémi Duraffort
Jakob Leben
Jean-Baptiste Kempf
Jean-Paul Saman
Jean-Philippe Grimaldi
Jean-François Massol
Gaël Hendryckx
Jakob Leben
Jean-Marc Dressler
Jai Menon
Johan Bilien
Johann Ransay
Joris van Rooij
JP Dinger
Jean-Philippe André
Adrien Grand
Juha Jeronen
Juho Vähä-Herttua
Kaarlo Raiha
Kaarlo Raiha
Kamil Baldyga
Keary Griffin
Ken Self
KO Myung-Hun
Pierre Ynard
Filippo Carone
Loïc Minier
Luca Barbato
Lucas C. Villa Real
Lukas Durfina
Adrien Maglo
Marc Ariberti
Mark Lee
Mark Moriarty
Martin Storsjö
Christophe Massiot
Michel Kaempf
Marian Ďurkovič
Mirsal Ennaime
Carlo Calabrò
Damien Lucas
Naohiro Koriyama
Basos G
Pierre Baillet
Vincent Penquerc'h
Olivier Aubert
Pankaj Yadav
Paul Corke
Pierre d'Herbemont
Philippe Morin
Antoine Lejeune
Michael Ploujnikov
Jean-Marc Dressler
Michael Hanselmann
Rafaël Carré
Ramiro Polla
Rémi Denis-Courmont
Renaud Dartus
Richard Shepherd
Faustino Osuna
Arnaud Vallat
Rob Jonson
Robert Jedrzejczyk
Steve Lhomme
Rocky Bernstein
Romain Goyet
Rov Juvano
Sam Hocevar
Martin T. H. Sandsmark
Sebastian Birk
Sébastien Escudier
Vincent Seguin
Fabio Ritrovato
Sigmund Augdal Helberg
Casian Andrei
Srikanth Raju
Hannes Domani
Stéphane Borel
Stephan Krempel
Stephan Assmus
Tony Castley
Pavlov Konstantin
Eric Petit
Tanguy Krotoff
Dennis van Amerongen
Michel Lespinasse
Can Wu
Xavier Marchesini
Sébastien Toque
Christophe Mutricy
Yoann Peronneau
Yohann Martineau
Yuval Tze
Scott Caudle
Clément Stenac
It is possible, that some minor piece of code was badly tracked, for
some reasons (SVN, mainly) or that some small developers did not answer.
However, as an "œuvre collective", defined as in "CPI 113-2 alinéa 3",
and seeing "Cour. Cass. 17 Mai 1978", and seeing that the editor and
the very vast majority of developers have agreed (> 99.99% of the code,
> 99% of developers), we are fine here.
2011-11-27 21:44:15 +01:00
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Lesser General Public License for more details.
|
2007-12-16 18:36:01 +01:00
|
|
|
*
|
LGPL
Re-license almost all of libVLC and libVLCcore to LGPLv2.1+
This move was authorized by the developers, either:
- by e-mail,
- by vote at the VideoLAN Dev Days 2011,
- on the license website,
- in a contract, oral or written.
No objection was raised, so far.
The developers agreeing are:
Justus Piater
Alexis Ballier
Alexander Bethke
Mohammed Adnène Trojette
Alex Converse
Alexey Sokolov
Alexis de Lattre
Andre Pang
Anthony Loiseau
Cyril Deguet
André Weber
Boris Dorès
Brieuc Jeunhomme
Benjamin Drung
Hugo Beauzée-Luyssen
Benoit Steiner
Benjamin Pracht
Bernie Purcell
Przemyslaw Fiala
Arnaud de Bossoreille de Ribou
Brad Smith
Nick Briggs
Christopher Rath
Christophe Courtaut
Christopher Mueller
Clement Chesnin
Andres Krapf
Damien Fouilleul
David Flynn
Sebastien Zwickert
Antoine Cellerier
Jérôme Decoodt
Jérome Decoodt
Dylan Yudaken
Eduard Babayan
Eugenio Jarosiewicz
Elliot Murphy
Eric Petit
Erwan Tulou
Etienne Membrives
Ludovic Fauvet
Fabio Ritrovato
Tobias Güntner
Jakub Wieczorek
Frédéric Crozat
Francois Cartegnie
Laurent Aimar
Florian G. Pflug
Felix Paul Kühne
Frank Enderle
Rafaël Carré
Simon Latapie
Gildas Bazin
Geoffroy Couprie
Julien / Gellule
Gildas Bazin
Arnaud Schauly
Toralf Niebuhr
Vicente Jimenez Aguilar
Derk-Jan Hartman
Henri Fallon
Ilkka Ollakka
Olivier Teulière
Rémi Duraffort
Jakob Leben
Jean-Baptiste Kempf
Jean-Paul Saman
Jean-Philippe Grimaldi
Jean-François Massol
Gaël Hendryckx
Jakob Leben
Jean-Marc Dressler
Jai Menon
Johan Bilien
Johann Ransay
Joris van Rooij
JP Dinger
Jean-Philippe André
Adrien Grand
Juha Jeronen
Juho Vähä-Herttua
Kaarlo Raiha
Kaarlo Raiha
Kamil Baldyga
Keary Griffin
Ken Self
KO Myung-Hun
Pierre Ynard
Filippo Carone
Loïc Minier
Luca Barbato
Lucas C. Villa Real
Lukas Durfina
Adrien Maglo
Marc Ariberti
Mark Lee
Mark Moriarty
Martin Storsjö
Christophe Massiot
Michel Kaempf
Marian Ďurkovič
Mirsal Ennaime
Carlo Calabrò
Damien Lucas
Naohiro Koriyama
Basos G
Pierre Baillet
Vincent Penquerc'h
Olivier Aubert
Pankaj Yadav
Paul Corke
Pierre d'Herbemont
Philippe Morin
Antoine Lejeune
Michael Ploujnikov
Jean-Marc Dressler
Michael Hanselmann
Rafaël Carré
Ramiro Polla
Rémi Denis-Courmont
Renaud Dartus
Richard Shepherd
Faustino Osuna
Arnaud Vallat
Rob Jonson
Robert Jedrzejczyk
Steve Lhomme
Rocky Bernstein
Romain Goyet
Rov Juvano
Sam Hocevar
Martin T. H. Sandsmark
Sebastian Birk
Sébastien Escudier
Vincent Seguin
Fabio Ritrovato
Sigmund Augdal Helberg
Casian Andrei
Srikanth Raju
Hannes Domani
Stéphane Borel
Stephan Krempel
Stephan Assmus
Tony Castley
Pavlov Konstantin
Eric Petit
Tanguy Krotoff
Dennis van Amerongen
Michel Lespinasse
Can Wu
Xavier Marchesini
Sébastien Toque
Christophe Mutricy
Yoann Peronneau
Yohann Martineau
Yuval Tze
Scott Caudle
Clément Stenac
It is possible, that some minor piece of code was badly tracked, for
some reasons (SVN, mainly) or that some small developers did not answer.
However, as an "œuvre collective", defined as in "CPI 113-2 alinéa 3",
and seeing "Cour. Cass. 17 Mai 1978", and seeing that the editor and
the very vast majority of developers have agreed (> 99.99% of the code,
> 99% of developers), we are fine here.
2011-11-27 21:44:15 +01:00
|
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
2007-12-16 18:36:01 +01:00
|
|
|
*****************************************************************************/
|
|
|
|
|
2008-05-08 17:55:18 +02:00
|
|
|
#ifndef LIBVLC_MODULES_MACROS_H
|
|
|
|
# define LIBVLC_MODULES_MACROS_H 1
|
|
|
|
|
2008-08-11 17:31:57 +02:00
|
|
|
/**
|
|
|
|
* \file
|
|
|
|
* This file implements plugin (module) macros used to define a vlc module.
|
|
|
|
*/
|
|
|
|
|
2008-10-29 20:13:56 +01:00
|
|
|
enum vlc_module_properties
|
|
|
|
{
|
2011-08-16 09:28:36 +02:00
|
|
|
VLC_MODULE_CREATE,
|
2009-01-27 20:17:06 +01:00
|
|
|
VLC_CONFIG_CREATE,
|
|
|
|
|
2008-10-29 20:13:56 +01:00
|
|
|
/* DO NOT EVER REMOVE, INSERT OR REPLACE ANY ITEM! It would break the ABI!
|
|
|
|
* Append new items at the end ONLY. */
|
2009-01-27 19:42:40 +01:00
|
|
|
VLC_MODULE_CPU_REQUIREMENT=0x100,
|
2008-10-29 20:13:56 +01:00
|
|
|
VLC_MODULE_SHORTCUT,
|
|
|
|
VLC_MODULE_CAPABILITY,
|
|
|
|
VLC_MODULE_SCORE,
|
|
|
|
VLC_MODULE_CB_OPEN,
|
|
|
|
VLC_MODULE_CB_CLOSE,
|
|
|
|
VLC_MODULE_NO_UNLOAD,
|
|
|
|
VLC_MODULE_NAME,
|
|
|
|
VLC_MODULE_SHORTNAME,
|
|
|
|
VLC_MODULE_DESCRIPTION,
|
|
|
|
VLC_MODULE_HELP,
|
2009-11-10 22:23:59 +01:00
|
|
|
VLC_MODULE_TEXTDOMAIN,
|
2009-01-27 19:42:40 +01:00
|
|
|
/* Insert new VLC_MODULE_* here */
|
2008-10-29 20:13:56 +01:00
|
|
|
|
|
|
|
/* DO NOT EVER REMOVE, INSERT OR REPLACE ANY ITEM! It would break the ABI!
|
|
|
|
* Append new items at the end ONLY. */
|
2009-01-27 19:42:40 +01:00
|
|
|
VLC_CONFIG_NAME=0x1000,
|
2010-10-22 18:45:36 +02:00
|
|
|
/* command line name (args=const char *) */
|
2008-10-29 20:13:56 +01:00
|
|
|
|
|
|
|
VLC_CONFIG_VALUE,
|
|
|
|
/* actual value (args=int/double/const char *) */
|
|
|
|
|
|
|
|
VLC_CONFIG_RANGE,
|
|
|
|
/* minimum value (args=int/double/const char * twice) */
|
|
|
|
|
|
|
|
VLC_CONFIG_ADVANCED,
|
|
|
|
/* enable advanced flag (args=none) */
|
|
|
|
|
|
|
|
VLC_CONFIG_VOLATILE,
|
|
|
|
/* don't write variable to storage (args=none) */
|
|
|
|
|
2011-04-30 19:42:19 +02:00
|
|
|
VLC_CONFIG_PERSISTENT_OBSOLETE,
|
|
|
|
/* unused (ignored) */
|
2008-10-29 20:13:56 +01:00
|
|
|
|
|
|
|
VLC_CONFIG_PRIVATE,
|
|
|
|
/* hide from user (args=none) */
|
|
|
|
|
|
|
|
VLC_CONFIG_REMOVED,
|
|
|
|
/* tag as no longer supported (args=none) */
|
|
|
|
|
|
|
|
VLC_CONFIG_CAPABILITY,
|
|
|
|
/* capability for a module or list thereof (args=const char*) */
|
|
|
|
|
|
|
|
VLC_CONFIG_SHORTCUT,
|
|
|
|
/* one-character (short) command line option name (args=char) */
|
|
|
|
|
2011-10-02 14:28:57 +02:00
|
|
|
VLC_CONFIG_OLDNAME_OBSOLETE,
|
|
|
|
/* unused (ignored) */
|
2008-10-29 20:13:56 +01:00
|
|
|
|
|
|
|
VLC_CONFIG_SAFE,
|
|
|
|
/* tag as modifiable by untrusted input item "sources" (args=none) */
|
|
|
|
|
|
|
|
VLC_CONFIG_DESC,
|
|
|
|
/* description (args=const char *, const char *, const char *) */
|
|
|
|
|
2012-08-19 21:08:50 +02:00
|
|
|
VLC_CONFIG_LIST_OBSOLETE,
|
|
|
|
/* unused (ignored) */
|
2008-10-29 20:13:56 +01:00
|
|
|
|
2012-08-19 19:37:40 +02:00
|
|
|
VLC_CONFIG_ADD_ACTION_OBSOLETE,
|
|
|
|
/* unused (ignored) */
|
2009-01-27 19:42:40 +01:00
|
|
|
|
2012-08-19 21:08:50 +02:00
|
|
|
VLC_CONFIG_LIST,
|
|
|
|
/* list of suggested values
|
|
|
|
* (args=size_t, const <type> *, const char *const *) */
|
|
|
|
|
|
|
|
VLC_CONFIG_LIST_CB,
|
2012-09-06 17:20:33 +02:00
|
|
|
/* callback for suggested values
|
|
|
|
* (args=size_t (*)(vlc_object_t *, <type> **, char ***)) */
|
2012-08-19 21:08:50 +02:00
|
|
|
|
2009-01-27 19:42:40 +01:00
|
|
|
/* Insert new VLC_CONFIG_* here */
|
2008-10-29 20:13:56 +01:00
|
|
|
};
|
|
|
|
|
2012-03-20 18:22:24 +01:00
|
|
|
/* Configuration hint types */
|
|
|
|
#define CONFIG_HINT_CATEGORY 0x02 /* Start of new category */
|
|
|
|
#define CONFIG_HINT_USAGE 0x05 /* Usage information */
|
|
|
|
|
|
|
|
#define CONFIG_CATEGORY 0x06 /* Set category */
|
|
|
|
#define CONFIG_SUBCATEGORY 0x07 /* Set subcategory */
|
|
|
|
#define CONFIG_SECTION 0x08 /* Start of new section */
|
|
|
|
|
|
|
|
/* Configuration item types */
|
|
|
|
#define CONFIG_ITEM_FLOAT 0x20 /* Float option */
|
|
|
|
#define CONFIG_ITEM_INTEGER 0x40 /* Integer option */
|
|
|
|
#define CONFIG_ITEM_RGB 0x41 /* RGB color option */
|
|
|
|
#define CONFIG_ITEM_BOOL 0x60 /* Bool option */
|
|
|
|
#define CONFIG_ITEM_STRING 0x80 /* String option */
|
|
|
|
#define CONFIG_ITEM_PASSWORD 0x81 /* Password option (*) */
|
|
|
|
#define CONFIG_ITEM_KEY 0x82 /* Hot key option */
|
|
|
|
#define CONFIG_ITEM_MODULE 0x84 /* Module option */
|
|
|
|
#define CONFIG_ITEM_MODULE_CAT 0x85 /* Module option */
|
|
|
|
#define CONFIG_ITEM_MODULE_LIST 0x86 /* Module option */
|
|
|
|
#define CONFIG_ITEM_MODULE_LIST_CAT 0x87 /* Module option */
|
|
|
|
#define CONFIG_ITEM_LOADFILE 0x8C /* Read file option */
|
|
|
|
#define CONFIG_ITEM_SAVEFILE 0x8D /* Written file option */
|
|
|
|
#define CONFIG_ITEM_DIRECTORY 0x8E /* Directory option */
|
|
|
|
#define CONFIG_ITEM_FONT 0x8F /* Font option */
|
|
|
|
|
|
|
|
#define CONFIG_ITEM(x) (((x) & ~0xF) != 0)
|
|
|
|
|
|
|
|
/* Categories and subcategories */
|
|
|
|
#define CAT_INTERFACE 1
|
|
|
|
#define SUBCAT_INTERFACE_GENERAL 101
|
|
|
|
#define SUBCAT_INTERFACE_MAIN 102
|
|
|
|
#define SUBCAT_INTERFACE_CONTROL 103
|
|
|
|
#define SUBCAT_INTERFACE_HOTKEYS 104
|
|
|
|
|
|
|
|
#define CAT_AUDIO 2
|
|
|
|
#define SUBCAT_AUDIO_GENERAL 201
|
|
|
|
#define SUBCAT_AUDIO_AOUT 202
|
|
|
|
#define SUBCAT_AUDIO_AFILTER 203
|
|
|
|
#define SUBCAT_AUDIO_VISUAL 204
|
|
|
|
#define SUBCAT_AUDIO_MISC 205
|
|
|
|
|
|
|
|
#define CAT_VIDEO 3
|
|
|
|
#define SUBCAT_VIDEO_GENERAL 301
|
|
|
|
#define SUBCAT_VIDEO_VOUT 302
|
|
|
|
#define SUBCAT_VIDEO_VFILTER 303
|
|
|
|
#define SUBCAT_VIDEO_SUBPIC 305
|
|
|
|
|
|
|
|
#define CAT_INPUT 4
|
|
|
|
#define SUBCAT_INPUT_GENERAL 401
|
|
|
|
#define SUBCAT_INPUT_ACCESS 402
|
|
|
|
#define SUBCAT_INPUT_DEMUX 403
|
|
|
|
#define SUBCAT_INPUT_VCODEC 404
|
|
|
|
#define SUBCAT_INPUT_ACODEC 405
|
|
|
|
#define SUBCAT_INPUT_SCODEC 406
|
|
|
|
#define SUBCAT_INPUT_STREAM_FILTER 407
|
|
|
|
|
|
|
|
#define CAT_SOUT 5
|
|
|
|
#define SUBCAT_SOUT_GENERAL 501
|
|
|
|
#define SUBCAT_SOUT_STREAM 502
|
|
|
|
#define SUBCAT_SOUT_MUX 503
|
|
|
|
#define SUBCAT_SOUT_ACO 504
|
|
|
|
#define SUBCAT_SOUT_PACKETIZER 505
|
|
|
|
#define SUBCAT_SOUT_VOD 507
|
|
|
|
|
|
|
|
#define CAT_ADVANCED 6
|
|
|
|
#define SUBCAT_ADVANCED_MISC 602
|
|
|
|
#define SUBCAT_ADVANCED_NETWORK 603
|
|
|
|
|
|
|
|
#define CAT_PLAYLIST 7
|
|
|
|
#define SUBCAT_PLAYLIST_GENERAL 701
|
|
|
|
#define SUBCAT_PLAYLIST_SD 702
|
|
|
|
#define SUBCAT_PLAYLIST_EXPORT 703
|
|
|
|
|
|
|
|
|
2008-05-08 17:55:18 +02:00
|
|
|
/**
|
|
|
|
* Current plugin ABI version
|
|
|
|
*/
|
2014-08-17 09:32:07 +02:00
|
|
|
# define MODULE_SYMBOL 3_0_0a
|
|
|
|
# define MODULE_SUFFIX "__3_0_0a"
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
* Add a few defines. You do not want to read this section. Really.
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
/* Explanation:
|
|
|
|
*
|
2008-05-26 18:39:13 +02:00
|
|
|
* if linking a module statically, we will need:
|
2008-05-08 17:55:18 +02:00
|
|
|
* #define MODULE_FUNC( zog ) module_foo_zog
|
|
|
|
*
|
|
|
|
* this can't easily be done with the C preprocessor, thus a few ugly hacks.
|
|
|
|
*/
|
|
|
|
|
2008-05-08 18:26:30 +02:00
|
|
|
/* I need to do _this_ to change « foo bar » to « module_foo_bar » ! */
|
2008-05-08 17:55:18 +02:00
|
|
|
#define CONCATENATE( y, z ) CRUDE_HACK( y, z )
|
|
|
|
#define CRUDE_HACK( y, z ) y##__##z
|
|
|
|
|
|
|
|
/* If the module is built-in, then we need to define foo_InitModule instead
|
|
|
|
* of InitModule. Same for Activate- and DeactivateModule. */
|
|
|
|
#ifdef __PLUGIN__
|
|
|
|
# define __VLC_SYMBOL( symbol ) CONCATENATE( symbol, MODULE_SYMBOL )
|
|
|
|
#else
|
|
|
|
# define __VLC_SYMBOL( symbol ) CONCATENATE( symbol, MODULE_NAME )
|
|
|
|
#endif
|
|
|
|
|
2011-05-07 18:12:20 +02:00
|
|
|
#define CDECL_SYMBOL
|
|
|
|
#if defined (__PLUGIN__)
|
2013-06-05 15:41:18 +02:00
|
|
|
# if defined (_WIN32)
|
2008-05-08 17:55:18 +02:00
|
|
|
# define DLL_SYMBOL __declspec(dllexport)
|
2011-05-07 18:12:20 +02:00
|
|
|
# undef CDECL_SYMBOL
|
2008-05-08 17:55:18 +02:00
|
|
|
# define CDECL_SYMBOL __cdecl
|
2011-08-17 17:28:25 +02:00
|
|
|
# elif VLC_GCC_VERSION(4,0)
|
2011-05-07 18:12:20 +02:00
|
|
|
# define DLL_SYMBOL __attribute__((visibility("default")))
|
|
|
|
# else
|
|
|
|
# define DLL_SYMBOL
|
|
|
|
# endif
|
2008-05-08 17:55:18 +02:00
|
|
|
#else
|
2011-05-07 18:12:20 +02:00
|
|
|
# define DLL_SYMBOL
|
2008-05-08 17:55:18 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined( __cplusplus )
|
|
|
|
# define EXTERN_SYMBOL extern "C"
|
|
|
|
#else
|
|
|
|
# define EXTERN_SYMBOL
|
|
|
|
#endif
|
|
|
|
|
2011-08-16 14:54:31 +02:00
|
|
|
typedef int (*vlc_set_cb) (void *, void *, int, ...);
|
|
|
|
|
|
|
|
#define vlc_plugin_set(...) vlc_set (opaque, NULL, __VA_ARGS__)
|
|
|
|
#define vlc_module_set(...) vlc_set (opaque, module, __VA_ARGS__)
|
|
|
|
#define vlc_config_set(...) vlc_set (opaque, config, __VA_ARGS__)
|
|
|
|
|
2008-05-08 17:55:18 +02:00
|
|
|
/*
|
|
|
|
* InitModule: this function is called once and only once, when the module
|
|
|
|
* is looked at for the first time. We get the useful data from it, for
|
|
|
|
* instance the module name, its shortcuts, its capabilities... we also create
|
|
|
|
* a copy of its config because the module can be unloaded at any time.
|
|
|
|
*/
|
2011-08-16 08:55:30 +02:00
|
|
|
#define vlc_module_begin() \
|
|
|
|
EXTERN_SYMBOL DLL_SYMBOL \
|
2011-08-16 14:54:31 +02:00
|
|
|
int CDECL_SYMBOL __VLC_SYMBOL(vlc_entry) (vlc_set_cb, void *); \
|
2011-08-16 08:55:30 +02:00
|
|
|
EXTERN_SYMBOL DLL_SYMBOL \
|
2011-08-16 14:54:31 +02:00
|
|
|
int CDECL_SYMBOL __VLC_SYMBOL(vlc_entry) (vlc_set_cb vlc_set, void *opaque) \
|
2011-08-16 08:55:30 +02:00
|
|
|
{ \
|
2011-08-16 14:54:31 +02:00
|
|
|
module_t *module; \
|
|
|
|
module_config_t *config = NULL; \
|
|
|
|
if (vlc_plugin_set (VLC_MODULE_CREATE, &module)) \
|
2011-08-16 09:28:36 +02:00
|
|
|
goto error; \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (vlc_module_set (VLC_MODULE_NAME, (MODULE_STRING))) \
|
|
|
|
goto error;
|
2011-08-16 08:55:30 +02:00
|
|
|
|
|
|
|
#define vlc_module_end() \
|
2011-08-16 14:54:31 +02:00
|
|
|
(void) config; \
|
|
|
|
return 0; \
|
2011-08-16 08:55:30 +02:00
|
|
|
error: \
|
2011-08-16 14:54:31 +02:00
|
|
|
return -1; \
|
2011-08-16 08:55:30 +02:00
|
|
|
} \
|
|
|
|
VLC_METADATA_EXPORTS
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define add_submodule( ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (vlc_plugin_set (VLC_MODULE_CREATE, &module)) \
|
2009-01-27 20:17:06 +01:00
|
|
|
goto error;
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-06-10 20:19:05 +02:00
|
|
|
#define add_shortcut( ... ) \
|
2010-06-19 03:34:46 +02:00
|
|
|
{ \
|
|
|
|
const char *shortcuts[] = { __VA_ARGS__ }; \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (vlc_module_set (VLC_MODULE_SHORTCUT, \
|
2010-06-19 03:34:46 +02:00
|
|
|
sizeof(shortcuts)/sizeof(shortcuts[0]), shortcuts)) \
|
|
|
|
goto error; \
|
|
|
|
}
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define set_shortname( shortname ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (vlc_module_set (VLC_MODULE_SHORTNAME, (const char *)(shortname))) \
|
2008-05-27 21:31:06 +02:00
|
|
|
goto error;
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define set_description( desc ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (vlc_module_set (VLC_MODULE_DESCRIPTION, (const char *)(desc))) \
|
2008-05-27 21:31:06 +02:00
|
|
|
goto error;
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define set_help( help ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (vlc_module_set (VLC_MODULE_HELP, (const char *)(help))) \
|
2008-05-27 21:31:06 +02:00
|
|
|
goto error;
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define set_capability( cap, score ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (vlc_module_set (VLC_MODULE_CAPABILITY, (const char *)(cap)) \
|
|
|
|
|| vlc_module_set (VLC_MODULE_SCORE, (int)(score))) \
|
2008-05-27 21:31:06 +02:00
|
|
|
goto error;
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define set_callbacks( activate, deactivate ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (vlc_module_set (VLC_MODULE_CB_OPEN, activate) \
|
|
|
|
|| vlc_module_set (VLC_MODULE_CB_CLOSE, deactivate)) \
|
2008-05-27 21:31:06 +02:00
|
|
|
goto error;
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-03-13 17:18:00 +01:00
|
|
|
#define cannot_unload_broken_library( ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (vlc_module_set (VLC_MODULE_NO_UNLOAD)) \
|
2008-05-27 21:31:06 +02:00
|
|
|
goto error;
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2009-11-10 22:23:59 +01:00
|
|
|
#define set_text_domain( dom ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (vlc_plugin_set (VLC_MODULE_TEXTDOMAIN, (dom))) \
|
2009-11-10 22:23:59 +01:00
|
|
|
goto error;
|
2008-06-05 18:04:56 +02:00
|
|
|
|
2008-05-08 17:55:18 +02:00
|
|
|
/*****************************************************************************
|
|
|
|
* Macros used to build the configuration structure.
|
|
|
|
*
|
|
|
|
* Note that internally we support only 3 types of config data: int, float
|
|
|
|
* and string.
|
|
|
|
* The other types declared here just map to one of these 3 basic types but
|
|
|
|
* have the advantage of also providing very good hints to a configuration
|
|
|
|
* interface so as to make it more user friendly.
|
|
|
|
* The configuration structure also includes category hints. These hints can
|
|
|
|
* provide a configuration interface with some very useful data and again
|
|
|
|
* allow for a more user friendly interface.
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
#define add_type_inner( type ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_plugin_set (VLC_CONFIG_CREATE, (type), &config);
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define add_typedesc_inner( type, text, longtext ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_type_inner( type ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_DESC, \
|
2008-05-27 21:31:06 +02:00
|
|
|
(const char *)(text), (const char *)(longtext));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define add_typeadv_inner( type, text, longtext, advc ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_typedesc_inner( type, text, longtext ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (advc) vlc_config_set (VLC_CONFIG_ADVANCED);
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-10-22 19:11:39 +02:00
|
|
|
#define add_typename_inner( type, name, text, longtext, advc ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_typeadv_inner( type, text, longtext, advc ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_NAME, (const char *)(name));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-10-22 19:11:39 +02:00
|
|
|
#define add_string_inner( type, name, text, longtext, advc, v ) \
|
|
|
|
add_typename_inner( type, name, text, longtext, advc ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_VALUE, (const char *)(v));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-10-22 19:11:39 +02:00
|
|
|
#define add_int_inner( type, name, text, longtext, advc, v ) \
|
|
|
|
add_typename_inner( type, name, text, longtext, advc ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_VALUE, (int64_t)(v));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
|
|
|
|
#define set_category( i_id ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_type_inner( CONFIG_CATEGORY ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_VALUE, (int64_t)(i_id));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define set_subcategory( i_id ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_type_inner( CONFIG_SUBCATEGORY ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_VALUE, (int64_t)(i_id));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define set_section( text, longtext ) \
|
|
|
|
add_typedesc_inner( CONFIG_SECTION, text, longtext )
|
|
|
|
|
|
|
|
#define add_category_hint( text, longtext, advc ) \
|
|
|
|
add_typeadv_inner( CONFIG_HINT_CATEGORY, text, longtext, advc )
|
|
|
|
|
|
|
|
#define add_usage_hint( text ) \
|
|
|
|
add_typedesc_inner( CONFIG_HINT_USAGE, text, NULL )
|
|
|
|
|
2010-10-22 19:19:38 +02:00
|
|
|
#define add_string( name, value, text, longtext, advc ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_string_inner( CONFIG_ITEM_STRING, name, text, longtext, advc, \
|
2010-10-22 19:11:39 +02:00
|
|
|
value )
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-10-22 19:52:25 +02:00
|
|
|
#define add_password( name, value, text, longtext, advc ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_string_inner( CONFIG_ITEM_PASSWORD, name, text, longtext, advc, \
|
2010-10-22 19:11:39 +02:00
|
|
|
value )
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-10-22 19:56:06 +02:00
|
|
|
#define add_loadfile( name, value, text, longtext, advc ) \
|
2010-10-14 18:27:33 +02:00
|
|
|
add_string_inner( CONFIG_ITEM_LOADFILE, name, text, longtext, advc, \
|
2010-10-22 19:11:39 +02:00
|
|
|
value )
|
2010-10-14 18:27:33 +02:00
|
|
|
|
2010-10-22 19:54:03 +02:00
|
|
|
#define add_savefile( name, value, text, longtext, advc ) \
|
2010-10-14 18:27:33 +02:00
|
|
|
add_string_inner( CONFIG_ITEM_SAVEFILE, name, text, longtext, advc, \
|
2010-10-22 19:11:39 +02:00
|
|
|
value )
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-10-22 19:57:17 +02:00
|
|
|
#define add_directory( name, value, text, longtext, advc ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_string_inner( CONFIG_ITEM_DIRECTORY, name, text, longtext, advc, \
|
2010-10-22 19:11:39 +02:00
|
|
|
value )
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-10-22 19:48:41 +02:00
|
|
|
#define add_font( name, value, text, longtext, advc )\
|
2009-08-03 10:33:48 +02:00
|
|
|
add_string_inner( CONFIG_ITEM_FONT, name, text, longtext, advc, \
|
2010-10-22 19:11:39 +02:00
|
|
|
value )
|
2009-08-03 10:33:48 +02:00
|
|
|
|
2011-05-13 17:35:20 +02:00
|
|
|
#define add_module( name, psz_caps, value, text, longtext, advc ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_string_inner( CONFIG_ITEM_MODULE, name, text, longtext, advc, \
|
2010-10-22 19:11:39 +02:00
|
|
|
value ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_CAPABILITY, (const char *)(psz_caps));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2011-05-13 17:35:20 +02:00
|
|
|
#define add_module_list( name, psz_caps, value, text, longtext, advc ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_string_inner( CONFIG_ITEM_MODULE_LIST, name, text, longtext, advc, \
|
2010-10-22 19:11:39 +02:00
|
|
|
value ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_CAPABILITY, (const char *)(psz_caps));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#ifndef __PLUGIN__
|
2011-05-13 17:35:20 +02:00
|
|
|
#define add_module_cat( name, i_subcategory, value, text, longtext, advc ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_string_inner( CONFIG_ITEM_MODULE_CAT, name, text, longtext, advc, \
|
2010-10-22 19:11:39 +02:00
|
|
|
value ) \
|
2009-01-27 20:45:35 +01:00
|
|
|
change_integer_range (i_subcategory /* gruik */, 0);
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2011-05-13 17:35:20 +02:00
|
|
|
#define add_module_list_cat( name, i_subcategory, value, text, longtext, advc ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_string_inner( CONFIG_ITEM_MODULE_LIST_CAT, name, text, longtext, \
|
2010-10-22 19:11:39 +02:00
|
|
|
advc, value ) \
|
2009-01-27 20:45:35 +01:00
|
|
|
change_integer_range (i_subcategory /* gruik */, 0);
|
2008-05-08 17:55:18 +02:00
|
|
|
#endif
|
|
|
|
|
2010-10-22 20:05:50 +02:00
|
|
|
#define add_integer( name, value, text, longtext, advc ) \
|
2010-10-22 19:11:39 +02:00
|
|
|
add_int_inner( CONFIG_ITEM_INTEGER, name, text, longtext, advc, value )
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2011-06-29 22:35:58 +02:00
|
|
|
#define add_rgb( name, value, text, longtext, advc ) \
|
|
|
|
add_int_inner( CONFIG_ITEM_RGB, name, text, longtext, advc, value ) \
|
|
|
|
change_integer_range( 0, 0xFFFFFF )
|
|
|
|
|
2010-10-22 20:06:51 +02:00
|
|
|
#define add_key( name, value, text, longtext, advc ) \
|
2011-02-10 21:46:59 +01:00
|
|
|
add_string_inner( CONFIG_ITEM_KEY, "global-" name, text, longtext, advc, \
|
2010-12-05 04:36:49 +01:00
|
|
|
KEY_UNSET ) \
|
2011-02-10 21:46:59 +01:00
|
|
|
add_string_inner( CONFIG_ITEM_KEY, name, text, longtext, advc, value )
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2011-05-13 17:35:20 +02:00
|
|
|
#define add_integer_with_range( name, value, i_min, i_max, text, longtext, advc ) \
|
2010-10-22 20:05:50 +02:00
|
|
|
add_integer( name, value, text, longtext, advc ) \
|
2008-05-08 17:55:18 +02:00
|
|
|
change_integer_range( i_min, i_max )
|
|
|
|
|
2010-10-22 20:02:01 +02:00
|
|
|
#define add_float( name, v, text, longtext, advc ) \
|
2010-10-22 19:11:39 +02:00
|
|
|
add_typename_inner( CONFIG_ITEM_FLOAT, name, text, longtext, advc ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_VALUE, (double)(v));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2011-05-13 17:35:20 +02:00
|
|
|
#define add_float_with_range( name, value, f_min, f_max, text, longtext, advc ) \
|
2010-10-22 20:02:01 +02:00
|
|
|
add_float( name, value, text, longtext, advc ) \
|
2008-05-08 17:55:18 +02:00
|
|
|
change_float_range( f_min, f_max )
|
|
|
|
|
2010-10-22 20:08:23 +02:00
|
|
|
#define add_bool( name, v, text, longtext, advc ) \
|
2010-10-22 19:11:39 +02:00
|
|
|
add_typename_inner( CONFIG_ITEM_BOOL, name, text, longtext, advc ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
if (v) vlc_config_set (VLC_CONFIG_VALUE, (int64_t)true);
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
/* For removed option */
|
|
|
|
#define add_obsolete_inner( name, type ) \
|
2008-05-27 21:31:06 +02:00
|
|
|
add_type_inner( type ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_NAME, (const char *)(name)); \
|
|
|
|
vlc_config_set (VLC_CONFIG_REMOVED);
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define add_obsolete_bool( name ) \
|
|
|
|
add_obsolete_inner( name, CONFIG_ITEM_BOOL )
|
|
|
|
|
|
|
|
#define add_obsolete_integer( name ) \
|
|
|
|
add_obsolete_inner( name, CONFIG_ITEM_INTEGER )
|
|
|
|
|
|
|
|
#define add_obsolete_float( name ) \
|
|
|
|
add_obsolete_inner( name, CONFIG_ITEM_FLOAT )
|
|
|
|
|
|
|
|
#define add_obsolete_string( name ) \
|
|
|
|
add_obsolete_inner( name, CONFIG_ITEM_STRING )
|
|
|
|
|
|
|
|
/* Modifier macros for the config options (used for fine tuning) */
|
|
|
|
|
|
|
|
#define change_short( ch ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_SHORTCUT, (int)(ch));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2012-08-15 09:22:14 +02:00
|
|
|
#define change_string_list( list, list_text ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_LIST, \
|
2008-05-08 17:55:18 +02:00
|
|
|
(size_t)(sizeof (list) / sizeof (char *)), \
|
|
|
|
(const char *const *)(list), \
|
2012-08-19 21:08:50 +02:00
|
|
|
(const char *const *)(list_text));
|
2012-08-15 09:22:14 +02:00
|
|
|
|
|
|
|
#define change_string_cb( cb ) \
|
2012-08-19 21:08:50 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_LIST_CB, (cb));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-10-22 19:00:10 +02:00
|
|
|
#define change_integer_list( list, list_text ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_LIST, \
|
2008-05-08 17:55:18 +02:00
|
|
|
(size_t)(sizeof (list) / sizeof (int)), \
|
|
|
|
(const int *)(list), \
|
2012-08-19 21:08:50 +02:00
|
|
|
(const char *const *)(list_text));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2012-09-14 20:42:45 +02:00
|
|
|
#define change_integer_cb( cb ) \
|
|
|
|
vlc_config_set (VLC_CONFIG_LIST_CB, (cb));
|
|
|
|
|
2008-05-08 17:55:18 +02:00
|
|
|
#define change_integer_range( minv, maxv ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_RANGE, (int64_t)(minv), (int64_t)(maxv));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define change_float_range( minv, maxv ) \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_RANGE, (double)(minv), (double)(maxv));
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define change_action_add( pf_action, text ) \
|
2012-08-19 19:37:40 +02:00
|
|
|
(void)(pf_action, text);
|
2008-05-08 17:55:18 +02:00
|
|
|
|
2010-03-30 13:28:02 +02:00
|
|
|
/* For options that are saved but hidden from the preferences panel */
|
|
|
|
#define change_private() \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_PRIVATE);
|
2010-03-30 13:28:02 +02:00
|
|
|
|
|
|
|
/* For options that cannot be saved in the configuration */
|
|
|
|
#define change_volatile() \
|
|
|
|
change_private() \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_VOLATILE);
|
2008-05-08 17:55:18 +02:00
|
|
|
|
|
|
|
#define change_safe() \
|
2011-08-16 14:54:31 +02:00
|
|
|
vlc_config_set (VLC_CONFIG_SAFE);
|
2007-12-16 18:36:01 +01:00
|
|
|
|
2008-06-07 21:35:15 +02:00
|
|
|
/* Meta data plugin exports */
|
|
|
|
#define VLC_META_EXPORT( name, value ) \
|
2008-06-07 23:15:09 +02:00
|
|
|
EXTERN_SYMBOL DLL_SYMBOL const char * CDECL_SYMBOL \
|
2008-09-21 18:15:42 +02:00
|
|
|
__VLC_SYMBOL(vlc_entry_ ## name) (void); \
|
2008-06-07 22:47:00 +02:00
|
|
|
EXTERN_SYMBOL DLL_SYMBOL const char * CDECL_SYMBOL \
|
2008-06-07 21:35:15 +02:00
|
|
|
__VLC_SYMBOL(vlc_entry_ ## name) (void) \
|
|
|
|
{ \
|
|
|
|
return value; \
|
|
|
|
}
|
|
|
|
|
|
|
|
#if defined (__LIBVLC__)
|
2008-06-10 21:34:44 +02:00
|
|
|
# define VLC_COPYRIGHT_EXPORT VLC_META_EXPORT (copyright, \
|
|
|
|
"\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x28\x43\x29\x20\x74\x68" \
|
|
|
|
"\x65\x20\x56\x69\x64\x65\x6f\x4c\x41\x4e\x20\x56\x4c\x43\x20\x6d" \
|
2008-06-10 21:38:31 +02:00
|
|
|
"\x65\x64\x69\x61\x20\x70\x6c\x61\x79\x65\x72\x20\x64\x65\x76\x65" \
|
2009-07-08 18:56:28 +02:00
|
|
|
"\x6c\x6f\x70\x65\x72\x73" )
|
2013-07-07 11:15:34 +02:00
|
|
|
# define VLC_LICENSE_EXPORT VLC_META_EXPORT (license, \
|
2008-06-10 21:34:44 +02:00
|
|
|
"\x4c\x69\x63\x65\x6e\x73\x65\x64\x20\x75\x6e\x64\x65\x72\x20\x74" \
|
|
|
|
"\x68\x65\x20\x74\x65\x72\x6d\x73\x20\x6f\x66\x20\x74\x68\x65\x20" \
|
2013-07-07 11:15:34 +02:00
|
|
|
"\x47\x4e\x55\x20\x4c\x65\x73\x73\x65\x72\x20\x47\x65\x6e\x65\x72" \
|
|
|
|
"\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x20\x4c\x69\x63\x65\x6e\x73" \
|
|
|
|
"\x65\x2c\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x32\x2e\x31\x20\x6f" \
|
|
|
|
"\x72\x20\x6c\x61\x74\x65\x72\x2e" )
|
|
|
|
#else
|
|
|
|
# if !defined (VLC_COPYRIGHT_EXPORT)
|
|
|
|
# define VLC_COPYRIGHT_EXPORT
|
|
|
|
# endif
|
|
|
|
# if !defined (VLC_LICENSE_EXPORT)
|
|
|
|
# define VLC_LICENSE_EXPORT
|
|
|
|
# endif
|
|
|
|
#endif
|
2008-06-07 21:35:15 +02:00
|
|
|
|
|
|
|
#define VLC_METADATA_EXPORTS \
|
|
|
|
VLC_COPYRIGHT_EXPORT \
|
|
|
|
VLC_LICENSE_EXPORT
|
|
|
|
|
2007-12-16 18:36:01 +01:00
|
|
|
#endif
|