Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
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-gpu
Commits
cbf5b53e
Commit
cbf5b53e
authored
Oct 28, 2002
by
Eric Petit
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Added LCD info view from 0.4.x
parent
4b7645e0
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
496 additions
and
22 deletions
+496
-22
modules/gui/beos/InterfaceWindow.cpp
modules/gui/beos/InterfaceWindow.cpp
+3
-2
modules/gui/beos/MediaControlView.cpp
modules/gui/beos/MediaControlView.cpp
+358
-11
modules/gui/beos/MediaControlView.h
modules/gui/beos/MediaControlView.h
+66
-3
modules/gui/beos/VlcWrapper.cpp
modules/gui/beos/VlcWrapper.cpp
+60
-4
modules/gui/beos/VlcWrapper.h
modules/gui/beos/VlcWrapper.h
+9
-2
No files found.
modules/gui/beos/InterfaceWindow.cpp
View file @
cbf5b53e
...
...
@@ -2,7 +2,7 @@
* InterfaceWindow.cpp: beos interface
*****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: InterfaceWindow.cpp,v 1.
4 2002/10/28 16:55:05
titer Exp $
* $Id: InterfaceWindow.cpp,v 1.
5 2002/10/28 19:42:24
titer Exp $
*
* Authors: Jean-Marc Dressler <polux@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
...
...
@@ -86,7 +86,8 @@ InterfaceWindow::InterfaceWindow( BRect frame, const char *name,
SetTitle
(
VOUT_TITLE
);
// the media control view
p_mediaControl
=
new
MediaControlView
(
BRect
(
0.0
,
0.0
,
250.0
,
50.0
)
);
p_mediaControl
=
new
MediaControlView
(
BRect
(
0.0
,
0.0
,
250.0
,
50.0
),
p_intf
);
p_mediaControl
->
SetViewColor
(
ui_color
(
B_PANEL_BACKGROUND_COLOR
)
);
p_mediaControl
->
SetEnabled
(
!
fPlaylistIsEmpty
);
...
...
modules/gui/beos/MediaControlView.cpp
View file @
cbf5b53e
...
...
@@ -2,7 +2,7 @@
* MediaControlView.cpp: beos interface
*****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: MediaControlView.cpp,v 1.
4 2002/10/14 20:09:17
titer Exp $
* $Id: MediaControlView.cpp,v 1.
5 2002/10/28 19:42:24
titer Exp $
*
* Authors: Tony Castley <tony@castley.net>
* Stephan Aßmus <stippi@yellowbites.com>
...
...
@@ -25,6 +25,7 @@
/* System headers */
#include <InterfaceKit.h>
#include <AppKit.h>
#include <String.h>
#include <string.h>
/* VLC headers */
...
...
@@ -71,7 +72,7 @@ enum
};
// constructor
MediaControlView
::
MediaControlView
(
BRect
frame
)
MediaControlView
::
MediaControlView
(
BRect
frame
,
intf_thread_t
*
p_interface
)
:
BBox
(
frame
,
NULL
,
B_FOLLOW_NONE
,
B_WILL_DRAW
|
B_FRAME_EVENTS
|
B_PULSE_NEEDED
,
B_PLAIN_BORDER
),
fScrubSem
(
B_ERROR
),
...
...
@@ -79,6 +80,8 @@ MediaControlView::MediaControlView(BRect frame)
fCurrentStatus
(
UNDEF_S
),
fBottomControlHeight
(
0.0
)
{
p_intf
=
p_interface
;
BRect
frame
(
0.0
,
0.0
,
10.0
,
10.0
);
// Seek Slider
...
...
@@ -170,6 +173,12 @@ MediaControlView::MediaControlView(BRect frame)
new
BMessage
(
VOLUME_CHG
));
fVolumeSlider
->
SetValue
(
AOUT_VOLUME_DEFAULT
);
AddChild
(
fVolumeSlider
);
// Position Info View
fPositionInfo
=
new
PositionInfoView
(
BRect
(
0.0
,
0.0
,
10.0
,
10.0
),
"led"
,
p_intf
);
fPositionInfo
->
ResizeToPreferred
();
AddChild
(
fPositionInfo
);
}
// destructor
...
...
@@ -192,7 +201,7 @@ MediaControlView::AttachedToWindow()
if
(
BMenuBar
*
menuBar
=
Window
()
->
KeyMenuBar
())
r
.
bottom
+=
menuBar
->
Bounds
().
Height
();
Window
()
->
SetSizeLimits
(
r
.
Width
(),
r
.
Width
()
*
2.0
,
r
.
Height
(),
r
.
Height
()
*
2.0
);
Window
()
->
SetSizeLimits
(
r
.
Width
(),
r
.
Width
()
*
1.8
,
r
.
Height
(),
r
.
Height
()
*
1.3
);
if
(
!
Window
()
->
Bounds
().
Contains
(
r
))
Window
()
->
ResizeTo
(
r
.
Width
(),
r
.
Height
());
else
...
...
@@ -370,8 +379,6 @@ MediaControlView::_LayoutControls(BRect frame) const
{
// seek slider
BRect
r
(
frame
);
r
.
bottom
=
r
.
top
+
r
.
Height
()
/
2.0
-
MIN_SPACE
/
2.0
;
_LayoutControl
(
fSeekSlider
,
r
,
true
);
// calculate absolutly minimal width
float
minWidth
=
fSkipBack
->
Bounds
().
Width
();
// minWidth += fRewind->Bounds().Width();
...
...
@@ -381,11 +388,43 @@ MediaControlView::_LayoutControls(BRect frame) const
minWidth
+=
fSkipForward
->
Bounds
().
Width
();
minWidth
+=
fMute
->
Bounds
().
Width
();
minWidth
+=
VOLUME_MIN_WIDTH
;
// layout time slider and info view
float
width
,
height
;
fPositionInfo
->
GetBigPreferredSize
(
&
width
,
&
height
);
float
ratio
=
width
/
height
;
width
=
r
.
Height
()
*
ratio
;
if
(
frame
.
Width
()
-
minWidth
-
MIN_SPACE
>=
width
&&
frame
.
Height
()
>=
height
)
{
r
.
right
=
r
.
left
+
width
;
fPositionInfo
->
SetMode
(
PositionInfoView
::
MODE_BIG
);
_LayoutControl
(
fPositionInfo
,
r
,
true
,
true
);
frame
.
left
=
r
.
right
+
MIN_SPACE
;
r
.
left
=
frame
.
left
;
r
.
right
=
frame
.
right
;
// r.bottom = r.top + r.Height() / 2.0 - MIN_SPACE / 2.0;
r
.
bottom
=
r
.
top
+
fSeekSlider
->
Bounds
().
Height
();
_LayoutControl
(
fSeekSlider
,
r
,
true
);
}
else
{
fPositionInfo
->
GetPreferredSize
(
&
width
,
&
height
);
fPositionInfo
->
SetMode
(
PositionInfoView
::
MODE_SMALL
);
fPositionInfo
->
ResizeTo
(
width
,
height
);
r
.
bottom
=
r
.
top
+
r
.
Height
()
/
2.0
-
MIN_SPACE
/
2.0
;
r
.
right
=
r
.
left
+
fPositionInfo
->
Bounds
().
Width
();
_LayoutControl
(
fPositionInfo
,
r
,
true
);
r
.
left
=
r
.
right
+
MIN_SPACE
;
r
.
right
=
frame
.
right
;
_LayoutControl
(
fSeekSlider
,
r
,
true
);
}
float
currentWidth
=
frame
.
Width
();
float
space
=
(
currentWidth
-
minWidth
)
/
6.0
;
//8.0;
// apply weighting
space
=
MIN_SPACE
+
(
space
-
MIN_SPACE
)
/
VOLUME_SLIDER_LAYOUT_WEIGHT
;
// layout controls with "space" inbetween
r
.
left
=
frame
.
left
;
r
.
top
=
r
.
bottom
+
MIN_SPACE
+
1.0
;
r
.
bottom
=
frame
.
bottom
;
// skip back
...
...
@@ -445,15 +484,20 @@ MediaControlView::_MinFrame() const
// _LayoutControl
void
MediaControlView
::
_LayoutControl
(
BView
*
view
,
BRect
frame
,
bool
resize
)
const
MediaControlView
::
_LayoutControl
(
BView
*
view
,
BRect
frame
,
bool
resizeWidth
,
bool
resizeHeight
)
const
{
if
(
!
resizeHeight
)
// center vertically
frame
.
top
=
(
frame
.
top
+
frame
.
bottom
)
/
2.0
-
view
->
Bounds
().
Height
()
/
2.0
;
if
(
!
resize
)
if
(
!
resizeWidth
)
//center horizontally
frame
.
left
=
(
frame
.
left
+
frame
.
right
)
/
2.0
-
view
->
Bounds
().
Width
()
/
2.0
;
view
->
MoveTo
(
frame
.
LeftTop
());
if
(
resize
)
view
->
ResizeTo
(
frame
.
Width
(),
view
->
Bounds
().
Height
());
float
width
=
resizeWidth
?
frame
.
Width
()
:
view
->
Bounds
().
Width
();
float
height
=
resizeHeight
?
frame
.
Height
()
:
view
->
Bounds
().
Height
();
if
(
resizeWidth
||
resizeHeight
)
view
->
ResizeTo
(
width
,
height
);
}
...
...
@@ -1098,7 +1142,310 @@ VolumeSlider::_ValueFor(float xPos) const
return
value
;
}
/*****************************************************************************
* PositionInfoView::PositionInfoView
*****************************************************************************/
PositionInfoView
::
PositionInfoView
(
BRect
frame
,
const
char
*
name
,
intf_thread_t
*
p_interface
)
:
BView
(
frame
,
name
,
B_FOLLOW_NONE
,
B_WILL_DRAW
|
B_PULSE_NEEDED
|
B_FULL_UPDATE_ON_RESIZE
),
fMode
(
MODE_SMALL
),
fCurrentFileIndex
(
-
1
),
fCurrentFileSize
(
-
1
),
fCurrentTitleIndex
(
-
1
),
fCurrentTitleSize
(
-
1
),
fCurrentChapterIndex
(
-
1
),
fCurrentChapterSize
(
-
1
),
fSeconds
(
-
1
),
fTimeString
(
"-:--:--"
),
fLastPulseUpdate
(
system_time
()
),
fStackedWidthCache
(
0.0
),
fStackedHeightCache
(
0.0
)
{
p_intf
=
p_interface
;
SetViewColor
(
B_TRANSPARENT_32_BIT
);
SetLowColor
(
kBlack
);
SetHighColor
(
0
,
255
,
0
,
255
);
SetFontSize
(
11.0
);
}
/*****************************************************************************
* PositionInfoView::~PositionInfoView
*****************************************************************************/
PositionInfoView
::~
PositionInfoView
()
{
}
/*****************************************************************************
* PositionInfoView::Draw
*****************************************************************************/
void
PositionInfoView
::
Draw
(
BRect
updateRect
)
{
rgb_color
background
=
ui_color
(
B_PANEL_BACKGROUND_COLOR
);
rgb_color
shadow
=
tint_color
(
background
,
B_DARKEN_1_TINT
);
rgb_color
darkShadow
=
tint_color
(
background
,
B_DARKEN_4_TINT
);
rgb_color
light
=
tint_color
(
background
,
B_LIGHTEN_MAX_TINT
);
rgb_color
softLight
=
tint_color
(
background
,
B_LIGHTEN_1_TINT
);
// frame
BRect
r
(
Bounds
()
);
BeginLineArray
(
8
);
AddLine
(
BPoint
(
r
.
left
,
r
.
bottom
),
BPoint
(
r
.
left
,
r
.
top
),
shadow
);
AddLine
(
BPoint
(
r
.
left
+
1.0
,
r
.
top
),
BPoint
(
r
.
right
,
r
.
top
),
shadow
);
AddLine
(
BPoint
(
r
.
right
,
r
.
top
+
1.0
),
BPoint
(
r
.
right
,
r
.
bottom
),
softLight
);
AddLine
(
BPoint
(
r
.
right
-
1.0
,
r
.
bottom
),
BPoint
(
r
.
left
+
1.0
,
r
.
bottom
),
softLight
);
r
.
InsetBy
(
1.0
,
1.0
);
AddLine
(
BPoint
(
r
.
left
,
r
.
bottom
),
BPoint
(
r
.
left
,
r
.
top
),
darkShadow
);
AddLine
(
BPoint
(
r
.
left
+
1.0
,
r
.
top
),
BPoint
(
r
.
right
,
r
.
top
),
darkShadow
);
AddLine
(
BPoint
(
r
.
right
,
r
.
top
+
1.0
),
BPoint
(
r
.
right
,
r
.
bottom
),
light
);
AddLine
(
BPoint
(
r
.
right
-
1.0
,
r
.
bottom
),
BPoint
(
r
.
left
+
1.0
,
r
.
bottom
),
light
);
EndLineArray
();
// background
r
.
InsetBy
(
1.0
,
1.0
);
FillRect
(
r
,
B_SOLID_LOW
);
// contents
font_height
fh
;
GetFontHeight
(
&
fh
);
switch
(
fMode
)
{
case
MODE_SMALL
:
{
float
width
=
StringWidth
(
fTimeString
.
String
()
);
DrawString
(
fTimeString
.
String
(),
BPoint
(
r
.
left
+
r
.
Width
()
/
2.0
-
width
/
2.0
,
r
.
top
+
r
.
Height
()
/
2.0
+
fh
.
ascent
/
2.0
-
1.0
)
);
break
;
}
case
MODE_BIG
:
{
BFont
font
;
GetFont
(
&
font
);
BFont
smallFont
=
font
;
BFont
bigFont
=
font
;
BFont
tinyFont
=
font
;
smallFont
.
SetSize
(
r
.
Height
()
/
5.0
);
bigFont
.
SetSize
(
r
.
Height
()
/
3.0
);
tinyFont
.
SetSize
(
r
.
Height
()
/
7.0
);
float
timeHeight
=
r
.
Height
()
/
2.5
;
float
height
=
(
r
.
Height
()
-
timeHeight
)
/
3.0
;
SetFont
(
&
tinyFont
);
SetHighColor
(
0
,
180
,
0
,
255
);
DrawString
(
"File"
,
BPoint
(
r
.
left
+
3.0
,
r
.
top
+
height
)
);
DrawString
(
"Title"
,
BPoint
(
r
.
left
+
3.0
,
r
.
top
+
2.0
*
height
)
);
DrawString
(
"Chapter"
,
BPoint
(
r
.
left
+
3.0
,
r
.
top
+
3.0
*
height
)
);
SetFont
(
&
smallFont
);
BString
helper
;
SetHighColor
(
0
,
255
,
0
,
255
);
// file
_MakeString
(
helper
,
fCurrentFileIndex
,
fCurrentFileSize
);
float
width
=
StringWidth
(
helper
.
String
()
);
DrawString
(
helper
.
String
(),
BPoint
(
r
.
right
-
3.0
-
width
,
r
.
top
+
height
)
);
// title
_MakeString
(
helper
,
fCurrentTitleIndex
,
fCurrentTitleSize
);
width
=
StringWidth
(
helper
.
String
()
);
DrawString
(
helper
.
String
(),
BPoint
(
r
.
right
-
3.0
-
width
,
r
.
top
+
2.0
*
height
)
);
// chapter
_MakeString
(
helper
,
fCurrentChapterIndex
,
fCurrentChapterSize
);
width
=
StringWidth
(
helper
.
String
()
);
DrawString
(
helper
.
String
(),
BPoint
(
r
.
right
-
3.0
-
width
,
r
.
top
+
3.0
*
height
)
);
// time
SetFont
(
&
bigFont
);
width
=
StringWidth
(
fTimeString
.
String
()
);
DrawString
(
fTimeString
.
String
(),
BPoint
(
r
.
left
+
r
.
Width
()
/
2.0
-
width
/
2.0
,
r
.
bottom
-
3.0
)
);
break
;
}
}
}
/*****************************************************************************
* PositionInfoView::ResizeToPreferred
*****************************************************************************/
void
PositionInfoView
::
ResizeToPreferred
()
{
float
width
,
height
;
GetPreferredSize
(
&
width
,
&
height
);
ResizeTo
(
width
,
height
);
}
/*****************************************************************************
* PositionInfoView::GetPreferredSize
*****************************************************************************/
void
PositionInfoView
::
GetPreferredSize
(
float
*
width
,
float
*
height
)
{
if
(
width
&&
height
)
{
*
width
=
5.0
+
ceilf
(
StringWidth
(
"0:00:00"
)
)
+
5.0
;
font_height
fh
;
GetFontHeight
(
&
fh
);
*
height
=
3.0
+
ceilf
(
fh
.
ascent
)
+
3.0
;
fStackedWidthCache
=
*
width
*
1.2
;
fStackedHeightCache
=
*
height
*
2.7
;
}
}
/*****************************************************************************
* PositionInfoView::Pulse
*****************************************************************************/
void
PositionInfoView
::
Pulse
()
{
// allow for Pulse frequency to be higher, MediaControlView needs it
bigtime_t
now
=
system_time
();
if
(
now
-
fLastPulseUpdate
>
900000
)
{
int32
index
,
size
;
p_intf
->
p_sys
->
p_vlc_wrapper
->
getPlaylistInfo
(
index
,
size
);
SetFile
(
index
,
size
);
p_intf
->
p_sys
->
p_vlc_wrapper
->
getTitleInfo
(
index
,
size
);
SetTitle
(
index
,
size
);
p_intf
->
p_sys
->
p_vlc_wrapper
->
getChapterInfo
(
index
,
size
);
SetChapter
(
index
,
size
);
SetTime
(
p_intf
->
p_sys
->
p_vlc_wrapper
->
getTimeAsString
()
);
fLastPulseUpdate
=
now
;
}
}
/*****************************************************************************
* PositionInfoView::GetBigPreferredSize
*****************************************************************************/
void
PositionInfoView
::
GetBigPreferredSize
(
float
*
width
,
float
*
height
)
{
if
(
width
&&
height
)
{
*
width
=
fStackedWidthCache
;
*
height
=
fStackedHeightCache
;
}
}
/*****************************************************************************
* PositionInfoView::SetMode
*****************************************************************************/
void
PositionInfoView
::
SetMode
(
uint32
mode
)
{
if
(
fMode
!=
mode
)
{
fMode
=
mode
;
_InvalidateContents
();
}
}
/*****************************************************************************
* PositionInfoView::SetFile
*****************************************************************************/
void
PositionInfoView
::
SetFile
(
int32
index
,
int32
size
)
{
if
(
fCurrentFileIndex
!=
index
||
fCurrentFileSize
!=
size
)
{
fCurrentFileIndex
=
index
;
fCurrentFileSize
=
size
;
_InvalidateContents
();
}
}
/*****************************************************************************
* PositionInfoView::SetTitle
*****************************************************************************/
void
PositionInfoView
::
SetTitle
(
int32
index
,
int32
size
)
{
if
(
fCurrentTitleIndex
!=
index
||
fCurrentFileSize
!=
size
)
{
fCurrentTitleIndex
=
index
;
fCurrentTitleSize
=
size
;
_InvalidateContents
();
}
}
/*****************************************************************************
* PositionInfoView::SetChapter
*****************************************************************************/
void
PositionInfoView
::
SetChapter
(
int32
index
,
int32
size
)
{
if
(
fCurrentChapterIndex
!=
index
||
fCurrentFileSize
!=
size
)
{
fCurrentChapterIndex
=
index
;
fCurrentChapterSize
=
size
;
_InvalidateContents
();
}
}
/*****************************************************************************
* PositionInfoView::SetTime
*****************************************************************************/
void
PositionInfoView
::
SetTime
(
int32
seconds
)
{
if
(
fSeconds
!=
seconds
)
{
if
(
seconds
>=
0
)
{
int32
minutes
=
seconds
/
60
;
int32
hours
=
minutes
/
60
;
seconds
-=
minutes
*
60
-
hours
*
60
*
60
;
minutes
-=
hours
*
60
;
fTimeString
.
SetTo
(
""
);
fTimeString
<<
hours
<<
":"
<<
minutes
<<
":"
<<
seconds
;
}
else
fTimeString
.
SetTo
(
"-:--:--"
);
fSeconds
=
seconds
;
_InvalidateContents
();
}
}
/*****************************************************************************
* PositionInfoView::SetTime
*****************************************************************************/
void
PositionInfoView
::
SetTime
(
const
char
*
string
)
{
fTimeString
.
SetTo
(
string
);
_InvalidateContents
();
}
/*****************************************************************************
* PositionInfoView::_InvalidateContents
*****************************************************************************/
void
PositionInfoView
::
_InvalidateContents
(
uint32
which
)
{
BRect
r
(
Bounds
()
);
r
.
InsetBy
(
2.0
,
2.0
);
Invalidate
(
r
);
}
/*****************************************************************************
* PositionInfoView::_InvalidateContents
*****************************************************************************/
void
PositionInfoView
::
_MakeString
(
BString
&
into
,
int32
index
,
int32
maxIndex
)
const
{
into
=
""
;
if
(
index
>=
0
)
into
<<
index
;
else
into
<<
"-"
;
into
<<
"/"
;
if
(
maxIndex
>=
0
)
into
<<
maxIndex
;
else
into
<<
"-"
;
}
modules/gui/beos/MediaControlView.h
View file @
cbf5b53e
...
...
@@ -2,7 +2,7 @@
* MediaControlView.h: beos interface
*****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: MediaControlView.h,v 1.
2 2002/09/30 18:30:27
titer Exp $
* $Id: MediaControlView.h,v 1.
3 2002/10/28 19:42:24
titer Exp $
*
* Authors: Tony Castley <tony@castley.net>
* Stephan Aßmus <stippi@yellowbites.com>
...
...
@@ -30,6 +30,7 @@
class
BBitmap
;
class
PlayPauseButton
;
class
PositionInfoView
;
class
SeekSlider
;
class
TransportButton
;
class
VolumeSlider
;
...
...
@@ -37,7 +38,7 @@ class VolumeSlider;
class
MediaControlView
:
public
BBox
{
public:
MediaControlView
(
BRect
frame
);
MediaControlView
(
BRect
frame
,
intf_thread_t
*
p_intf
);
virtual
~
MediaControlView
();
// BBox
...
...
@@ -66,7 +67,8 @@ class MediaControlView : public BBox
BRect
_MinFrame
()
const
;
void
_LayoutControl
(
BView
*
view
,
BRect
frame
,
bool
resize
=
false
)
const
;
bool
resizeWidth
=
false
,
bool
resizeHeight
=
false
)
const
;
VolumeSlider
*
fVolumeSlider
;
...
...
@@ -78,11 +80,14 @@ class MediaControlView : public BBox
PlayPauseButton
*
fPlayPause
;
TransportButton
*
fStop
;
TransportButton
*
fMute
;
PositionInfoView
*
fPositionInfo
;
int
fCurrentRate
;
int
fCurrentStatus
;
float
fBottomControlHeight
;
BRect
fOldBounds
;
intf_thread_t
*
p_intf
;
};
class
SeekSlider
:
public
BControl
...
...
@@ -165,4 +170,62 @@ class VolumeSlider : public BControl
int32
fMaxValue
;
};
class
PositionInfoView
:
public
BView
{
public:
PositionInfoView
(
BRect
frame
,
const
char
*
name
,
intf_thread_t
*
p_intf
);
virtual
~
PositionInfoView
();
// BView
virtual
void
Draw
(
BRect
updateRect
);
virtual
void
ResizeToPreferred
();
virtual
void
GetPreferredSize
(
float
*
width
,
float
*
height
);
virtual
void
Pulse
();
// PositionInfoView
enum
{
MODE_SMALL
,
MODE_BIG
,
};
void
SetMode
(
uint32
mode
);
void
GetBigPreferredSize
(
float
*
width
,
float
*
height
);
void
SetFile
(
int32
index
,
int32
size
);
void
SetTitle
(
int32
index
,
int32
size
);
void
SetChapter
(
int32
index
,
int32
size
);
void
SetTime
(
int32
seconds
);
void
SetTime
(
const
char
*
string
);
private:
void
_InvalidateContents
(
uint32
which
=
0
);
void
_MakeString
(
BString
&
into
,
int32
index
,
int32
maxIndex
)
const
;
// void _DrawAlignedString( const char* string,
// BRect frame,
// alignment mode = B_ALIGN_LEFT );
uint32
fMode
;
int32
fCurrentFileIndex
;
int32
fCurrentFileSize
;
int32
fCurrentTitleIndex
;
int32
fCurrentTitleSize
;
int32
fCurrentChapterIndex
;
int32
fCurrentChapterSize
;
int32
fSeconds
;
BString
fTimeString
;
bigtime_t
fLastPulseUpdate
;
float
fStackedWidthCache
;
float
fStackedHeightCache
;
intf_thread_t
*
p_intf
;
};
#endif // BEOS_MEDIA_CONTROL_VIEW_H
modules/gui/beos/VlcWrapper.cpp
View file @
cbf5b53e
...
...
@@ -2,7 +2,7 @@
* intf_vlc_wrapper.h: BeOS plugin for vlc (derived from MacOS X port )
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: VlcWrapper.cpp,v 1.
6 2002/10/14 20:09:17
titer Exp $
* $Id: VlcWrapper.cpp,v 1.
7 2002/10/28 19:42:24
titer Exp $
*
* Authors: Florian G. Pflug <fgp@phlo.org>
* Jon Lech Johansen <jon-vl@nanocrew.net>
...
...
@@ -621,20 +621,20 @@ void Intf_VLCWrapper::eject(){}
/* playback info */
BString
*
Intf_VLCWrapper
::
getTimeAsString
()
const
char
*
Intf_VLCWrapper
::
getTimeAsString
()
{
static
char
psz_currenttime
[
OFFSETTOTIME_MAX_SIZE
];
if
(
p_intf
->
p_sys
->
p_input
==
NULL
)
{
return
(
new
BString
(
"00:00:00"
)
);
return
(
"-:--:--"
);
}
input_OffsetToTime
(
p_intf
->
p_sys
->
p_input
,
psz_currenttime
,
p_intf
->
p_sys
->
p_input
->
stream
.
p_selected_area
->
i_tell
);
return
(
new
BString
(
psz_currenttime
)
);
return
(
psz_currenttime
);
}
float
Intf_VLCWrapper
::
getTimeAsFloat
()
...
...
@@ -690,6 +690,62 @@ BList *Intf_VLCWrapper::playlistAsArray()
return
(
p_list
);
}
// getPlaylistInfo
void
Intf_VLCWrapper
::
getPlaylistInfo
(
int32
&
currentIndex
,
int32
&
maxIndex
)
{
currentIndex
=
-
1
;
maxIndex
=
-
1
;
if
(
playlist_t
*
list
=
(
playlist_t
*
)
p_intf
->
p_sys
->
p_playlist
)
{
maxIndex
=
list
->
i_size
;
if
(
maxIndex
>
0
)
currentIndex
=
list
->
i_index
+
1
;
else
maxIndex
=
-
1
;
}
}
// getTitleInfo
void
Intf_VLCWrapper
::
getTitleInfo
(
int32
&
currentIndex
,
int32
&
maxIndex
)
{
currentIndex
=
-
1
;
maxIndex
=
-
1
;
if
(
input_thread_t
*
input
=
p_intf
->
p_sys
->
p_input
)
{
vlc_mutex_lock
(
&
input
->
stream
.
stream_lock
);
maxIndex
=
input
->
stream
.
i_area_nb
-
1
;
if
(
maxIndex
>
0
)
currentIndex
=
input
->
stream
.
p_selected_area
->
i_id
;
else
maxIndex
=
-
1
;
vlc_mutex_unlock
(
&
input
->
stream
.
stream_lock
);
}
}
// getChapterInfo
void
Intf_VLCWrapper
::
getChapterInfo
(
int32
&
currentIndex
,
int32
&
maxIndex
)
{
currentIndex
=
-
1
;
maxIndex
=
-
1
;
if
(
input_thread_t
*
input
=
p_intf
->
p_sys
->
p_input
)
{
vlc_mutex_lock
(
&
input
->
stream
.
stream_lock
);
maxIndex
=
input
->
stream
.
p_selected_area
->
i_part_nb
-
1
;
if
(
maxIndex
>
0
)
currentIndex
=
input
->
stream
.
p_selected_area
->
i_part
;
else
maxIndex
=
-
1
;
vlc_mutex_unlock
(
&
input
->
stream
.
stream_lock
);
}
}
/* open file/disc/network */
void
Intf_VLCWrapper
::
openFiles
(
BList
*
o_files
,
bool
replace
)
{
...
...
modules/gui/beos/VlcWrapper.h
View file @
cbf5b53e
...
...
@@ -2,7 +2,7 @@
* intf_vlc_wrapper.h: BeOS plugin for vlc (derived from MacOS X port )
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: VlcWrapper.h,v 1.
4 2002/10/14 20:09:17
titer Exp $
* $Id: VlcWrapper.h,v 1.
5 2002/10/28 19:42:24
titer Exp $
*
* Authors: Florian G. Pflug <fgp@phlo.org>
* Jon Lech Johansen <jon-vl@nanocrew.net>
...
...
@@ -118,12 +118,19 @@ public:
void
inputSeek
();
/* playback info */
BString
*
getTimeAsString
();
const
char
*
getTimeAsString
();
float
getTimeAsFloat
();
void
setTimeAsFloat
(
float
i_offset
);
bool
playlistPlaying
();
BList
*
playlistAsArray
();
void
getPlaylistInfo
(
int32
&
currentIndex
,
int32
&
maxIndex
);
void
getTitleInfo
(
int32
&
currentIndex
,
int32
&
maxIndex
);
void
getChapterInfo
(
int32
&
currentIndex
,
int32
&
maxIndex
);
/* open file/disc/network */
void
openFiles
(
BList
*
o_files
,
bool
replace
=
true
);
void
openDisc
(
BString
o_type
,
BString
o_device
,
...
...
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