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

* playlistinfo.m: fixed a rare crash and made sure that the timer is run in every case

* playlist.m: minor update to the new playlist plus removal of an unpurposelly commited debug-msg
parent fa22449f
...@@ -578,7 +578,6 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/ ...@@ -578,7 +578,6 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/
[NSString stringWithFormat: @"%p", [NSString stringWithFormat: @"%p",
[[o_array objectAtIndex:j] pointerValue]]] ) != nil ) [[o_array objectAtIndex:j] pointerValue]]] ) != nil )
{ {
msg_Err( p_playlist, "o_item: %p", o_item );
[o_outline_view expandItem: o_item]; [o_outline_view expandItem: o_item];
} }
......
...@@ -101,9 +101,13 @@ ...@@ -101,9 +101,13 @@
- (void)dealloc - (void)dealloc
{ {
/* make sure that it is released in any case */ /* make sure that the timer is released in any case */
if( [o_statUpdateTimer isValid] )
[o_statUpdateTimer invalidate];
if ( o_statUpdateTimer ) if ( o_statUpdateTimer )
[o_statUpdateTimer release]; [o_statUpdateTimer release];
[super dealloc]; [super dealloc];
} }
...@@ -140,27 +144,27 @@ ...@@ -140,27 +144,27 @@
vlc_object_release( p_playlist ); vlc_object_release( p_playlist );
} }
BOOL b_stats = config_GetInt(VLCIntf, "stats");
if( b_stats )
{
o_statUpdateTimer = [NSTimer scheduledTimerWithTimeInterval: 1 \
target: self selector: @selector(updateStatistics:) \
userInfo: nil repeats: YES];
[o_statUpdateTimer fire];
[o_statUpdateTimer retain];
}
else
{
if( [o_tab_view numberOfTabViewItems] > 2 )
[o_tab_view removeTabViewItem: [o_tab_view tabViewItemAtIndex: 2]];
}
[self initPanel:sender]; [self initPanel:sender];
} }
} }
- (void)initPanel:(id)sender - (void)initPanel:(id)sender
{ {
BOOL b_stats = config_GetInt(VLCIntf, "stats");
if( b_stats )
{
o_statUpdateTimer = [NSTimer scheduledTimerWithTimeInterval: 1
target: self selector: @selector(updateStatistics:)
userInfo: nil repeats: YES];
[o_statUpdateTimer fire];
[o_statUpdateTimer retain];
}
else
{
if( [o_tab_view numberOfTabViewItems] > 2 )
[o_tab_view removeTabViewItem: [o_tab_view tabViewItemAtIndex: 2]];
}
[self updatePanel]; [self updatePanel];
[o_info_window makeKeyAndOrderFront: sender]; [o_info_window makeKeyAndOrderFront: sender];
} }
...@@ -183,7 +187,7 @@ ...@@ -183,7 +187,7 @@
vlc_mutex_lock( &p_item->p_input->lock ); vlc_mutex_lock( &p_item->p_input->lock );
/* fill uri / title / author info */ /* fill uri info */
if( p_item->p_input->psz_uri ) if( p_item->p_input->psz_uri )
{ {
[o_uri_txt setStringValue: [o_uri_txt setStringValue:
...@@ -192,16 +196,9 @@ ...@@ -192,16 +196,9 @@
[NSString stringWithUTF8String:p_item->p_input->psz_uri]]; [NSString stringWithUTF8String:p_item->p_input->psz_uri]];
} }
if( p_item->p_input->psz_name )
{
[o_title_txt setStringValue:
([NSString stringWithUTF8String:p_item->p_input->psz_name] == nil ) ?
[NSString stringWithCString:p_item->p_input->psz_name] :
[NSString stringWithUTF8String:p_item->p_input->psz_name]];
}
/* fill the other fields */ /* fill the other fields */
#define p_m p_item->p_input->p_meta #define p_m p_item->p_input->p_meta
[self setMeta: p_m->psz_title forLabel: o_title_txt];
[self setMeta: p_m->psz_artist forLabel: o_author_txt]; [self setMeta: p_m->psz_artist forLabel: o_author_txt];
[self setMeta: p_m->psz_album forLabel: o_collection_txt]; [self setMeta: p_m->psz_album forLabel: o_collection_txt];
[self setMeta: p_m->psz_tracknum forLabel: o_seqNum_txt]; [self setMeta: p_m->psz_tracknum forLabel: o_seqNum_txt];
...@@ -243,37 +240,37 @@ ...@@ -243,37 +240,37 @@
vlc_mutex_lock( &p_item->p_input->p_stats->lock ); vlc_mutex_lock( &p_item->p_input->p_stats->lock );
/* input */ /* input */
[o_read_bytes_txt setStringValue: [NSString stringWithFormat: \ [o_read_bytes_txt setStringValue: [NSString stringWithFormat:
@"%8.0f kB", (float)(p_item->p_input->p_stats->i_read_bytes)/1000]]; @"%8.0f kB", (float)(p_item->p_input->p_stats->i_read_bytes)/1000]];
[o_input_bitrate_txt setStringValue: [NSString stringWithFormat: \ [o_input_bitrate_txt setStringValue: [NSString stringWithFormat:
@"%6.0f kb/s", (float)(p_item->p_input->p_stats->f_input_bitrate)*8000]]; @"%6.0f kb/s", (float)(p_item->p_input->p_stats->f_input_bitrate)*8000]];
[o_demux_bytes_txt setStringValue: [NSString stringWithFormat: \ [o_demux_bytes_txt setStringValue: [NSString stringWithFormat:
@"%8.0f kB", (float)(p_item->p_input->p_stats->i_demux_read_bytes)/1000]]; @"%8.0f kB", (float)(p_item->p_input->p_stats->i_demux_read_bytes)/1000]];
[o_demux_bitrate_txt setStringValue: [NSString stringWithFormat: \ [o_demux_bitrate_txt setStringValue: [NSString stringWithFormat:
@"%6.0f kb/s", (float)(p_item->p_input->p_stats->f_demux_bitrate)*8000]]; @"%6.0f kb/s", (float)(p_item->p_input->p_stats->f_demux_bitrate)*8000]];
/* Video */ /* Video */
[o_video_decoded_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_video_decoded_txt setStringValue: [NSString stringWithFormat: @"%5i",
p_item->p_input->p_stats->i_decoded_video]]; p_item->p_input->p_stats->i_decoded_video]];
[o_displayed_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_displayed_txt setStringValue: [NSString stringWithFormat: @"%5i",
p_item->p_input->p_stats->i_displayed_pictures]]; p_item->p_input->p_stats->i_displayed_pictures]];
[o_lost_frames_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_lost_frames_txt setStringValue: [NSString stringWithFormat: @"%5i",
p_item->p_input->p_stats->i_lost_pictures]]; p_item->p_input->p_stats->i_lost_pictures]];
/* Sout */ /* Sout */
[o_sent_packets_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_sent_packets_txt setStringValue: [NSString stringWithFormat: @"%5i",
p_item->p_input->p_stats->i_sent_packets]]; p_item->p_input->p_stats->i_sent_packets]];
[o_sent_bytes_txt setStringValue: [NSString stringWithFormat: @"%8.0f kB", \ [o_sent_bytes_txt setStringValue: [NSString stringWithFormat: @"%8.0f kB",
(float)(p_item->p_input->p_stats->i_sent_bytes)/1000]]; (float)(p_item->p_input->p_stats->i_sent_bytes)/1000]];
[o_sent_bitrate_txt setStringValue: [NSString stringWithFormat: \ [o_sent_bitrate_txt setStringValue: [NSString stringWithFormat:
@"%6.0f kb/s", (float)(p_item->p_input->p_stats->f_send_bitrate*8)*1000]]; @"%6.0f kb/s", (float)(p_item->p_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",
p_item->p_input->p_stats->i_decoded_audio]]; p_item->p_input->p_stats->i_decoded_audio]];
[o_played_abuffers_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_played_abuffers_txt setStringValue: [NSString stringWithFormat: @"%5i",
p_item->p_input->p_stats->i_played_abuffers]]; p_item->p_input->p_stats->i_played_abuffers]];
[o_lost_abuffers_txt setStringValue: [NSString stringWithFormat: @"%5i", \ [o_lost_abuffers_txt setStringValue: [NSString stringWithFormat: @"%5i",
p_item->p_input->p_stats->i_lost_abuffers]]; p_item->p_input->p_stats->i_lost_abuffers]];
vlc_mutex_unlock( &p_item->p_input->p_stats->lock ); vlc_mutex_unlock( &p_item->p_input->p_stats->lock );
...@@ -342,11 +339,12 @@ ...@@ -342,11 +339,12 @@
- (BOOL)windowShouldClose:(id)sender - (BOOL)windowShouldClose:(id)sender
{ {
if( o_statUpdateTimer ) if( [o_statUpdateTimer isValid] )
{
[o_statUpdateTimer invalidate]; [o_statUpdateTimer invalidate];
if( o_statUpdateTimer )
[o_statUpdateTimer release]; [o_statUpdateTimer release];
}
return YES; return YES;
} }
......
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