Added ability to play mp3s from system for future music module. Continue

to improve and fix bugs with ScrollingChatModule and ChatLogModule.
This commit is contained in:
sigonasr2 2017-12-08 05:42:19 -06:00
parent 824b8249d9
commit 79bb1e576b
19 changed files with 139 additions and 57 deletions

View File

@ -15,5 +15,26 @@
<classpathentry kind="lib" path="lib/lwjgl-natives-windows.jar"/>
<classpathentry kind="lib" path="lib/jna-4.5.0.jar"/>
<classpathentry kind="lib" path="lib/jna-platform-4.5.0.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/basicplayer3.0.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/commons-io-2.5.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/commons-logging-api.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/jl1.0.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/jna-4.5.0.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/jna-platform-4.5.0.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/jogg-0.0.7.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/jorbis-0.0.15.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/jspeex0.9.7.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/lwjgl.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/lwjgl-glfw.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/lwjgl-glfw-natives-linux.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/lwjgl-glfw-natives-macos.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/lwjgl-glfw-natives-windows.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/lwjgl-natives-linux.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/lwjgl-natives-macos.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/lwjgl-natives-windows.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/mp3spi1.9.4.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/tritonus_share.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/twitch-api-wrapper-0.3-jar-with-dependencies.jar"/>
<classpathentry kind="lib" path="C:/Users/Joshua Sigona/git/sigIRCv2/lib/vorbisspi1.0.2.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

BIN
lib/basicplayer3.0.jar Normal file

Binary file not shown.

BIN
lib/commons-logging-api.jar Normal file

Binary file not shown.

BIN
lib/jl1.0.jar Normal file

Binary file not shown.

BIN
lib/jogg-0.0.7.jar Normal file

Binary file not shown.

BIN
lib/jorbis-0.0.15.jar Normal file

Binary file not shown.

BIN
lib/jspeex0.9.7.jar Normal file

Binary file not shown.

BIN
lib/mp3spi1.9.4.jar Normal file

Binary file not shown.

BIN
lib/tritonus_share.jar Normal file

Binary file not shown.

BIN
lib/vorbisspi1.0.2.jar Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,7 @@
package sig;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;
@ -56,6 +57,11 @@ public class Module extends JFrame implements ComponentListener, WindowListener,
public Module(Rectangle bounds, String moduleName) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
this.addComponentListener(this);
this.addWindowListener(this);
this.addKeyListener(this);
@ -76,8 +82,8 @@ public class Module extends JFrame implements ComponentListener, WindowListener,
this.titleHeight = (int)TextUtils.calculateStringBoundsFont(this.name, sigIRC.userFont).getHeight();
this.setSize((int)position.getWidth(), (int)position.getHeight());
panel.setSize(this.getSize());
this.setMinimumSize(new Dimension((int)position.getWidth(), (int)position.getHeight()));
panel.setMinimumSize(this.getMinimumSize());
this.add(panel);
//this.pack();

View File

@ -4,6 +4,7 @@ import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
@ -34,25 +35,32 @@ public class ChatLogMessage {
this.refModule = ChatLogModule.chatlogmodule;
this.rawMessage = rawMessage;
this.position = new Point(0,(int)refModule.getPosition().getHeight()-MESSAGE_SPACING);
//System.out.println("1");
WrapText();
//System.out.println("2");
for (ChatLogMessage clm : this.refModule.messageHistory) {
clm.position.setLocation(
clm.position.getX(),
clm.position.getY()-messageDisplaySize.getY());
//System.out.println(clm.rawMessage+": "+clm.position);
}
//System.out.println("3");
this.position.setLocation(this.position.getX(), this.position.getY()-messageDisplaySize.getY()+ChatLogModule.chatlogmodule.scrolllog_yoffset);
//System.out.println(displayMessage);
this.username = DetectUsername(displayMessage);
//System.out.println("4");
if (this.username!=null) {
displayMessage.set(0,GetMessage(displayMessage.get(0)+" "));
usernameWidth = (int)TextUtils.calculateStringBoundsFont(this.username, sigIRC.userFont).getWidth();
}
for (int i=0;i<displayMessage.size();i++) {
//System.out.println("displayMessage["+i+"] before: "+displayMessage.get(i));
displayMessage.set(i, ReplaceMessageWithEmoticons(" "+displayMessage.get(i)+" ",(i==0)?usernameWidth:0,i*MESSAGE_SPACING));
String msg = ReplaceMessageWithEmoticons(" "+displayMessage.get(i)+" ",(i==0)?usernameWidth:0,i*MESSAGE_SPACING);
displayMessage.set(i, msg);
//System.out.println("displayMessage["+i+"] after: "+displayMessage.get(i));
}
//System.out.println("5 "+displayMessage.size());
//System.out.println("6");
}
private String ReplaceMessageWithEmoticons(String basemsg, int xpos, int ypos) {
@ -233,12 +241,16 @@ public class ChatLogMessage {
public static void importMessages(String...logContents) {
if (sigIRC.chatlogmodule_enabled) {
//System.out.println("Adding chat message "+Arrays.toString(logContents));
for (String s : logContents) {
//System.out.println(" For "+s+":");
if (s!=null) {
if (ChatLogModule.chatlogmodule.messageHistory.size()>=ChatLogModule.messageHistoryCount) {
//System.out.println(" Removed.");
ChatLogModule.chatlogmodule.messageHistory.remove(0).cleanup();
}
ChatLogModule.chatlogmodule.messageHistory.add(new ChatLogMessage(s));
//System.out.println(" Adding "+s+".");
ChatLogModule.chatlogmodule.messageQueue.add(s);
}
}
}

View File

@ -24,7 +24,7 @@ import sig.utils.DrawUtils;
import sig.utils.FileUtils;
public class ChatLogModule extends Module{
public static int messageHistoryCount = 50;
public static int messageHistoryCount = 20;
public List<ChatLogMessage> messageHistory = new ArrayList<ChatLogMessage>();
int delay = 150;
boolean initialized=false;
@ -34,6 +34,7 @@ public class ChatLogModule extends Module{
long positionsNeedUpdating = 0; //Set it to System.currentTimeMillis() to request a configuration save.
Rectangle prevpos = (Rectangle)position.clone();
int justOpened=2;
public List<String> messageQueue = new ArrayList<String>();
public ChatLogModule(Rectangle bounds, String moduleName) {
@ -59,6 +60,10 @@ public class ChatLogModule extends Module{
public void run() {
super.run();
for (int i=0;i<messageQueue.size();i++) {
messageHistory.add(new ChatLogMessage(messageQueue.remove(0)));
i--;
}
if (delay>0 && sigIRC.subEmotesCompleted) {
delay--;
} else

View File

@ -29,19 +29,17 @@ public class ScrollingChatModule extends Module{
ScrollingChatModule.module = this;
String[] filedata = FileUtils.readFromFile(sigIRC.BASEDIR+"sigIRC/oauthToken.txt");
final String oauth = filedata[0].trim().substring(0, Math.min(36,filedata[0].trim().length()));
Thread t = new Thread(()->{
sigIRC.InitializeIRCConnection(sigIRC.server, sigIRC.nickname, sigIRC.channel, oauth);
});
t.start();
UpdateSubEmoticons();
for (int i=0;i<sigIRC.chatRows;i++) {
sigIRC.rowobj.add(new TextRow(32+sigIRC.ROWSEPARATION*i));
}
//UpdateSubEmoticons();
}
public void run() {
super.run();
UpdateScrollingText();
UpdateAuthenticationCountdownMessage();
//System.out.println("Called.");
}
@ -61,7 +59,20 @@ public class ScrollingChatModule extends Module{
}
}
public void ApplyConfigWindowProperties() {
sigIRC.scrollingchatmodule_X=(int)position.getX();
sigIRC.scrollingchatmodule_Y=(int)position.getY();
sigIRC.scrollingchatmodule_width=(int)position.getWidth();
sigIRC.scrollingchatmodule_height=(int)position.getHeight();
sigIRC.config.setInteger("SCROLLINGCHAT_module_X", sigIRC.scrollingchatmodule_X);
sigIRC.config.setInteger("SCROLLINGCHAT_module_Y", sigIRC.scrollingchatmodule_Y);
sigIRC.config.setInteger("SCROLLINGCHAT_module_width", sigIRC.scrollingchatmodule_width);
sigIRC.config.setInteger("SCROLLINGCHAT_module_height", sigIRC.scrollingchatmodule_height);
sigIRC.config.saveProperties();
}
public void draw(Graphics g) {
super.draw(g);
for (int i=0;i<sigIRC.textobj.size();i++) {
if (sigIRC.textobj.get(i).isActive()) {
if (sigIRC.overlayMode) {
@ -167,7 +178,7 @@ public class ScrollingChatModule extends Module{
}
}
for (int i=0;i<sigIRC.textobj.size();i++) {
System.out.println(sigIRC.textobj.get(i).getX()+","+sigIRC.textobj.get(i).getY());
//System.out.println(sigIRC.textobj.get(i).getX()+","+sigIRC.textobj.get(i).getY());
boolean keep = sigIRC.textobj.get(i).run();
if (!keep) {
sigIRC.textobj.remove(i--);

View File

@ -111,7 +111,7 @@ public class sigIRC{
public static int windowY=0;
public static int windowWidth=0;
public static int windowHeight=0;
static int chatRows=3;
public static int chatRows=3;
static int chatScrollSpd=4;
static int rowSpacing=64;
static String messageFont="Gill Sans Ultra Bold Condensed";

View File

@ -198,6 +198,12 @@ public class LoadingDialog extends JFrame{
sigIRC.emoticons.add(new Emoticon(">(","12"));
sigIRC.emoticons.add(new Emoticon("<3","13"));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//Load is done. Start up the panel.
sigIRC.window = new ProgramWindow();
this.setVisible(false);

View File

@ -0,0 +1,46 @@
package sig.windows;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JToggleButton;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import sig.Module;
@SuppressWarnings("serial")
class ModuleButton extends JToggleButton{
String label = "";
ModuleButton button;
Module myModule;
public ModuleButton(String label, Module module) {
this.label=label;
this.button=this;
this.myModule=module;
this.setBackground(Color.DARK_GRAY);
this.setText(label);
this.setToolTipText("Click to enable and disable the \n"+label+" module.");
this.setPreferredSize(new Dimension(160,56));
this.setForeground(Color.GRAY);
this.setIconTextGap(4);
this.setSelectedIcon(ProgramWindow.selected_icon);
this.setIcon(ProgramWindow.deselected_icon);
this.setSelected(true);
button.setForeground(Color.BLUE);
this.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (button.isSelected()) {
button.setForeground(Color.BLUE);
}
else {
button.setBackground(Color.DARK_GRAY);
button.setForeground(Color.GRAY);
}
myModule.setVisible(button.isSelected());
}
});
}
}

View File

@ -1,7 +1,6 @@
package sig.windows;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Rectangle;
@ -10,6 +9,7 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@ -21,10 +21,12 @@ import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JToggleButton;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javazoom.jlgui.basicplayer.BasicController;
import javazoom.jlgui.basicplayer.BasicPlayer;
import javazoom.jlgui.basicplayer.BasicPlayerEvent;
import javazoom.jlgui.basicplayer.BasicPlayerException;
import javazoom.jlgui.basicplayer.BasicPlayerListener;
import sig.BackgroundColorButton;
import sig.ColorPanel;
import sig.Module;
@ -118,6 +120,15 @@ public class ProgramWindow extends JFrame{
GridLayout myLayout = new GridLayout(0,1);
sigIRC.panel.setLayout(myLayout);
///Play MUSIC
/*BasicPlayer player = new BasicPlayer();
try {
player.open(new File("D:\\Videos\\4K Video Downloader\\3R2 - The Truth Never Spoken (Energetic Trance Mix).mp3"));
player.play();
} catch (BasicPlayerException e) {
e.printStackTrace();
}*/
//colorpanel = new ColorPanel();
//this.add(colorpanel);
this.setLocationByPlatform(true);
@ -140,39 +151,3 @@ public class ProgramWindow extends JFrame{
//Module testMod = new Module(new Rectangle(0,0,640,480),"Test");
}
}
@SuppressWarnings("serial")
class ModuleButton extends JToggleButton{
String label = "";
ModuleButton button;
Module myModule;
public ModuleButton(String label, Module module) {
this.label=label;
this.button=this;
this.myModule=module;
this.setBackground(Color.DARK_GRAY);
this.setText(label);
this.setToolTipText("Click to enable and disable the \n"+label+" module.");
this.setPreferredSize(new Dimension(160,56));
this.setForeground(Color.GRAY);
this.setIconTextGap(4);
this.setSelectedIcon(ProgramWindow.selected_icon);
this.setIcon(ProgramWindow.deselected_icon);
this.setSelected(true);
button.setForeground(Color.BLUE);
this.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (button.isSelected()) {
button.setForeground(Color.BLUE);
}
else {
button.setBackground(Color.DARK_GRAY);
button.setForeground(Color.GRAY);
}
myModule.setVisible(button.isSelected());
}
});
}
}