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
0c9b2d28
Commit
0c9b2d28
authored
Feb 25, 2008
by
Rafaël Carré
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix update code in macosx gui
parent
234bf661
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
146 additions
and
238 deletions
+146
-238
extras/package/macosx/Resources/English.lproj/Update.nib/classes.nib
...age/macosx/Resources/English.lproj/Update.nib/classes.nib
+55
-22
extras/package/macosx/Resources/English.lproj/Update.nib/info.nib
...ackage/macosx/Resources/English.lproj/Update.nib/info.nib
+7
-5
extras/package/macosx/Resources/English.lproj/Update.nib/keyedobjects.nib
...acosx/Resources/English.lproj/Update.nib/keyedobjects.nib
+0
-0
modules/gui/macosx/intf.m
modules/gui/macosx/intf.m
+9
-5
modules/gui/macosx/update.h
modules/gui/macosx/update.h
+9
-6
modules/gui/macosx/update.m
modules/gui/macosx/update.m
+66
-200
No files found.
extras/package/macosx/Resources/English.lproj/Update.nib/classes.nib
View file @
0c9b2d28
{
IBClasses = (
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
{
ACTIONS = {changeCheckUpdateOnStartup = id; download = id; okay = id; };
CLASS = VLCUpdate;
LANGUAGE = ObjC;
OUTLETS = {
"o_bar_checking" = id;
"o_btn_DownloadNow" = id;
"o_btn_okay" = id;
"o_chk_updateOnStartup" = id;
"o_fld_currentVersionAndSize" = id;
"o_fld_releaseNote" = id;
"o_fld_status" = id;
"o_update_window" = id;
};
SUPERCLASS = NSObject;
}
);
IBVersion = 1;
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist
version=
"1.0"
>
<dict>
<key>
IBClasses
</key>
<array>
<dict>
<key>
CLASS
</key>
<string>
FirstResponder
</string>
<key>
LANGUAGE
</key>
<string>
ObjC
</string>
<key>
SUPERCLASS
</key>
<string>
NSObject
</string>
</dict>
<dict>
<key>
ACTIONS
</key>
<dict>
<key>
changeCheckUpdateOnStartup
</key>
<string>
id
</string>
<key>
download
</key>
<string>
id
</string>
<key>
okay
</key>
<string>
id
</string>
</dict>
<key>
CLASS
</key>
<string>
VLCUpdate
</string>
<key>
LANGUAGE
</key>
<string>
ObjC
</string>
<key>
OUTLETS
</key>
<dict>
<key>
o_bar_checking
</key>
<string>
id
</string>
<key>
o_btn_DownloadNow
</key>
<string>
id
</string>
<key>
o_btn_okay
</key>
<string>
id
</string>
<key>
o_chk_updateOnStartup
</key>
<string>
id
</string>
<key>
o_fld_currentVersion
</key>
<string>
id
</string>
<key>
o_fld_releaseNote
</key>
<string>
id
</string>
<key>
o_fld_status
</key>
<string>
id
</string>
<key>
o_update_window
</key>
<string>
id
</string>
</dict>
<key>
SUPERCLASS
</key>
<string>
NSObject
</string>
</dict>
</array>
<key>
IBVersion
</key>
<string>
1
</string>
</dict>
</plist>
extras/package/macosx/Resources/English.lproj/Update.nib/info.nib
View file @
0c9b2d28
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple
Computer
//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist
version=
"1.0"
>
<dict>
<key>
IBDocumentLocation
</key>
<string>
16 51 356 240 0 0 1280 778
</string>
<key>
IBFramework Version
</key>
<string>
446.1
</string>
<string>
629
</string>
<key>
IBOldestOS
</key>
<integer>
5
</integer>
<key>
IBOpenObjects
</key>
<array>
<integer>
5
</integer>
</array>
<key>
IBSystem Version
</key>
<string>
8P2137
</string>
<string>
9C31
</string>
<key>
targetFramework
</key>
<string>
IBCocoaFramework
</string>
</dict>
</plist>
extras/package/macosx/Resources/English.lproj/Update.nib/keyedobjects.nib
View file @
0c9b2d28
No preview for this file type
modules/gui/macosx/intf.m
View file @
0c9b2d28
...
...
@@ -32,6 +32,10 @@
#include <string.h>
#include <vlc_keys.h>
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#import "intf.h"
#import "fspanel.h"
#import "vout.h"
...
...
@@ -420,7 +424,7 @@ static VLCMain *_o_sharedMainInstance = nil;
o_interaction_list
=
[[
VLCInteractionList
alloc
]
init
];
o_sfilters
=
nil
;
#ifdef UPDATE_CHECK
//FIXME
o_update = [[VLCUpdate alloc] init];
o_update
=
[[
VLCUpdate
alloc
]
init
];
#endif
i_lastShownVolume
=
-
1
;
...
...
@@ -865,9 +869,8 @@ static VLCMain *_o_sharedMainInstance = nil;
if
(
!
nib_update_loaded
)
nib_update_loaded
=
[
NSBundle
loadNibNamed
:
@"Update"
owner
:
self
];
// FIXME
//if([o_update shouldCheckForUpdate])
// [NSThread detachNewThreadSelector:@selector(checkForUpdate) toTarget:o_update withObject:NULL];
if
([
o_update
shouldCheckForUpdate
])
[
NSThread
detachNewThreadSelector
:
@selector
(
checkForUpdate
)
toTarget
:
o_update
withObject
:
NULL
];
#endif
/* Handle sleep notification */
...
...
@@ -2019,8 +2022,9 @@ static VLCMain *_o_sharedMainInstance = nil;
#ifdef UPDATE_CHECK
if
(
!
nib_update_loaded
)
nib_update_loaded
=
[
NSBundle
loadNibNamed
:
@"Update"
owner
:
self
];
[
o_update
showUpdateWindow
];
#else
msg_Err
(
VLCIntf
,
"Updates checking was not enabled in this build"
);
#endif
}
...
...
modules/gui/macosx/update.h
View file @
0c9b2d28
/*****************************************************************************
* update.h: MacOS X Check-For-Update window
*****************************************************************************
* Copyright
(C) 2005-2007
the VideoLAN team
* Copyright
© 2005-2008
the VideoLAN team
* $Id$
*
* Authors: Felix Kühne <fkuehne@users.sf.net>
* Rafaël Carré <funman@videolanorg>
*
* 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
...
...
@@ -21,6 +22,10 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#ifdef UPDATE_CHECK
#import <Cocoa/Cocoa.h>
#import <vlc_update.h>
...
...
@@ -30,16 +35,14 @@
IBOutlet
id
o_btn_DownloadNow
;
IBOutlet
id
o_btn_okay
;
IBOutlet
id
o_fld_releaseNote
;
IBOutlet
id
o_fld_source
;
IBOutlet
id
o_fld_currentVersionAndSize
;
IBOutlet
id
o_fld_currentVersion
;
IBOutlet
id
o_fld_status
;
IBOutlet
id
o_update_window
;
IBOutlet
id
o_bar_checking
;
IBOutlet
id
o_chk_updateOnStartup
;
NSString
*
o_urlOfBinary
;
update_t
*
p_u
;
intf_thread_t
*
p_intf
;
vlc_bool_t
b_checked
;
}
-
(
IBAction
)
download
:(
id
)
sender
;
...
...
@@ -49,8 +52,8 @@
-
(
BOOL
)
shouldCheckForUpdate
;
-
(
void
)
showUpdateWindow
;
-
(
void
)
initInterface
;
-
(
void
)
checkForUpdate
;
-
(
void
)
updateManagement
:
(
vlc_bool_t
)
b_success
;
-
(
void
)
performDownload
:(
NSString
*
)
path
;
+
(
VLCUpdate
*
)
sharedInstance
;
...
...
modules/gui/macosx/update.m
View file @
0c9b2d28
/*****************************************************************************
* update.m: MacOS X Check-For-Update window
*****************************************************************************
* Copyright
(C) 2005-2007
the VideoLAN team
* Copyright
© 2005-2008
the VideoLAN team
* $Id$
*
* Authors: Felix Kühne <fkuehne@users.sf.net>
* Rafaël Carré <funman@videolanorg>
*
* 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
...
...
@@ -21,11 +22,9 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Note: the code used to communicate with VLC's core was inspired by
* ../wxwidgets/dialogs/updatevlc.cpp, written by Antoine Cellerier.
*****************************************************************************/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#ifdef UPDATE_CHECK
...
...
@@ -57,6 +56,16 @@ static VLCUpdate *_o_sharedInstance = nil;
[
self
dealloc
];
}
else
{
_o_sharedInstance
=
[
super
init
];
b_checked
=
VLC_FALSE
;
/* clean the interface */
[
o_fld_releaseNote
setString
:
@""
];
[
o_fld_currentVersion
setString
:
@""
];
/* translate strings to the user's language */
[
o_update_window
setTitle
:
_NS
(
"Check for Updates"
)];
[
o_btn_DownloadNow
setTitle
:
_NS
(
"Download now"
)];
[
o_btn_okay
setTitle
:
_NS
(
"OK"
)];
[
o_chk_updateOnStartup
setTitle
:
_NS
(
"Automatically check for updates"
)];
}
return
_o_sharedInstance
;
...
...
@@ -64,32 +73,8 @@ static VLCUpdate *_o_sharedInstance = nil;
-
(
void
)
awakeFromNib
{
/* get up */
p_intf
=
VLCIntf
;
/* clean the interface */
[
o_fld_releaseNote
setString
:
@""
];
[
self
initInterface
];
}
-
(
void
)
dealloc
{
if
(
o_urlOfBinary
)
[
o_urlOfBinary
release
];
[
super
dealloc
];
}
-
(
void
)
initInterface
{
/* translate strings to the user's language */
[
o_update_window
setTitle
:
_NS
(
"Check for Updates"
)];
[
o_btn_DownloadNow
setTitle
:
_NS
(
"Download now"
)];
[
o_btn_okay
setTitle
:
_NS
(
"OK"
)];
[
o_chk_updateOnStartup
setTitle
:
_NS
(
"Automatically check for updates"
)];
/* we don't use - (BOOL)shouldCheckUpdateOnStartup because we don't want the Alert
* panel to pop up at this time */
/* we don't use - (BOOL)shouldCheckUpdateOnStartup because we don't want
* the Alert panel to pop up at this time */
[
o_chk_updateOnStartup
setState
:
[[
NSUserDefaults
standardUserDefaults
]
boolForKey
:
kPrefUpdateOnStartup
]];
}
...
...
@@ -129,17 +114,17 @@ static VLCUpdate *_o_sharedInstance = nil;
-
(
void
)
showUpdateWindow
{
/* show the window and check for a potential update */
[
o_fld_status
setStringValue
:
_NS
(
"Checking for Updates..."
)];
[
o_fld_currentVersionAndSize
setStringValue
:
@""
];
[
o_fld_releaseNote
setString
:
@""
];
[
o_update_window
center
];
[
o_update_window
displayIfNeeded
];
[
o_update_window
makeKeyAndOrderFront
:
nil
];
[
o_bar_checking
startAnimation
:
self
];
[
self
checkForUpdate
];
[
o_bar_checking
stopAnimation
:
self
];
if
(
!
b_checked
)
{
[
o_bar_checking
startAnimation
:
self
];
[
self
checkForUpdate
];
b_checked
=
VLC_TRUE
;
[
o_bar_checking
stopAnimation
:
self
];
}
}
-
(
IBAction
)
download
:(
id
)
sender
...
...
@@ -147,12 +132,12 @@ static VLCUpdate *_o_sharedInstance = nil;
/* provide a save dialogue */
SEL
sel
=
@selector
(
getLocationForSaving
:
returnCode
:
contextInfo
:
);
NSSavePanel
*
saveFilePanel
=
[[
NSSavePanel
alloc
]
init
];
[
saveFilePanel
setRequiredFileType
:
@"dmg"
];
[
saveFilePanel
setCanSelectHiddenExtension
:
YES
];
[
saveFilePanel
setCanCreateDirectories
:
YES
];
[
saveFilePanel
beginSheetForDirectory
:
nil
file
:
[[
o_urlOfBinary
componentsSeparatedByString
:
@"/"
]
lastObject
]
[[
[
NSString
stringWithUTF8String
:
p_u
->
release
.
psz_url
]
componentsSeparatedByString
:
@"/"
]
lastObject
]
modalForWindow:
o_update_window
modalDelegate:
self
didEndSelector:
sel
...
...
@@ -173,8 +158,8 @@ static VLCUpdate *_o_sharedInstance = nil;
-
(
IBAction
)
okay
:(
id
)
sender
{
/* just
close
the window */
[
o_update_window
close
];
/* just
hides
the window */
[
o_update_window
orderOut
:
self
];
}
-
(
IBAction
)
changeCheckUpdateOnStartup
:(
id
)
sender
...
...
@@ -182,173 +167,54 @@ static VLCUpdate *_o_sharedInstance = nil;
[
self
setShouldCheckUpdate
:
[
sender
state
]];
}
-
(
void
)
checkForUpdate
-
(
void
)
updateManagement
:(
vlc_bool_t
)
b_success
{
/* We may not run on first thread */
NSAutoreleasePool
*
pool
=
[[
NSAutoreleasePool
alloc
]
init
];
p_u
=
update_New
(
p_intf
);
update_Check
(
p_u
,
VLC_FALSE
);
update_iterator_t
*
p_uit
=
update_iterator_New
(
p_u
);
BOOL
releaseChecked
=
NO
;
BOOL
gettingReleaseNote
=
NO
;
int
x
=
0
;
NSString
*
pathToReleaseNote
;
pathToReleaseNote
=
[
NSString
stringWithFormat
:
@"/tmp/vlc_releasenote_%d.tmp"
,
mdate
()];
[[
NSUserDefaults
standardUserDefaults
]
setObject
:
[
NSDate
date
]
forKey
:
kPrefUpdateLastTimeChecked
];
if
(
p_uit
)
if
(
!
b_success
||
update_CompareReleaseToCurrent
(
p_u
)
!=
UpdateReleaseStatusNewer
)
{
p_uit
->
i_rs
=
UPDATE_RELEASE_STATUS_NEWER
;
p_uit
->
i_t
=
UPDATE_FILE_TYPE_ALL
;
update_iterator_Action
(
p_uit
,
UPDATE_MIRROR
);
while
(
update_iterator_Action
(
p_uit
,
UPDATE_FILE
)
!=
UPDATE_FAIL
)
{
msg_Dbg
(
p_intf
,
"parsing available updates, run %i"
,
x
);
/* if the announced item is of the type "binary", keep it and display
* its details to the user. Do similar stuff on "info". Do both
* only if the file is announced as stable */
if
(
p_uit
->
release
.
i_type
==
UPDATE_RELEASE_TYPE_STABLE
)
{
if
(
p_uit
->
file
.
i_type
==
UPDATE_FILE_TYPE_INFO
)
{
msg_Dbg
(
p_intf
,
"release note found, desc = %s"
,
p_uit
->
file
.
psz_description
);
[
o_fld_releaseNote
setString
:
[
NSString
stringWithUTF8String
:
(
p_uit
->
file
.
psz_description
)]];
/* download our release note
* We will read the temp file after this loop */
update_download
(
p_uit
,
(
char
*
)[
pathToReleaseNote
UTF8String
]
);
gettingReleaseNote
=
YES
;
}
else
if
(
p_uit
->
file
.
i_type
==
UPDATE_FILE_TYPE_BINARY
)
{
msg_Dbg
(
p_intf
,
"binary found, version = %s, "
"url=%s, size=%i MB"
,
p_uit
->
release
.
psz_version
,
p_uit
->
file
.
psz_url
,
(
int
)((
p_uit
->
file
.
l_size
/
1024
)
/
1024
)
);
[
o_fld_currentVersionAndSize
setStringValue
:
[
NSString
stringWithFormat
:
_NS
(
"The latest VLC media player release "
"is %s (%i MB to download)."
),
p_uit
->
release
.
psz_version
,
((
p_uit
->
file
.
l_size
/
1024
)
/
1024
)]];
if
(
o_urlOfBinary
)
[
o_urlOfBinary
release
];
o_urlOfBinary
=
[[
NSString
alloc
]
initWithUTF8String
:
p_uit
->
file
.
psz_url
];
}
if
(
p_uit
->
release
.
i_status
==
UPDATE_RELEASE_STATUS_NEWER
&&
!
releaseChecked
)
{
/* our version is outdated, let the user download the new
* release */
[
o_fld_status
setStringValue
:
_NS
(
"This version of VLC "
"is outdated."
)];
[
o_btn_DownloadNow
setEnabled
:
YES
];
msg_Dbg
(
p_intf
,
"this version of VLC is outdated"
);
/* put the mirror information */
msg_Dbg
(
p_intf
,
"used mirror: %s, %s [%s]"
,
p_uit
->
mirror
.
psz_name
,
p_uit
->
mirror
.
psz_location
,
\
p_uit
->
mirror
.
psz_type
);
/* make sure that we perform this check only once */
releaseChecked
=
YES
;
/* Make sure the update window is showed in case we have something */
[
o_update_window
center
];
[
o_update_window
displayIfNeeded
];
[
o_update_window
makeKeyAndOrderFront
:
self
];
}
else
if
(
!
releaseChecked
)
{
[
o_fld_status
setStringValue
:
_NS
(
"This version of VLC "
"is the latest available."
)];
[
o_btn_DownloadNow
setEnabled
:
NO
];
msg_Dbg
(
p_intf
,
"current version is up-to-date"
);
releaseChecked
=
YES
;
}
}
x
+=
1
;
}
update_iterator_Delete
(
p_uit
);
/* wait for our release notes if necessary, since the download is done
* by another thread -- this does usually take 300000 to 500000 ms */
if
(
gettingReleaseNote
)
{
int
i
=
0
;
while
(
[[
NSFileManager
defaultManager
]
fileExistsAtPath
:
pathToReleaseNote
]
==
NO
)
{
msleep
(
100000
);
i
+=
1
;
if
(
i
==
150
)
{
/* if this takes more than 15 sec, exit */
msg_Warn
(
p_intf
,
"download took more than 15 sec, exiting"
);
break
;
}
}
msg_Dbg
(
p_intf
,
"waited %i ms for the release notes"
,
(
i
*
100000
)
);
msleep
(
500000
);
/* let's open our cached release note and display it
* we can't use NSString stringWithContentsOfFile:encoding:error:
* since it is Tiger only */
NSString
*
releaseNote
=
[[
NSString
alloc
]
initWithData
:
[
NSData
dataWithContentsOfFile
:
pathToReleaseNote
]
encoding:
NSISOLatin1StringEncoding
];
if
(
releaseNote
)
[
o_fld_releaseNote
setString
:
releaseNote
];
/* delete the file since it isn't needed anymore */
BOOL
myBOOL
=
NO
;
myBOOL
=
[[
NSFileManager
defaultManager
]
removeFileAtPath
:
pathToReleaseNote
handler
:
nil
];
}
else
{
/* don't confuse the user, but make her happy */
[
o_fld_status
setStringValue
:
_NS
(
"This version of VLC "
"is the latest available."
)];
[
o_btn_DownloadNow
setEnabled
:
NO
];
msg_Dbg
(
p_intf
,
"current version is up-to-date"
);
}
[
o_fld_status
setStringValue
:
_NS
(
"This version of VLC is the latest available."
)];
[
o_btn_DownloadNow
setEnabled
:
NO
];
}
else
{
[
o_fld_releaseNote
setString
:
[
NSString
stringWithUTF8String
:
(
p_u
->
release
.
psz_desc
)]];
[
o_fld_status
setStringValue
:
_NS
(
"This version of VLC is outdated."
)];
[
o_fld_currentVersion
setStringValue
:
[
NSString
stringWithFormat
:
_NS
(
"The current release is %d.%d.%d%c."
),
p_u
->
release
.
i_major
,
p_u
->
release
.
i_minor
,
p_u
->
release
.
i_revision
,
p_u
->
release
.
extra
]];
[
o_btn_DownloadNow
setEnabled
:
YES
];
/* Make sure the update window is showed in case we have something */
[
o_update_window
center
];
[
o_update_window
displayIfNeeded
];
[
o_update_window
makeKeyAndOrderFront
:
self
];
}
[
pool
release
];
}
-
(
void
)
performDownload
:(
NSString
*
)
path
static
void
updateCallback
(
void
*
p_data
,
vlc_bool_t
b_success
)
{
update_iterator_t
*
p_uit
=
update_iterator_New
(
p_u
);
if
(
p_uit
)
{
update_iterator_Action
(
p_uit
,
UPDATE_MIRROR
);
while
(
update_iterator_Action
(
p_uit
,
UPDATE_FILE
)
!=
UPDATE_FAIL
)
{
if
(
p_uit
->
release
.
i_type
==
UPDATE_RELEASE_TYPE_STABLE
&&
p_uit
->
release
.
i_status
==
UPDATE_RELEASE_STATUS_NEWER
&&
p_uit
->
file
.
i_type
==
UPDATE_FILE_TYPE_BINARY
)
{
/* put the mirror information */
msg_Dbg
(
p_intf
,
"used mirror: %s, %s [%s]"
,
p_uit
->
mirror
.
psz_name
,
p_uit
->
mirror
.
psz_location
,
p_uit
->
mirror
.
psz_type
);
/* that's our binary */
update_download
(
p_uit
,
(
char
*
)[
path
UTF8String
]
);
}
}
update_iterator_Delete
(
p_uit
);
}
[(
id
)
p_data
updateManagement
:
b_success
];
}
-
(
void
)
checkForUpdate
{
p_u
=
update_New
(
VLCIntf
);
if
(
!
p_u
)
return
;
update_Check
(
p_u
,
updateCallback
,
self
);
[
o_update_window
close
];
[[
NSUserDefaults
standardUserDefaults
]
setObject
:
[
NSDate
date
]
forKey
:
kPrefUpdateLastTimeChecked
];
}
-
(
void
)
performDownload
:(
NSString
*
)
path
{
update_Download
(
p_u
,
(
char
*
)[
path
UTF8String
]
);
[
o_btn_DownloadNow
setEnabled
:
NO
];
[
o_update_window
orderOut
:
self
];
update_Delete
(
p_u
);
}
@end
...
...
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