![]() |
|
|||||||
| Exact Audio Copy - English Offizielles Support Forum - Englisch |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#31 | |
|
Registered User
Mitwirkender Frischling
Join Date: Mar 2004
Location: Washington, DC
Posts: 25
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Quote:
Actually, ultimately, being able to automate every part of EAC's functionality via scripting or some other similar facility would be nice, but I know that'd be a mammoth undertaking. |
|
|
|
|
| Sponsored Links | |
|
|
#32 |
|
Registered User
Mitwirkender Frischling
Join Date: May 2002
Location: Raleigh, NC USA
Posts: 28
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
I appreciate everyones comments here...especially on the auto CDDB select which I will look into. Is there still any ideas on how to get EAC to open to the last CD drive it closed with? If I have more than one cdrom ripping songs with more than one instance of EAC, and I close them all, EAC will only open to the last drive that closed . Sorry to not be clear, but I would pay money to make this work.
Thanks |
|
|
|
|
|
#33 | |
|
Registered User
Member Deluxe
Join Date: Oct 2003
Location: Germany
Posts: 208
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Quote:
EDIT:I guess auto-selecting the correct drive should be possible by doing something like this:
Last edited by oudalrich on 17-03-2004 at 12:17 |
|
|
|
|
|
|
#34 |
|
E.A.C. Coder
![]() Senior Member (Board-Inventar)
Join Date: Sep 2000
Posts: 2.523
Abgegebene Danke: 0
Erhielt 12 Danke für 6 Beiträge
|
Changes :
-extract is now -extractwav New : -drive x Drive number 0-n, is selected on startup -close Close EAC after extraction (batch mode) -nocorrection CD-Text will be taken unchanged (for e.g. Multichar languages) -usefua Experimental Plextor switch (don't use it!) cu, Andre |
|
|
|
|
|
#35 |
|
Registered User
Board-Frischling
Join Date: Mar 2004
Location: Sweden
Posts: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Andre,
could you please consider adding a -closemp3 flag that closes EAC only after the compression queue is empty/finished? This'd be very useful for automated rips with subsequent compression. EDIT: It seems I wa a bit hasty with this request, all I had to do to let it close after compression was to turn off the compression queue in the options... Sorry for bothering you. Last edited by bunker13 on 19-03-2004 at 15:27 |
|
|
|
|
|
#36 |
|
Registered User
Mitwirkender Frischling
Join Date: May 2002
Location: Raleigh, NC USA
Posts: 28
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Thanks Andre and Oudalrich for all your help with me on this subject. The batch files that you have listed Andre may help. The only problem is that windows will not know which batch to use depending on which cdrom drive you insert the CD into. I can have a batch file for each CD drive, but windows can only open one batch file for all CD drives based on which type of CD is inside (for example audio CD's). Please correct me if I am wrong, and let me know if there is a way around this.
Thanks |
|
|
|
|
|
#37 |
|
Registered User
Junior Member
Join Date: Oct 2001
Location: earth
Posts: 77
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
AutoIt looks to be a GUI Job Control Language; if you can
master that you probably will not need to use any BAT files. |
|
|
|
|
|
#38 |
|
Registered User
Mitwirkender Frischling
Join Date: May 2002
Location: Raleigh, NC USA
Posts: 28
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
I will have to check that out. I just went out and bought 12 more external cdrom drives so I can copy more CD's. I would like this as automated as possible. If anyone has used this program with EAC and would like to throw out input, feel free to let me know. I still wonder if the program can select the appropriate cdrom in EAC based upon which drive you insert the CD into.
Thanks |
|
|
|
|
|
#39 | |
|
Registered User
Member Deluxe
Join Date: Oct 2003
Location: Germany
Posts: 208
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Quote:
Some time ago, my installation of W2k used to annoy me by opening an Explorer window each time I inserted an audio CD, and I'm sure the is a way to configure XP to do the same. Your AutoIt script would always run in the background, waiting for Explorer (or something else) to be run by Windows' autoplay function. The AutoIt function for this is WinWait(), which works with window titles, classnames, and handles. Edit:You should also take a look at the ControlCommand() and ControlSend() functions. They can operate controls (dropdowns etc) directly by their classname, so no need to simulate mouseclicks. Use AutoIt Window Spy (is included) to see the classnames. Last edited by oudalrich on 19-03-2004 at 18:55 |
|
|
|
|
|
|
#40 |
|
Registered User
Member Deluxe
Join Date: Oct 2003
Location: Germany
Posts: 208
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Another Edit: OMG, there is so much new stuff. Maybe there is no need for all this make-Windows-open-Explorer stuff. DriveGetDrive("CDROM") returns an array containing all CD drives. Maybe you could use AdlibEnable() and DriveStatus() to periodically check all drives for status changes. If the status of a drive changes from "NOTREADY" to "READY" and DriveGetFileSystem() returns "CDFS", EAC could be started and told to use this drive. Should be possible with just a few lines of code.
Oops, this wasn't supposed to be a seperate post. |
|
|
|
|
|
#41 |
|
Registered User
Member Deluxe
Join Date: Oct 2003
Location: Germany
Posts: 208
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Sorry for making this page so wide, but the script won't work with the carriage returns introduced by QUOTE.
Right, four hours ago I thought I'd take another look at the whole thing, and this is what I ended up with. This AutoIt script does pretty much what you want, staffcurtis. It monitors your drives, and if a CD is inserted, it starts EAC with the respective -drive command and -close. It queries freedb, closes all windows that may pop up, starts extracting + compressing and minimizes EAC. It will remain active and do the same if another CD is inserted in another drive. Please note that this thing is practically untested. It works with my setup and my system and my EAC config. But I've only tried a few CDs, I'm sure there are potential problems I haven't thought of. You have to make the following changes to the EAC options: General -> On unknown CDs... = OFF (unfortunately, I wasn't aware of this option until I finished the script...) General -> Ask before overwriting files = OFF Tools -> On extraction, start external compressors... = OFF (does not work properly with -close, unfortunately) Tools -> Do not open external... = ON Directories -> Use this directy = ON If it doesn't work properly, maybe turning off 'Disable CD autostart' in the 'General' tab will help, but that's just a guess. You also have to change the $driveNums and $eac variables in the script itself to match your setup. Good luck. Code:
;EAC drive numbers, separated by commas, sorted by respective drive letters:
$driveNums = "0,1"
;EAC command with full path and options (excl. -drive and -close)
$eac = "D:\Programme\eac095pb5\EAC.exe"
;Interval for checking drives in milliseconds
$interval = 500
$driveNums = StringSplit( $driveNums, ",")
$drives = DriveGetDrive( "CDROM" )
Dim $currStatus[UBound($drives)]
Dim $lastStatus[UBound($drives)]
If $drives[0] <> $driveNums[0] Then
MsgBox( 0, "Error", $driveNums[0] & " drive numbers, should be " & $drives[0] & "!")
Exit
Endif
For $i = 1 to $drives[0]
$currStatus[$i] = DriveGetFileSystem( $drives[$i] )
Next
While 1
Do
$status = getStatus()
Sleep( $interval )
Until $status <> "X"
Run( $eac & " -close -drive " & $status )
WinWaitActive( "Exact Audio Copy" )
Send( "!g" )
AdLibEnable( "freedb" )
WinWaitActive( "Transfer" )
WinWaitActive( "Exact Audio Copy" )
Send( "!F5" )
AdLibDisable()
WinSetState( "Exact Audio Copy", "", @SW_MINIMIZE )
Wend
Func getStatus()
$lastStatus = $currStatus
For $i = 1 to $drives[0]
$currStatus[$i] = DriveGetFileSystem( $drives[$i] )
If $currStatus[$i] <> $lastStatus[$i] And $currStatus[$i] = "CDFS" Then Return $driveNums[$i]
Next
Return "X"
EndFunc
Func freedb()
Select
Case WinActive( "Warning", "All data of the current" )
ControlClick( "Warning", "", "Button1" )
Case WinActive( "Transfer", "Error" )
ControlClick( "Transfer", "", "Button1" )
Case WinActive( "Select CD" )
ControlClick( "Select CD", "", "Button1" )
EndSelect
EndFunc
Last edited by oudalrich on 20-03-2004 at 00:46 |
|
|
|
|
|
#42 |
|
Registered User
Mitwirkender Frischling
Join Date: May 2002
Location: Raleigh, NC USA
Posts: 28
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Thanks for all of your hard work on this. I am going to finally download it this weekend and try to get it all automated. I will update you on how well things turned out. A local officemax had 52x cendyne lightning cdwriters on sale for $20, so I bought 12 more. I am obsessed at getting this to work, and I probably wouldn't have gotten as far without your help.
Thanks |
|
|
|
|
|
#43 |
|
Registered User
Board-Frischling
Join Date: Mar 2004
Location: Sweden
Posts: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Another solution but this time in Girder
Since I talked about how you might be able to use Girder for automating the CD-ripping to mp3 task by automatically selecting the first CDDB entry here is something I did today:
I think I've successfully created a Girder group that detects EAC start, checks if it is running automated (with the -extractmp3 or -extract parameter), waits for a possible CDDB pop-up and if one shows within 10 seconds, clicks ok in it. This should eliminate the CDDB selection problem. It will also only auto select CDDB entry if you are running it with automation. I need one or more of you to test it so that it works since I for some reason don't get CDDB checks using -extractmp3 on my machine. If it works I'll add an option to minimize EAC after this bit is complete so basically it will be visible for a few seconds where you may be able to see which CDDB entry was chosen, and then it is minimized. Caveats: This will propably not work if EAC is already running. It will keep Girder from recognizing any other events from when EAC start up for two seconds if not using automation and if you are automating for up to twelwe seconds. Feel free to change the time-outs though. Important: You need to have the TaskCreate plugin activated in Girder. Import this group: http://www.cj.se/htpc/EAC.GML Last edited by bunker13 on 23-03-2004 at 18:23 |
|
|
|
|
|
#44 |
|
E.A.C. Coder
![]() Senior Member (Board-Inventar)
Join Date: Sep 2000
Posts: 2.523
Abgegebene Danke: 0
Erhielt 12 Danke für 6 Beiträge
|
What about this:
Usually nobody will use a changer system for this, so probably there is a CD in each drive. Why not selecting all drives before starting the script, so freedb naming is performed (and probably the right entry selected). Afterwards, there is nothing that can happen to stop the extraction (of course, if there is no CD in a drive, EAC will not close without extraction!) cu, Andre |
|
|
|
|
|
#45 |
|
Registered User
Board-Frischling
Join Date: Mar 2004
Location: Sweden
Posts: 5
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Andre, I assume you refer to the AutoIT script.
For the Girder group, I've added to have it minimize EAC just after ripping starts if it was started with any of the -extract??? parameters. Just download it again. It should be noted that I didn't think about multiple instances of EAC when I did the Girder group but I think it could work for that purpose anyway but it will not solve any of the multidrive problems discussed previously. |
|
|
|
| Sponsored Links | |
![]() |
| Thread Tools | |
| Display Modes | |
|
|