@ -168,10 +168,23 @@ namespace dvmconsole
btnGlobalPtt . MouseRightButtonDown + = btnGlobalPtt_MouseRightButtonDown ;
selectedChannelsManager . SelectedChannelsChanged + = SelectedChannelsChanged ;
selectedChannelsManager . PrimaryChannelChanged + = PrimaryChannelChanged ;
SizeChanged + = MainWindow_SizeChanged ;
Loaded + = MainWindow_Loaded ;
}
private void PrimaryChannelChanged ( )
{
var primaryChannel = selectedChannelsManager . PrimaryChannel ;
foreach ( UIElement element in channelsCanvas . Children )
{
if ( element is ChannelBox box )
{
box . IsPrimary = box = = primaryChannel ;
}
}
}
/// <summary>
/// Helper to enable menu controls for Commands submenu.
/// </summary>
@ -631,10 +644,14 @@ namespace dvmconsole
{
try
{
foreach ( ChannelBox channel in selectedChannelsManager . GetSelectedChannels ( ) )
var channel = selectedChannelsManager . PrimaryChannel ;
if ( channel = = null )
{
return ;
}
if ( channel . SystemName = = PLAYBACKSYS | | channel . ChannelName = = PLAYBACKCHNAME | | channel . DstId = = PLAYBACKTG )
continue ;
return ;
Codeplug . System system = Codeplug . GetSystemForChannel ( channel . ChannelName ) ;
if ( system = = null )
@ -642,7 +659,7 @@ namespace dvmconsole
Log . WriteLine ( $"{channel.ChannelName} refers to an {INVALID_SYSTEM} {channel.SystemName}. {ERR_INVALID_CODEPLUG}. {ERR_SKIPPING_AUDIO}." ) ;
channel . IsSelected = false ;
selectedChannelsManager . RemoveSelectedChannel ( channel ) ;
continue ;
return ;
}
Codeplug . Channel cpgChannel = Codeplug . GetChannelByName ( channel . ChannelName ) ;
@ -651,7 +668,7 @@ namespace dvmconsole
Log . WriteLine ( $"{channel.ChannelName} refers to an {INVALID_CODEPLUG_CHANNEL}. {ERR_INVALID_CODEPLUG}. {ERR_SKIPPING_AUDIO}." ) ;
channel . IsSelected = false ;
selectedChannelsManager . RemoveSelectedChannel ( channel ) ;
continue ;
return ;
}
PeerSystem fne = fneSystemManager . GetFneSystem ( system . Name ) ;
@ -660,7 +677,7 @@ namespace dvmconsole
Log . WriteLine ( $"{channel.ChannelName} has a {ERR_INVALID_FNE_REF}. {ERR_INVALID_CODEPLUG}. {ERR_SKIPPING_AUDIO}." ) ;
channel . IsSelected = false ;
selectedChannelsManager . RemoveSelectedChannel ( channel ) ;
continue ;
return ;
}
/ /
@ -745,7 +762,6 @@ namespace dvmconsole
} ) ;
}
}
}
catch ( Exception ex )
{
MessageBox . Show ( $"Failed to process alert tone: {ex.Message}" , "Error" , MessageBoxButton . OK , MessageBoxImage . Error ) ;
@ -1917,61 +1933,12 @@ namespace dvmconsole
{
if ( globalPttState )
await Task . Delay ( 500 ) ;
foreach ( ChannelBox channel in selectedChannelsManager . GetSelectedChannels ( ) )
{
if ( channel . SystemName = = PLAYBACKSYS | | channel . ChannelName = = PLAYBACKCHNAME | | channel . DstId = = PLAYBACKTG )
continue ;
Codeplug . System system = Codeplug . GetSystemForChannel ( channel . ChannelName ) ;
if ( system = = null )
{
Log . WriteLine ( $"{channel.ChannelName} refers to an {INVALID_SYSTEM} {channel.SystemName}. {ERR_INVALID_CODEPLUG}." ) ;
channel . IsSelected = false ;
selectedChannelsManager . RemoveSelectedChannel ( channel ) ;
continue ;
}
Codeplug . Channel cpgChannel = Codeplug . GetChannelByName ( channel . ChannelName ) ;
if ( cpgChannel = = null )
{
Log . WriteLine ( $"{channel.ChannelName} refers to an {INVALID_CODEPLUG_CHANNEL}. {ERR_INVALID_CODEPLUG}." ) ;
channel . IsSelected = false ;
selectedChannelsManager . RemoveSelectedChannel ( channel ) ;
continue ;
}
PeerSystem fne = fneSystemManager . GetFneSystem ( system . Name ) ;
if ( fne = = null )
{
Log . WriteLine ( $"{channel.ChannelName} has a {ERR_INVALID_FNE_REF}. {ERR_INVALID_CODEPLUG}." ) ;
channel . IsSelected = false ;
selectedChannelsManager . RemoveSelectedChannel ( channel ) ;
continue ;
}
channel . TxStreamId = fne . NewStreamId ( ) ;
if ( globalPttState )
ChannelBox channel = selectedChannelsManager . PrimaryChannel ;
if ( channel = = null )
{
Dispatcher . Invoke ( ( ) = >
{
btnGlobalPtt . Background = ChannelBox . RED_GRADIENT ;
channel . PttState = true ;
} ) ;
fne . SendP25TDU ( uint . Parse ( system . Rid ) , uint . Parse ( cpgChannel . Tgid ) , true ) ;
}
else
{
Dispatcher . Invoke ( ( ) = >
{
btnGlobalPtt . Background = ChannelBox . GRAY_GRADIENT ;
channel . PttState = false ;
} ) ;
fne . SendP25TDU ( uint . Parse ( system . Rid ) , uint . Parse ( cpgChannel . Tgid ) , false ) ;
}
return ;
}
channel . PttButton_Click ( sender , e ) ;
}
/// <summary>