Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-1.1
Commits
a4fb6179
Commit
a4fb6179
authored
Jan 04, 2009
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Skins2 will at least start.
parent
b2fa8fea
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
134 additions
and
39 deletions
+134
-39
modules/gui/skins2/Modules.am
modules/gui/skins2/Modules.am
+2
-0
modules/gui/skins2/commands/cmd_update_item.cpp
modules/gui/skins2/commands/cmd_update_item.cpp
+72
-0
modules/gui/skins2/commands/cmd_update_item.hpp
modules/gui/skins2/commands/cmd_update_item.hpp
+49
-0
modules/gui/skins2/src/vlcproc.cpp
modules/gui/skins2/src/vlcproc.cpp
+10
-38
modules/gui/skins2/src/vlcproc.hpp
modules/gui/skins2/src/vlcproc.hpp
+1
-1
No files found.
modules/gui/skins2/Modules.am
View file @
a4fb6179
...
...
@@ -35,6 +35,8 @@ SOURCES_skins2 = \
commands/cmd_snapshot.cpp \
commands/cmd_snapshot.hpp \
commands/cmd_show_window.hpp \
commands/cmd_update_item.cpp \
commands/cmd_update_item.hpp \
commands/cmd_vars.cpp \
commands/cmd_vars.hpp \
\
...
...
modules/gui/skins2/commands/cmd_update_item.cpp
0 → 100644
View file @
a4fb6179
/*****************************************************************************
* cmd_update_item.cpp
*****************************************************************************
* Copyright (C) 2003-2009 the VideoLAN team
* $Id$
*
* Authors: Cyril Deguet <asmax@via.ecp.fr>
* Olivier Teulière <ipkiss@via.ecp.fr>
*
* 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 <vlc_playlist.h>
#include "../src/os_factory.hpp"
#include "async_queue.hpp"
#include "cmd_vars.hpp"
#include "cmd_update_item.hpp"
void
CmdUpdateItem
::
execute
()
{
playlist_t
*
pPlaylist
=
getIntf
()
->
p_sys
->
p_playlist
;
if
(
pPlaylist
==
NULL
)
return
;
input_thread_t
*
p_input
=
playlist_CurrentInput
(
pPlaylist
);
if
(
!
p_input
)
return
;
// Get playlist item information
input_item_t
*
pItem
=
input_GetItem
(
p_input
);
// XXX: we should not need to access p_input->psz_source directly, a
// getter should be provided by VLC core
string
name
=
pItem
->
psz_name
;
// XXX: This should be done in VLC core, not here...
// Remove path information if any
OSFactory
*
pFactory
=
OSFactory
::
instance
(
getIntf
()
);
string
::
size_type
pos
=
name
.
rfind
(
pFactory
->
getDirSeparator
()
);
if
(
pos
!=
string
::
npos
)
{
name
=
name
.
substr
(
pos
+
1
,
name
.
size
()
-
pos
+
1
);
}
UString
srcName
(
getIntf
(),
name
.
c_str
()
);
UString
srcURI
(
getIntf
(),
pItem
->
psz_uri
);
// Create commands to update the stream variables
CmdSetText
*
pCmd1
=
new
CmdSetText
(
getIntf
(),
m_rStreamName
,
srcName
);
CmdSetText
*
pCmd2
=
new
CmdSetText
(
getIntf
(),
m_rStreamURI
,
srcURI
);
// Push the commands in the asynchronous command queue
AsyncQueue
*
pQueue
=
AsyncQueue
::
instance
(
getIntf
()
);
pQueue
->
push
(
CmdGenericPtr
(
pCmd1
),
false
);
pQueue
->
push
(
CmdGenericPtr
(
pCmd2
),
false
);
vlc_object_release
(
p_input
);
}
modules/gui/skins2/commands/cmd_update_item.hpp
0 → 100644
View file @
a4fb6179
/*****************************************************************************
* cmd_update_item.hpp
*****************************************************************************
* Copyright (C) 2003-2009 the VideoLAN team
* $Id$
*
* Authors: Cyril Deguet <asmax@via.ecp.fr>
* Olivier Teulière <ipkiss@via.ecp.fr>
*
* 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.
*****************************************************************************/
#ifndef CMD_UPDATE_ITEM_HPP
#define CMD_UPDATE_ITEM_HPP
#include "cmd_generic.hpp"
#include <string>
/// Udate item command
class
CmdUpdateItem
:
public
CmdGeneric
{
public:
CmdUpdateItem
(
intf_thread_t
*
pIntf
,
VarText
&
rStreamName
,
VarText
&
rStreamURI
)
:
CmdGeneric
(
pIntf
),
m_rStreamName
(
rStreamName
),
m_rStreamURI
(
rStreamURI
)
{}
virtual
~
CmdUpdateItem
()
{}
/// This method does the real job of the command
virtual
void
execute
();
/// Return the type of the command
virtual
string
getType
()
const
{
return
"update item"
;
}
private:
VarText
&
m_rStreamName
;
VarText
&
m_rStreamURI
;
};
#endif
modules/gui/skins2/src/vlcproc.cpp
View file @
a4fb6179
...
...
@@ -45,6 +45,7 @@
#include "../commands/cmd_resize.hpp"
#include "../commands/cmd_vars.hpp"
#include "../commands/cmd_dialogs.hpp"
#include "../commands/cmd_update_item.hpp"
#include "../utils/var_bool.hpp"
#include <sstream>
...
...
@@ -403,8 +404,7 @@ int VlcProc::onIntfChange( vlc_object_t *pObj, const char *pVariable,
VlcProc
*
pThis
=
(
VlcProc
*
)
pParam
;
// Update the stream variable
playlist_t
*
p_playlist
=
(
playlist_t
*
)
pObj
;
pThis
->
updateStreamName
(
p_playlist
);
pThis
->
updateStreamName
();
// Create a playtree notify command (for new style playtree)
CmdPlaytreeChanged
*
pCmdTree
=
new
CmdPlaytreeChanged
(
pThis
->
getIntf
()
);
...
...
@@ -445,8 +445,7 @@ int VlcProc::onItemChange( vlc_object_t *pObj, const char *pVariable,
VlcProc
*
pThis
=
(
VlcProc
*
)
pParam
;
// Update the stream variable
playlist_t
*
p_playlist
=
(
playlist_t
*
)
pObj
;
pThis
->
updateStreamName
(
p_playlist
);
pThis
->
updateStreamName
();
// Create a playtree notify command
CmdPlaytreeUpdate
*
pCmdTree
=
new
CmdPlaytreeUpdate
(
pThis
->
getIntf
(),
...
...
@@ -512,8 +511,7 @@ int VlcProc::onPlaylistChange( vlc_object_t *pObj, const char *pVariable,
AsyncQueue
*
pQueue
=
AsyncQueue
::
instance
(
pThis
->
getIntf
()
);
// Update the stream variable
playlist_t
*
p_playlist
=
(
playlist_t
*
)
pObj
;
pThis
->
updateStreamName
(
p_playlist
);
pThis
->
updateStreamName
();
// Create two playtree notify commands: one for old item, one for new
CmdPlaytreeUpdate
*
pCmdTree
=
new
CmdPlaytreeUpdate
(
pThis
->
getIntf
(),
...
...
@@ -557,42 +555,16 @@ int VlcProc::onInteraction( vlc_object_t *pObj, const char *pVariable,
}
void
VlcProc
::
updateStreamName
(
playlist_t
*
p_playlist
)
void
VlcProc
::
updateStreamName
()
{
if
(
p_playlist
)
{
input_thread_t
*
p_input
=
playlist_CurrentInput
(
p_playlist
);
// Get playlist item information
input_item_t
*
pItem
=
input_GetItem
(
p_input
);
VarText
&
rStreamName
=
getStreamNameVar
();
VarText
&
rStreamURI
=
getStreamURIVar
();
// XXX: we should not need to access p_input->psz_source directly, a
// getter should be provided by VLC core
string
name
=
pItem
->
psz_name
;
// XXX: This should be done in VLC core, not here...
// Remove path information if any
OSFactory
*
pFactory
=
OSFactory
::
instance
(
getIntf
()
);
string
::
size_type
pos
=
name
.
rfind
(
pFactory
->
getDirSeparator
()
);
if
(
pos
!=
string
::
npos
)
{
name
=
name
.
substr
(
pos
+
1
,
name
.
size
()
-
pos
+
1
);
}
UString
srcName
(
getIntf
(),
name
.
c_str
()
);
UString
srcURI
(
getIntf
(),
pItem
->
psz_uri
);
// Create a update item command
CmdUpdateItem
*
pCmdItem
=
new
CmdUpdateItem
(
getIntf
(),
getStreamNameVar
(),
getStreamURIVar
()
);
// Create commands to update the stream variables
CmdSetText
*
pCmd1
=
new
CmdSetText
(
getIntf
(),
rStreamName
,
srcName
);
CmdSetText
*
pCmd2
=
new
CmdSetText
(
getIntf
(),
rStreamURI
,
srcURI
);
// Push the commands in the asynchronous command queue
AsyncQueue
*
pQueue
=
AsyncQueue
::
instance
(
getIntf
()
);
pQueue
->
push
(
CmdGenericPtr
(
pCmd1
),
false
);
pQueue
->
push
(
CmdGenericPtr
(
pCmd2
),
false
);
vlc_object_release
(
p_input
);
}
// Push the command in the asynchronous command queue
AsyncQueue
*
pQueue
=
AsyncQueue
::
instance
(
getIntf
()
);
pQueue
->
push
(
CmdGenericPtr
(
pCmdItem
)
);
}
void
*
VlcProc
::
getWindow
(
intf_thread_t
*
pIntf
,
vout_thread_t
*
pVout
,
int
*
pXHint
,
int
*
pYHint
,
unsigned
int
*
pWidthHint
,
...
...
modules/gui/skins2/src/vlcproc.hpp
View file @
a4fb6179
...
...
@@ -166,7 +166,7 @@ class VlcProc: public SkinObject
void
refreshInput
();
/// Update the stream name variable
void
updateStreamName
(
playlist_t
*
p_playlist
);
void
updateStreamName
();
/// Callback for intf-change variable
static
int
onIntfChange
(
vlc_object_t
*
pObj
,
const
char
*
pVariable
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment