Commit ebb944ae authored by Felix Paul Kühne's avatar Felix Paul Kühne

* added a NSTimer to update the statistics every second

parent 35db12d0
...@@ -97,6 +97,7 @@ ...@@ -97,6 +97,7 @@
IBOutlet id o_video_decoded_txt; IBOutlet id o_video_decoded_txt;
playlist_item_t * p_item; playlist_item_t * p_item;
NSTimer * o_statUpdateTimer;
} }
- (IBAction)togglePlaylistInfoPanel:(id)sender; - (IBAction)togglePlaylistInfoPanel:(id)sender;
...@@ -108,10 +109,7 @@ ...@@ -108,10 +109,7 @@
- (BOOL)isItemInPlaylist:(playlist_item_t *)p_item; - (BOOL)isItemInPlaylist:(playlist_item_t *)p_item;
- (void)setMeta: (char *)meta forLabel: (id)theItem; - (void)setMeta: (char *)meta forLabel: (id)theItem;
- (void)updateStatistics; - (void)updateStatistics: (NSTimer*)theTimer;
/*- (void)setIntStat: (int)value forLabel: (id)theItem withFormat: (NSString *)format;
- (void)setFloatStat: (float)value forLabel: (id)theItem withFormat: (NSString *)format;
*/
@end @end
@interface VLCInfoTreeItem : NSObject @interface VLCInfoTreeItem : NSObject
......
...@@ -115,6 +115,7 @@ ...@@ -115,6 +115,7 @@
{ {
if( [o_info_window isVisible] ) if( [o_info_window isVisible] )
{ {
[o_statUpdateTimer invalidate];
[o_info_window orderOut: sender]; [o_info_window orderOut: sender];
} }
else else
...@@ -128,6 +129,12 @@ ...@@ -128,6 +129,12 @@
p_item = p_playlist->status.p_item; p_item = p_playlist->status.p_item;
vlc_object_release( p_playlist ); vlc_object_release( p_playlist );
} }
o_statUpdateTimer = [NSTimer scheduledTimerWithTimeInterval: 1 \
target: self selector: @selector(updateStatistics:) \
userInfo: nil repeats: YES];
[o_statUpdateTimer fire];
[o_statUpdateTimer retain];
[self initPanel:sender]; [self initPanel:sender];
} }
} }
...@@ -137,7 +144,7 @@ ...@@ -137,7 +144,7 @@
char *psz_temp; char *psz_temp;
vlc_mutex_lock( &p_item->input.lock ); vlc_mutex_lock( &p_item->input.lock );
/*fill uri / title / author info */ /* fill uri / title / author info */
if( p_item->input.psz_uri ) if( p_item->input.psz_uri )
{ {
[o_uri_txt setStringValue: [o_uri_txt setStringValue:
...@@ -179,7 +186,7 @@ ...@@ -179,7 +186,7 @@
[[VLCInfoTreeItem rootItem] refresh]; [[VLCInfoTreeItem rootItem] refresh];
[o_outline_view reloadData]; [o_outline_view reloadData];
[self updateStatistics]; [self updateStatistics: nil];
[o_info_window makeKeyAndOrderFront: sender]; [o_info_window makeKeyAndOrderFront: sender];
} }
...@@ -194,22 +201,26 @@ ...@@ -194,22 +201,26 @@
[theItem setStringValue: @"-"]; [theItem setStringValue: @"-"];
} }
- (void)updateStatistics - (void)updateStatistics:(NSTimer*)theTimer
{ {
if( [self isItemInPlaylist: p_item] )
{
/* we can only do that if there's a valid input around */
vlc_mutex_lock( &p_item->input.p_stats->lock ); vlc_mutex_lock( &p_item->input.p_stats->lock );
/* input */ /* input */
[o_read_bytes_txt setStringValue: [NSString stringWithFormat: @"%8.0f kB", \ [o_read_bytes_txt setStringValue: [NSString stringWithFormat: \
(float)(p_item->input.p_stats->i_read_bytes)/1000]]; @"%8.0f kB", (float)(p_item->input.p_stats->i_read_bytes)/1000]];
[o_input_bitrate_txt setStringValue: [NSString stringWithFormat: @"%6.0f kb/s", \ [o_input_bitrate_txt setStringValue: [NSString stringWithFormat: \
(float)(p_item->input.p_stats->f_input_bitrate)/1000]]; @"%6.0f kb/s", (float)(p_item->input.p_stats->f_input_bitrate)*8000]];
[o_demux_bytes_txt setStringValue: [NSString stringWithFormat: @"%8.0f kB",\ [o_demux_bytes_txt setStringValue: [NSString stringWithFormat: \
(float)(p_item->input.p_stats->i_demux_read_bytes)/1000]]; @"%8.0f kB", (float)(p_item->input.p_stats->i_demux_read_bytes)/1000]];
[o_demux_bitrate_txt setStringValue: [NSString stringWithFormat: @"%6.0f kb/s", \ [o_demux_bitrate_txt setStringValue: [NSString stringWithFormat: \
(float)(p_item->input.p_stats->f_demux_bitrate)/1000]]; @"%6.0f kb/s", (float)(p_item->input.p_stats->f_demux_bitrate)*8000]];
/* Video */ /* Video */
[o_video_decoded_txt setStringValue: [NSString stringWithFormat: @"%8.0f kB", \ [o_video_decoded_txt setStringValue: [NSString stringWithFormat: @"%5i", \
p_item->input.p_stats->i_decoded_video]]; p_item->input.p_stats->i_decoded_video]];
[o_displayed_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_displayed_txt setStringValue: [NSString stringWithFormat: @"%5i", \
p_item->input.p_stats->i_displayed_pictures]]; p_item->input.p_stats->i_displayed_pictures]];
...@@ -219,10 +230,10 @@ ...@@ -219,10 +230,10 @@
/* Sout */ /* Sout */
[o_sent_packets_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_sent_packets_txt setStringValue: [NSString stringWithFormat: @"%5i", \
p_item->input.p_stats->i_sent_packets]]; p_item->input.p_stats->i_sent_packets]];
[o_sent_bytes_txt setStringValue: [NSString stringWithFormat: @"%6.0f kB", \ [o_sent_bytes_txt setStringValue: [NSString stringWithFormat: @"%8.0f kB", \
(float)(p_item->input.p_stats->i_sent_bytes)/1000]]; (float)(p_item->input.p_stats->i_sent_bytes)/1000]];
[o_sent_bitrate_txt setStringValue: [NSString stringWithFormat: @"%6.0f kb/s", \ [o_sent_bitrate_txt setStringValue: [NSString stringWithFormat: \
(float)(p_item->input.p_stats->f_send_bitrate*8)*1000]]; @"%6.0f kb/s", (float)(p_item->input.p_stats->f_send_bitrate*8)*1000]];
/* Audio */ /* Audio */
[o_audio_decoded_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_audio_decoded_txt setStringValue: [NSString stringWithFormat: @"%5i", \
...@@ -233,6 +244,7 @@ ...@@ -233,6 +244,7 @@
p_item->input.p_stats->i_lost_abuffers]]; p_item->input.p_stats->i_lost_abuffers]];
vlc_mutex_unlock( &p_item->input.p_stats->lock ); vlc_mutex_unlock( &p_item->input.p_stats->lock );
}
} }
- (IBAction)infoCancel:(id)sender - (IBAction)infoCancel:(id)sender
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment