vlc | branch: master | KO Myung-Hun <[email protected]> | Tue Oct 11 22:06:25 2011 +0900| [0897ef38a133c41f32d202bc76a0538134e21e69] | committer: Rémi Denis-Courmont
Implement OS/2 specific initialization Signed-off-by: Rémi Denis-Courmont <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0897ef38a133c41f32d202bc76a0538134e21e69 --- src/Makefile.am | 2 +- src/os2/specific.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 1 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 20dd132..6c939ce 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -281,7 +281,7 @@ SOURCES_libvlc_os2 = \ misc/atomic.c \ posix/filesystem.c \ os2/thread.c \ - posix/specific.c \ + os2/specific.c \ $(NULL) SOURCES_libvlc_other = \ diff --git a/src/os2/specific.c b/src/os2/specific.c new file mode 100644 index 0000000..e077192 --- /dev/null +++ b/src/os2/specific.c @@ -0,0 +1,85 @@ +/***************************************************************************** + * specific.c: OS/2 specific features + ***************************************************************************** + * Copyright (C) 2010 KO Myung-Hun + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (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 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU 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. + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include <vlc_common.h> +#include "../libvlc.h" + +#include <fcntl.h> +#include <io.h> + +extern int _fmode_bin; + +void system_Init( void ) +{ + PPIB ppib; + CHAR psz_path[ CCHMAXPATH ]; + PSZ psz_dirsep; + + DosGetInfoBlocks( NULL, &ppib ); + + DosQueryModuleName( ppib->pib_hmte, sizeof( psz_path ), psz_path ); + + /* remove the executable name */ + psz_dirsep = strrchr( psz_path, '\\'); + if( psz_dirsep ) + *psz_dirsep = '\0'; + + /* remove the last directory, i.e, \\bin */ + psz_dirsep = strrchr( psz_path, '\\' ); + if( psz_dirsep ) + *psz_dirsep = '\0'; + + DosEnterCritSec(); + + if( !psz_vlcpath ) + asprintf( &psz_vlcpath, "%s\\lib\\vlc", psz_path ); + + DosExitCritSec(); + + /* Set the default file-translation mode */ + _fmode_bin = 1; + setmode( fileno( stdin ), O_BINARY ); /* Needed for pipes */ +} + +void system_Configure( libvlc_int_t *p_this, int i_argc, const char *const ppsz_argv[] ) +{ + VLC_UNUSED( i_argc ); VLC_UNUSED( ppsz_argv ); + if( var_InheritBool( p_this, "high-priority" ) ) + { + if( !DosSetPriority( PRTYS_PROCESS, PRTYC_REGULAR, PRTYD_MAXIMUM, 0 ) ) + { + msg_Dbg( p_this, "raised process priority" ); + } + else + { + msg_Dbg( p_this, "could not raise process priority" ); + } + } +} + +void system_End( void ) +{ + free( psz_vlcpath ); + psz_vlcpath = NULL; +} _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
