grass valley developers

Home > APIs > AppServer API > Examples > Connection and System Status > Get Configuration Information

Get Configuration Information

The configuration information on a K2 Client is stored in the file C:\profile\config\config.xml. It has a lot of information in it, but the basic structure looks like this:


  
  
  
  
  
   
  
  
  
  
 

Below is sample code demonstrating how to retrieve the configuration data and extract the id and channelIndex information for each channel:

[C#]
// create ConfigMgr
string xmlConfig = "";
IConfigMgr iconfigMgr = iappServer.CreateConfigMgr(appName);

// get config xml document
iconfigMgr.GetConfigXml(out xmlConfig);

// load the xml string into a native XmlDocument
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlConfig);

// setup a namespace manager to parse the xml doc
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(xmlDoc.NameTable);
namespaceManager.AddNamespace("ns", "x-schema:#Schema1");

// get all channels
XmlNodeList channelList = xmlDoc.SelectNodes(("./Config/Channel"), namespaceManager);
if (channelList.Count > 0)
{
	IEnumerator channelNodeEnum = channelList.GetEnumerator();
	bool bMoreChannels = channelNodeEnum.MoveNext();

	// loop thru channels to find their id and channelIndex values
	Console.WriteLine("Channel names:");
	do
	{
		XmlNode channelNode = (XmlNode)channelNodeEnum.Current;
		string channelId = channelNode.Attributes.GetNamedItem("id").Value;
		int channelIndex = Int32.Parse(channelNode.Attributes.GetNamedItem("channelIndex").Value);
		Console.WriteLine("channel index: {0} id: {1}", channelIndex, channelId);

		bMoreChannels = channelNodeEnum.MoveNext();
	} while (bMoreChannels);
}