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,45 +201,50 @@ ...@@ -194,45 +201,50 @@
[theItem setStringValue: @"-"]; [theItem setStringValue: @"-"];
} }
- (void)updateStatistics - (void)updateStatistics:(NSTimer*)theTimer
{ {
vlc_mutex_lock( &p_item->input.p_stats->lock ); if( [self isItemInPlaylist: p_item] )
{
/* input */ /* we can only do that if there's a valid input around */
[o_read_bytes_txt setStringValue: [NSString stringWithFormat: @"%8.0f kB", \
(float)(p_item->input.p_stats->i_read_bytes)/1000]]; vlc_mutex_lock( &p_item->input.p_stats->lock );
[o_input_bitrate_txt setStringValue: [NSString stringWithFormat: @"%6.0f kb/s", \
(float)(p_item->input.p_stats->f_input_bitrate)/1000]]; /* input */
[o_demux_bytes_txt setStringValue: [NSString stringWithFormat: @"%8.0f kB",\ [o_read_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_read_bytes)/1000]];
[o_demux_bitrate_txt setStringValue: [NSString stringWithFormat: @"%6.0f kb/s", \ [o_input_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_input_bitrate)*8000]];
[o_demux_bytes_txt setStringValue: [NSString stringWithFormat: \
/* Video */ @"%8.0f kB", (float)(p_item->input.p_stats->i_demux_read_bytes)/1000]];
[o_video_decoded_txt setStringValue: [NSString stringWithFormat: @"%8.0f kB", \ [o_demux_bitrate_txt setStringValue: [NSString stringWithFormat: \
p_item->input.p_stats->i_decoded_video]]; @"%6.0f kb/s", (float)(p_item->input.p_stats->f_demux_bitrate)*8000]];
[o_displayed_txt setStringValue: [NSString stringWithFormat: @"%5i", \
p_item->input.p_stats->i_displayed_pictures]]; /* Video */
[o_lost_frames_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_video_decoded_txt setStringValue: [NSString stringWithFormat: @"%5i", \
p_item->input.p_stats->i_lost_pictures]]; p_item->input.p_stats->i_decoded_video]];
[o_displayed_txt setStringValue: [NSString stringWithFormat: @"%5i", \
/* Sout */ p_item->input.p_stats->i_displayed_pictures]];
[o_sent_packets_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_lost_frames_txt setStringValue: [NSString stringWithFormat: @"%5i", \
p_item->input.p_stats->i_sent_packets]]; p_item->input.p_stats->i_lost_pictures]];
[o_sent_bytes_txt setStringValue: [NSString stringWithFormat: @"%6.0f kB", \
(float)(p_item->input.p_stats->i_sent_bytes)/1000]]; /* Sout */
[o_sent_bitrate_txt setStringValue: [NSString stringWithFormat: @"%6.0f kb/s", \ [o_sent_packets_txt setStringValue: [NSString stringWithFormat: @"%5i", \
(float)(p_item->input.p_stats->f_send_bitrate*8)*1000]]; p_item->input.p_stats->i_sent_packets]];
[o_sent_bytes_txt setStringValue: [NSString stringWithFormat: @"%8.0f kB", \
/* Audio */ (float)(p_item->input.p_stats->i_sent_bytes)/1000]];
[o_audio_decoded_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_sent_bitrate_txt setStringValue: [NSString stringWithFormat: \
p_item->input.p_stats->i_decoded_audio]]; @"%6.0f kb/s", (float)(p_item->input.p_stats->f_send_bitrate*8)*1000]];
[o_played_abuffers_txt setStringValue: [NSString stringWithFormat: @"%5i", \
p_item->input.p_stats->i_played_abuffers]]; /* Audio */
[o_lost_abuffers_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_audio_decoded_txt setStringValue: [NSString stringWithFormat: @"%5i", \
p_item->input.p_stats->i_lost_abuffers]]; p_item->input.p_stats->i_decoded_audio]];
[o_played_abuffers_txt setStringValue: [NSString stringWithFormat: @"%5i", \
vlc_mutex_unlock( &p_item->input.p_stats->lock ); p_item->input.p_stats->i_played_abuffers]];
[o_lost_abuffers_txt setStringValue: [NSString stringWithFormat: @"%5i", \
p_item->input.p_stats->i_lost_abuffers]];
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